GMA Yeni Nesil SDK'ya geçiş yapma

Bu sayfada, GMA Next-Gen SDK başlatma talimatları yer almaktadır.

Başlamadan önce

Bu kılavuz, GMA Next-Gen SDK ile doğrudan entegrasyon yapan yayıncılar ve üçüncü taraf platformlar için hazırlanmıştır.

AdMob'a iş ortağı teklifli sistemini destekleyen üçüncü taraf bir uyumlulaştırma platformu üzerinden bağlanıyorsanız söz konusu platformun GMA Next-Gen SDK ile uyumluluğunu onaylamak için aşağıdaki tabloyu inceleyin.

Uyumlulaştırma platformu GMA Next-Gen SDK ile uyumlu
AdMost
AppLovin MAX
Chartboost Uyumlulaştırma
DT Fairbid
Gravite
Nimbus
TopOn
TradPlus VisiM
Unity LevelPlay

GMA Next-Gen SDK ile uyumlu olmayan bir uyumlulaştırma platformu kullanmak istiyorsanız destek almak için uyumlulaştırma platformunuzla iletişime geçin.

Derlemenizi GMA Next-Gen SDK için yapılandırma

Aşağıdaki bölümlerde, GMA Next-Gen SDK aracını yapılandırmak için gereken adımlar gösterilmektedir.

GMA Next-Gen SDK bağımlılığını ekleme

GMA Next-Gen SDK için farklı bir Gradle bağımlılığı gerekiyor. Uygulama düzeyindeki derleme dosyanızda Google Mobile Ads SDK (Legacy) bağımlılığına yapılan referansı kaldırın ve yeni yapıyı ekleyin.

Gradle bağımlılıkları
Google Mobile Ads SDK (Legacy)

Kotlin

dependencies {
  // ...
  implementation("com.google.android.gms:play-services-ads:25.5.0")
}

Modern

dependencies {
  // ...
  implementation 'com.google.android.gms:play-services-ads:25.5.0'
}
GMA Next-Gen SDK

Kotlin

dependencies {
  // ...
  // Comment out/remove play-services-ads.
  // implementation("com.google.android.gms:play-services-ads:25.5.0")
  implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.5.0")
}

Modern

dependencies {
  // ...
  // Comment out/remove play-services-ads.
  // implementation 'com.google.android.gms:play-services-ads:25.5.0'
  implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.5.0'
}

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 derleme 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"
}

Minimum ve derleme Android API düzeylerini ayarlama

GMA Next-Gen SDK için minimum Android API düzeyi 24 ve derleme Android API düzeyi 34 olmalıdır. Uygulama düzeyindeki derleme dosyanızda minSdk ve compileSdk değerlerini sırasıyla 24 veya daha yüksek ve 34 veya daha yüksek olacak şekilde ayarlayın.

GMA Next-Gen SDK başlatılıyor

GMA Next-Gen SDK, reklamlar yüklenmeden önce başlatma gerektirir. Bu, başlatmanın isteğe bağlı olduğu ancak önerildiği Google Mobile Ads SDK (Legacy) sürümüne göre bir değişikliktir. Daha önce reklamları yüklemeden önce SDK'yı başlatmıyorsanız kodunuzu güncelleyin.

Bu bölümde, Google Mobile Ads SDK (Legacy) ve GMA Next-Gen SDK arasındaki SDK başlatma uygulaması farklılıkları ele alınmaktadır.

AdMob uygulama kimliğini ayarlama

Aşağıdaki örneklerde, AdMob uygulama kimliği Google Mobile Ads SDK (Legacy) ve GMA Next-Gen SDK dosyalarında ayarlanmıştır:

Google Mobile Ads SDK (Legacy)

Entegrasyon için uygulamanızın AndroidManifest.xml dosyasında AdMob uygulama kimliğinizi içeren android:name="com.google.android.gms.ads.APPLICATION_ID" ile bir <meta-data> etiketi gerekir.

<manifest>
  <application>
    <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="SAMPLE_APP_ID"/>
  </application>
</manifest>
GMA Next-Gen SDK

AdMob uygulama kimliğinizi SDK başlatma işleminin bir parçası olarak programatik şekilde sağlayın.

Kotlin

// Initialize the Google Mobile Ads SDK.
val initConfig = InitializationConfig.Builder("SAMPLE_APP_ID").build()
MobileAds.initialize(this@MainActivity, initConfig) {}

Java

// Initialize GMA Next-Gen SDK.
InitializationConfig initConfig =
    new InitializationConfig.Builder("SAMPLE_APP_ID").build();
MobileAds.initialize(this, initConfig, initializationStatus -> {});

Uygulama değişikliklerini inceleme

Aşağıdaki örneklerde Google Mobile Ads SDK (Legacy) ve GMA Next-Gen SDK başlatılmaktadır:

Google Mobile Ads SDK (Legacy)

Google Mobile Ads SDK'sını başlatmak için MobileAds.initialize() yöntemini çağırın. ANR'leri azaltmak için arka plan iş parçacığında başlatma önerilir.

Kotlin

import com.google.android.gms.ads.MobileAds
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 the Google Mobile Ads SDK on a background thread.
      MobileAds.initialize(this@MainActivity) {}
    }
  }
}

Java

import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

public class MainActivity extends AppCompatActivity {
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    new Thread(
            () -> {
              // Initialize the Google Mobile Ads SDK on a background thread.
              MobileAds.initialize(this, initializationStatus -> {});
            })
        .start();
  }
}
GMA Next-Gen SDK

GMA Next-Gen SDK öğesini başlatmak için MobileAds.initialize() öğesini çağırın. Bu, bir arka plan iş parçacığında çağrılmalıdır. Aksi takdirde "Uygulama Yanıt Vermiyor" (ANR) hatası oluşabilir.

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,
        // Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
        InitializationConfig.Builder("SAMPLE_APP_ID").build()
      ) {
        // Adapter initialization is complete.
      }
      // SDK initialization is complete. If you don't want to wait for bidding adapters to finish
      // initializing, start loading ads now.
    }
  }
}

Java

import com.google.android.libraries.ads.mobile.sdk.MobileAds;
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,
                  // Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
                  new InitializationConfig.Builder("SAMPLE_APP_ID")
                      .build(),
                  initializationStatus -> {
                    // Adapter initialization is complete.
                  });
              // SDK initialization is complete. If you don't want to wait for bidding adapters to
              // finish initializing, start loading ads now.
            })
        .start();
  }
}