AdMob, bu sorunu çözmek için Yapılandırılabilir Adaptör Başlatma özelliğini sunar. Bu özellik, ilk reklam gösteriminiz için hangi bağdaştırıcıların başlatılacağını kontrol etmenize olanak tanır ve bu gösterim için gecikmeyi azaltır.
Bu kılavuzda, yapılandırılabilir bağdaştırıcı başlatma işleminin aşağıdaki yönleri ele alınmaktadır:
- Adaptör yapılandırması oluşturma
- Başlatılmamış bağdaştırıcıları atlama
- Kalan bağdaştırıcıları başlatma
Ön koşullar
- GMA Next-Gen SDK v0.25.0-beta01 veya sonraki bir sürümü içe aktarın.
- Kurulum GMA Next-Gen SDK.
Sınıfınıza
@ExperimentalApiek açıklamasını ekleyerek bu özelliği etkinleştirin:Kotlin
@OptIn(ExperimentalApi::class)Java
import androidx.annotation.OptIn; // ... @OptIn(markerClass = ExperimentalApi.class)
Adaptör yapılandırması oluşturma
Bağdaştırıcı başlatma yapılandırması, GMA Next-Gen SDK SDK'sına yalnızca gerekli bağdaştırıcıları başlatma talimatı verir. Bu sayede, gereksiz bağdaştırıcıların ilk reklam isteğinizi engellemesi önlenir, bilgi işlem kaynakları korunur ve ilk reklam gösteriminin gecikmesi önemli ölçüde azaltılır.
Uygulamanızın performansını optimize etmek için bağdaştırıcı başlatma yapılandırması oluştururken aşağıdaki stratejileri göz önünde bulundurun:
Belirli bir reklam biçimine veya reklam birimine öncelik verme
Uyumlulaştırıcı başlatma yapılandırmanızda belirli reklam biçimini veya reklam birimini bildirerek, başlatma sırasında hemen reklam gösteren uygulamaların (ör. uygulama açılış reklamı) performansını artırın.
Aşağıdaki örnekte, belirli bir uygulama açılış reklamı birimi için yalnızca gerekli uyumlulaştırma bağdaştırıcılarını beş saniyelik zaman aşımıyla başlatan bir bağdaştırıcı başlatma yapılandırması oluşturulmaktadır:
Kotlin
val adapterConfig =
AdapterInitializationConfig.Builder()
.setAllowedAdUnitIds(setOf(AD_UNIT_ID))
.setInitializationTimeoutMs(5000)
.build()
Java
AdapterInitializationConfig adapterConfig =
new AdapterInitializationConfig.Builder()
.setAllowedAdUnitIds(Set.of(AD_UNIT_ID))
.setInitializationTimeoutMs(5000)
.build();
Aşağıdaki örnekte, tüm uygulama açılış reklamları için yalnızca gerekli uyumlulaştırma bağdaştırıcılarını başlatan ve beş saniyelik bir zaman aşımı süresi ayarlayan bir bağdaştırıcı başlatma yapılandırması oluşturulmaktadır:
Kotlin
val adapterConfig =
AdapterInitializationConfig.Builder()
.setAllowedAdFormats(setOf(AdFormat.APP_OPEN_AD))
.setInitializationTimeoutMs(5000)
.build()
Java
AdapterInitializationConfig adapterConfig =
new AdapterInitializationConfig.Builder()
.setAllowedAdFormats(Set.of(AdFormat.APP_OPEN_AD))
.setInitializationTimeoutMs(5000)
.build();
Belirli uyumlulaştırma bağdaştırıcılarını başlatma
İlk reklam gösteriminizi genellikle hangi uyumlulaştırma iş ortaklarının doldurduğunu tam olarak biliyorsanız bağdaştırıcı başlatma yapılandırmanızda bağdaştırıcı sınıf adını sağlayarak yalnızca ilgili bağdaştırıcıyı başlatabilirsiniz. Açık artırma sırasında başlatılmamış kalan bağdaştırıcıları beklememek için bu yöntemi, başlatılmamış bağdaştırıcıları açıkça atlama ve GMA Next-Gen SDK için zaman aşımı ayarlama ile birleştirin.
Aşağıdaki örnekte, belirli bir uyumlulaştırma bağdaştırıcısını başlatan ve beş saniyelik bir zaman aşımı ayarlayan bir bağdaştırıcı başlatma yapılandırması oluşturulmaktadır:
Kotlin
val adapterConfig =
AdapterInitializationConfig.Builder()
.setAllowedAdapterClasses(setOf(ADAPTER_JAVA_CLASS_NAME))
.setInitializationTimeoutMs(5000)
.build()
Java
AdapterInitializationConfig adapterConfig =
new AdapterInitializationConfig.Builder()
.setAllowedAdapterClasses(Set.of(ADAPTER_JAVA_CLASS_NAME))
.setInitializationTimeoutMs(5000)
.build();
Bağdaştırıcı sınıfı adlarını programatik olarak getirebilirsiniz. Aşağıdaki örnekte, bağdaştırıcı sınıf adları programatik olarak alınmaktadır:
Kotlin
ExampleMediationAdapter::class.java.name
Java
ExampleMediationAdapter.class.getName()
Belirli uyumlulaştırma bağdaştırıcılarını hariç tutma
Belirli uyumlulaştırma bağdaştırıcılarının sürekli olarak yüksek gecikme süresine sahip olduğunu fark ederseniz bu bağdaştırıcıları hariç tutabilir ve daha sonra başlatabilirsiniz.
Aşağıdaki örnekte, belirli bağdaştırıcıları başlatma işleminden hariç tutan ve beş saniyelik bir zaman aşımı ayarlayan bir bağdaştırıcı başlatma yapılandırması oluşturulmaktadır:
Kotlin
val adapterConfig =
AdapterInitializationConfig.Builder()
.setExcludedAdapterClasses(setOf(ADAPTER_JAVA_CLASS_NAME))
.setInitializationTimeoutMs(5000)
.build()
Java
AdapterInitializationConfig adapterConfig =
new AdapterInitializationConfig.Builder()
.setExcludedAdapterClasses(Set.of(ADAPTER_JAVA_CLASS_NAME))
.setInitializationTimeoutMs(5000)
.build();
Başlatılmamış bağdaştırıcıları atlama
Belirli uyumlulaştırma bağdaştırıcılarını ilk kullanıma hazırlamayı veya hariç tutmayı planlıyorsanız reklam isteğinizi, şelalenizde hâlâ mevcut olan ilk kullanıma hazırlanmamış bağdaştırıcıları atlayacak şekilde yapılandırabilirsiniz.
Adaptör yapılandırması oluşturmazsanız reklam isteğinizi, başlatılmamış adaptörleri atlayacak şekilde yapılandırabilirsiniz. GMA Next-Gen SDK, bağdaştırıcıların zaman aşımına uğramasını veya başlatılamamasını beklemeden reklam isteği gönderir.
Aşağıdaki örnekte, SDK bir bağdaştırıcı başlatma yapılandırmasıyla başlatılır ve başlatılmamış bağdaştırıcıları atlayan bir uygulama açılış reklamı isteği oluşturulur:
Kotlin
val initConfig =
InitializationConfig.Builder(appId)
.setAdapterInitializationConfig(adapterInitializationConfig)
.build()
// Initialize the GMA Next-Gen SDK with a config containing your adapter initialization
// settings.
val backgroundScope = CoroutineScope(Dispatchers.IO)
backgroundScope.launch {
MobileAds.initialize(context = context, initConfig) {
// Make your ad request after adapter initialization completes.
AppOpenAd.load(
AdRequest.Builder(adUnitId = adUnitId)
// Set this to guarantee that the ad request
// doesn't wait for any other uninitialized adapters.
.skipUninitializedAdapters()
.build(),
adLoadCallback =
object : AdLoadCallback<AppOpenAd> {
override fun onAdLoaded(ad: AppOpenAd) {
// TODO: Your ad logic here
// ....
// Execute non-time-sensitive tasks after ad load completes.
performPostLaunchSetup()
}
override fun onAdFailedToLoad(adError: LoadAdError) {
// TODO: Handle load error.
// ....
// Ensure non-time-sensitive post-launch tasks execute even if ad load fails.
performPostLaunchSetup()
}
},
)
}
}
Java
InitializationConfig initConfig =
new InitializationConfig.Builder(appId)
.setAdapterInitializationConfig(adapterInitializationConfig)
.build();
// Initialize the GMA Next-Gen SDK with a config containing your adapter initialization
// settings.
MobileAds.initialize(
context,
initConfig,
initializationStatus -> {
// Make your ad request after adapter initialization completes.
AppOpenAd.load(
new AdRequest.Builder(adUnitId)
// Set this to guarantee that the ad request
// doesn't wait for any other uninitialized adapters.
.skipUninitializedAdapters()
.build(),
new AdLoadCallback<AppOpenAd>() {
@Override
public void onAdLoaded(@NonNull AppOpenAd ad) {
// TODO: Your ad logic here
// ....
// Execute non-time-sensitive tasks after ad load completes.
performPostLaunchSetup();
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError error) {
// TODO: Handle load error.
// ....
// Ensure non-time-sensitive post-launch tasks execute even if ad load fails.
performPostLaunchSetup();
}
});
});
Kalan bağdaştırıcıları başlatma
Zamana duyarlı reklam fırsatlarınız yüklendikten sonra, uygulama oturumunun geri kalanında tam iş ortağı uyumlulaştırma kapsamı sağlamak için kalan bağdaştırıcılarınızı ilk kullanıma hazırlayın.
Aşağıdaki örnekte, boş bir yapılandırma sağlanarak diğer bağdaştırıcılar başlatılmaktadır:
Kotlin
// Provide initializeAdapters with an empty configuration to initialize
// any adapters not initialized with configurable initialization.
MobileAds.initializeAdapters(AdapterInitializationConfig.Builder().build())
Java
// Provide initializeAdapters with an empty configuration to initialize
// any adapters not initialized with configurable initialization.
MobileAds.initializeAdapters(new AdapterInitializationConfig.Builder().build());