Yapılandırılabilir bağdaştırıcı başlatma özelliğini kullanma (alfa)

Varsayılan olarak GMA Next-Gen SDK, başlatma sırasında uygulamanızla ilişkili tüm uyumlulaştırma bağdaştırıcılarını başlatır. Her bağdaştırıcının başlatılması 30 saniyeden uzun sürebilir ve bu da ilk reklamınız yüklenmeden önce önemli bir gecikmeye neden olur.

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:

Ön koşullar

  • Sınıfınıza @ExperimentalApi ek 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());