Bu kılavuzda, uyumlulaştırma bağdaştırıcısını Android uygulamanıza nasıl entegre edeceğiniz gösterilmektedir.
Ö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? Uyumlulaştırmaya giriş 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 kodda, reklam isteği göndermeden önce her bir 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 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ı 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());
}
}
);
Uyumlulaştırma ile banner reklamları kullanma
Uyumlulaştırmada 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. Ad Manager da banner reklam biriminizin yenileme hızına göre bir yenileme tetiklediğinden, bu işlem çift yenilemeyi önler.
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ı Ad Manager 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.