AdMob Uyumlulaştırması, AdMob Ağı ve üçüncü taraf reklam kaynakları gibi 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ğı bulmanızı sağlamak 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 arabuluculuğu entegre edebilmeniz için söz konusu reklam biçimini uygulamanıza entegre etmeniz gerekir:
Uyumlulaştırmada yeni misiniz? AdMob Uyumlulaştırmasına Genel Bakış başlıklı makaleyi okuyun.
Google Mobile Ads SDK'sını (beta) başlatma
Hızlı başlangıç kılavuzu, Google Mobile Ads SDK'sını (beta) nasıl başlatacağınızı gösterir. Bu ilk kullanıma hazırlama çağrısı sırasında arabuluculuk bağdaştırıcıları da ilk kullanıma hazırlanı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 kodda, reklam isteğinde bulunmadan önce her bağdaştırıcının başlatma durumunu nasıl kontrol edebileceğiniz gösterilmektedir.
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 Google Mobile Ads SDK (beta) 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 Google Mobile Ads SDK (beta) 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ı, mevcut Google Mobile Ads SDK'sına (beta) bağlı olmaya devam eder. Ancak Google Mobile Ads SDK'sı (beta), uyumlulaştırma bağdaştırıcıları için gereken tüm sınıfları içerir. Aynı sembollerle ilgili derleme hatalarını önlemek için mevcut Google Mobile Ads SDK'sının (beta) uyumlulaştırma bağdaştırıcıları tarafından bağımlılık olarak çekilmesini engellemeniz 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.
configurations {
all {
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, bir 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. Bu sayede, AdMob da banner reklam biriminizin yenileme hızına göre yenileme tetiklediğinden çift yenileme önlenir.
ABD eyalet gizlilik yasaları ve GDPR
ABD eyalet gizlilik yasalarına veya Genel Veri Koruma Yönetmeliği'ne (GDPR) uymanız gerekiyorsa AdMob Gizlilik ve Mesajlaşma'daki ABD eyalet tüzükleri ayarları veya GDPR ayarlarında belirtilen adımları uygulayarak arabuluculuk iş ortaklarınızı ABD eyaletleri veya GDPR reklam iş ortakları listesine ekleyin. Aksi takdirde iş ortakları uygulamanızda reklam yayınlayamaz.
Kısıtlanmış veri işlemeyi (RDP) etkinleştirme ve Google Kullanıcı Mesajlaşma Platformu (UMP) SDK ile GDPR izni alma hakkında daha fazla bilgi edinin.