AdMob, bu sorunu çözmek için Yapılandırılabilir Adaptör Başlatma'yı 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österimin gecikme süresini azaltır.
Bu kılavuzda, Yapılandırılabilir Adaptör Başlatma'nın 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ı atla
- Kalan bağdaştırıcıları başlatma
Ön koşullar
- Import GMA Next-Gen SDK v0.25.0-beta01 veya daha yeni bir sürüm.
- GMA Next-Gen SDK'i kurun.
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
Bir bağdaştırıcı başlatma yapılandırması, GMA Next-Gen SDK'ya 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, 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
Adaptör başlatma yapılandırmanızda belirli reklam biçimini veya reklam birimini bildirerek, başlatıldıktan hemen sonra reklam gösteren uygulamaların (ör. uygulama açılışı reklamı) performansını artırın.
Aşağıdaki örnekte, yalnızca belirli bir uygulama açılış reklamı birimi için gerekli uyumlulaştırma bağdaştırıcılarını beş saniyelik bir 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ı 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
Genellikle ilk reklam gösteriminizi hangi arabuluculuk iş ortaklarının doldurduğunu 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 söz konusu bağdaştırıcıyı başlatabilirsiniz. Bunu, başlatılmamış bağdaştırıcıları açıkça atlamak ve GMA Next-Gen SDK için bir zaman aşımı ayarlamakla birleştirerek açık artırma sırasında kalan başlatılmamış bağdaştırıcıların beklenmemesini sağlayın.
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şturulur:
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 örnek, bağdaştırıcı sınıfı adlarını programatik olarak çeker:
Kotlin
ExampleMediationAdapter::class.java.name
Java
ExampleMediationAdapter.class.getName()
Belirli arabuluculuk 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 gecikmeye sahip olduğunu gözlemlerseniz 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ın başlatılmasını 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ı başlatmayı veya hariç tutmayı planlıyorsanız reklam isteğinizi, şelalenizde hâlâ bulunan başlatılmamış 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 bir 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 adaptörleri başlatma
Zamana duyarlı reklam fırsatlarınız yüklendikten sonra, uygulama oturumunun geri kalanında iş ortağı uyumlulaştırmasının tam kapsamlı olmasını sağlamak için kalan bağdaştırıcılarınızı başlatın.
Aşağıdaki örnek, boş bir yapılandırma sağlayarak bağdaştırıcıların geri kalanını başlatı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());