Bu kılavuzda, bir arabuluculuk 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 arabuluculuğu entegre edebilmeniz için önce bu reklam biçimini uygulamanıza entegre etmeniz gerekir:
Uyumlulaştırmada yeni misiniz? Uyumlulaştırmaya giriş başlıklı makaleyi okuyun.
GMA Next-Gen SDK'yı başlatma
Hızlı başlangıç kılavuzunda GMA Next-Gen SDK'sını nasıl başlatacağınız gösterilmektedir. Bu ilk kullanıma hazırlama çağrısı sırasında aracılık 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 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
Aracılık bağdaştırıcıları, mevcut GMA Next-Gen SDK'sına bağlı olmaya devam eder. Ancak, GMA Next-Gen SDK, uyumlulaştırma bağdaştırıcıları için gereken tüm sınıfları içerir. Yinelenen sembollerle ilgili derleme hatalarını önlemek için mevcut GMA Next-Gen SDK'sının, aracılık 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());
}
}
);
Uyumlaş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. Bu, Ad Manager da banner reklam biriminizin yenileme hızına göre yenilemeyi tetiklediğinden ç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 Ad Manager'ın Gizlilik ve Mesajlaşma bölümündeki ABD eyalet tüzükleri ayarları veya GDPR ayarları bölümündeki adımları uygulayarak aracılık iş ortaklarınızı ABD eyaletleri veya GDPR reklam iş ortakları listesine ekleyin. Bunu yapmamanız, iş ortaklarının uygulamanızda reklam yayınlayamamasına neden olabilir.
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.