AdMob Uyumlulaştırması, AdMob Ağı ve üçüncü taraf reklam kaynakları dahil olmak üzere birden fazla kaynaktan gelen reklamları uygulamalarınızda tek bir yerden yayınlamanıza olanak tanıyan bir özelliktir. AdMob Uyumlulaştırması, reklamları yayınlamak için mevcut en iyi ağı bulduğunuzu doğrulamak amacıyla reklam isteklerini birden fazla ağa göndererek doluluk oranınızı en üst düzeye çıkarmanıza ve daha fazla para kazanmanıza yardımcı olur. Örnek olay.
Ön koşullar
Bir reklam biçimi için uyumlulaştırmayı entegre etmeden önce bu reklam biçimini uygulamanıza entegre etmeniz gerekir:
Uyumlulaştırmayı ilk kez mi kullanıyorsunuz? AdMob Uyumlulaştırması'na genel bakış başlıklı makaleyi okuyun.
GMA Next-Gen SDK başlatılıyor
Hızlı başlangıç kılavuzunda, GMA Next-Gen SDK'i nasıl başlatacağınız gösterilmektedir. Bu başlatma çağrısı sırasında uyumlulaştırma bağdaştırıcıları da başlatılır. İlk reklam isteğinde her reklam ağının tam katılımını doğrulamak için reklamları yüklemeden önce başlatma işleminin tamamlanmasını beklemeniz önemlidir.
Aşağıdaki örnek kod, reklam isteği göndermeden önce her bir bağdaştırıcının başlatma durumunu nasıl kontrol edebileceğinizi gösterir.
Kotlin
import com.google.android.libraries.ads.mobile.sdk.MobileAds
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val backgroundScope = CoroutineScope(Dispatchers.IO)
backgroundScope.launch {
// Initialize GMA Next-Gen SDK on a background thread.
MobileAds.initialize(this@MainActivity, InitializationConfig.Builder("SAMPLE_APP_ID").build()) {
initializationStatus ->
for ((adapterName, adapterStatus) in initializationStatus.adapterStatusMap) {
Log.d(
"MyApp",
String.format(
"Adapter name: %s, Status code: %s, Status string: %s, Latency: %d",
adapterName,
adapterStatus.initializationState,
adapterStatus.description,
adapterStatus.latency,
),
)
}
// Adapter initialization is complete.
}
// Other methods on MobileAds can now be called.
}
}
}
Java
import com.google.android.libraries.ads.mobile.sdk.MobileAds;
import com.google.android.libraries.ads.mobile.sdk.initialization.AdapterStatus;
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig;
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(
() -> {
// Initialize GMA Next-Gen SDK on a background thread.
MobileAds.initialize(
this,
new InitializationConfig.Builder("SAMPLE_APP_ID")
.build(),
initializationStatus -> {
Map<String, AdapterStatus> adapterStatusMap =
initializationStatus.getAdapterStatusMap();
for (String adapterClass : adapterStatusMap.keySet()) {
AdapterStatus adapterStatus = adapterStatusMap.get(adapterClass);
Log.d(
"MyApp",
String.format(
"Adapter name: %s, Status code: %s, Status description: %s,"
+ " Latency: %d",
adapterClass,
adapterStatus.getInitializationState(),
adapterStatus.getDescription(),
adapterStatus.getLatency()));
}
// Adapter initialization is complete.
});
// Other methods on MobileAds can now be called.
})
.start();
}
}
Uyumlulaştırma entegrasyonlarında com.google.android.gms modüllerini hariç tutma
Uyumlulaştırma bağdaştırıcıları Google Mobile Ads SDK (Legacy)'a bağlı olmaya devam eder. Ancak ,GMA Next-Gen SDK uyumlulaştırma bağdaştırıcılarının gerektirdiği tüm sınıfları içerir. Yinelenen simgelerle ilgili derleme hatalarını önlemek için uyumlulaştırma bağdaştırıcıları tarafından bağımlılık olarak çekilen Google Mobile Ads SDK (Legacy) öğesini hariç tutmanız gerekir.
Uygulama düzeyindeki build.gradle dosyanızda hem play-services-ads hem de play-services-ads-lite modüllerini tüm bağımlılıklardan genel olarak hariç tutun:
Kotlin
configurations.configureEach { exclude(group = "com.google.android.gms", module = "play-services-ads") exclude(group = "com.google.android.gms", module = "play-services-ads-lite") }
Modern
configurations.configureEach { exclude group: "com.google.android.gms", module: "play-services-ads" exclude group: "com.google.android.gms", module: "play-services-ads-lite" }
Reklamı hangi reklam ağı bağdaştırıcı sınıfının yüklediğini kontrol etme
Aşağıda, banner reklam için reklam ağı sınıf adını günlüğe kaydeden örnek bir kod verilmiştir:
Kotlin
BannerAd.load(
BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
object : AdLoadCallback<BannerAd> {
override fun onAdLoaded(ad: BannerAd) {
Log.d(
"MyApp", "Adapter class name: " +
ad.getResponseInfo().mediationAdapterClassName
)
}
}
)
Java
BannerAd.load(
new BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
new AdLoadCallback<BannerAd>() {
@Override
public void onAdLoaded(@NonNull BannerAd ad) {
Log.d("MyApp",
"Adapter class name: " + ad.getResponseInfo().getMediationAdapterClassName());
}
}
);
AdMob Uyumlulaştırması ile banner reklamları kullanma
AdMob Uyumlulaştırması'nda kullanılan banner reklam birimleri için tüm üçüncü taraf reklam kaynağı kullanıcı arayüzlerinde yenilemeyi devre dışı bıraktığınızdan emin olun. AdMob da banner reklam biriminizin yenileme hızına göre yenileme tetiklediğinden, bu sayede iki kez yenileme yapılmasını önlemiş olursunuz.
ABD eyalet gizlilik yasaları ve GDPR
ABD eyalet gizlilik yasalarına veya Genel Veri Koruma Yönetmeliği'ne (GDPR) uymanız gerekiyorsa uyumlulaştırma iş ortaklarınızı AdMob Gizlilik ve Mesajlaşma'nın ABD eyaletleri veya GDPR reklam iş ortakları listesine eklemek için ABD eyalet tüzükleri ayarları ya da GDPR ayarları bölümündeki adımları uygulayın. Bunu yapmazsanız iş ortakları uygulamanızda reklam yayınlayamayabilir.
Google Kullanıcı Mesajlaşma Platformu (UMP) SDK'sı ile kısıtlanmış veri işlemeyi (KVİ) etkinleştirme ve GDPR izni alma hakkında daha fazla bilgi edinin.