Inicjowanie pakietu SDK

Na tej stronie znajdziesz instrukcje inicjowania pakietu GMA Next Gen SDK.

Zanim zaczniesz

Aby korzystać z pakietu GMA SDK nowej generacji, musisz przeprowadzić integrację bez zapośredniczenia lub używać AdMob jako platformy zapośredniczenia. Pozostałe platformy mediacji nie są zgodne z pakietem GMA SDK nowej generacji.

Konfigurowanie kompilacji pod kątem pakietu GMA Next Gen SDK

W sekcjach poniżej znajdziesz niezbędne kroki do skonfigurowania pakietu SDK do reklam mobilnych Google nowej generacji.

Uwzględnij zależność od pakietu GMA Next Gen SDK.

Pakiet SDK do reklam mobilnych Google nowej generacji wymaga innego komponentu Gradle. W pliku kompilacji na poziomie aplikacji usuń odwołanie do bieżącej zależności pakietu SDK do reklam mobilnych i uwzględnij nowy artefakt.

Zależności Gradle
Obecnie

Kotlin

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

Zakręcony

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

Kotlin

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

Zakręcony

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

Wykluczanie modułów com.google.android.gms w integracjach zapośredniczenia

Adaptery zapośredniczenia nadal zależą od bieżącego pakietu SDK do reklam mobilnych. Jednak pakiet SDK nowej generacji do reklam mobilnych Google zawiera wszystkie klasy wymagane przez adaptery zapośredniczenia. Aby uniknąć błędów kompilacji związanych ze zduplikowanymi symbolami, musisz wykluczyć bieżący pakiet SDK reklam mobilnych z pobierania jako zależności przez adaptery do mediacji.

W pliku kompilacji na poziomie aplikacji wyklucz globalnie z wszystkich zależności moduły play-services-adsplay-services-ads-lite.

Kotlin

configurations.all {
    exclude(group = "com.google.android.gms", module = "play-services-ads")
    exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
}

Zakręcony

configurations {
  all {
    exclude(group = "com.google.android.gms", module = "play-services-ads")
    exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
  }
}

Ustawianie minimalnego i kompilowanego poziomu interfejsu API Androida

Pakiet SDK GMA nowej generacji wymaga minimalnego poziomu interfejsu Android API 24 i poziomu interfejsu Android API 34 do kompilacji. Dostosuj wartości minSdkcompileSdk w pliku kompilacji na poziomie aplikacji odpowiednio do 24 lub większej i 34 lub większej.

Inicjowanie pakietu GMA Next Gen SDK

Pakiet SDK nowej generacji do reklam mobilnych Google wymaga inicjowania przed wczytaniem reklam. Jest to zmiana w porównaniu z obecnym pakietem SDK do reklam mobilnych, w którym inicjowanie jest opcjonalne, ale zalecane. Jeśli wcześniej nie inicjowano pakietu SDK przed wczytaniem reklam, zaktualizuj kod.

W tej sekcji opisujemy różnice w implementacji inicjowania pakietu SDK między obecnym pakietem SDK a pakietem GMA Next Gen SDK.

Ustawianie identyfikatora aplikacji AdMob

W przykładach poniżej ustawiono identyfikator aplikacji AdMob w bieżącym pakiecie SDK i w pakiecie SDK GMA nowej generacji:

Obecnie

Integracja wymaga tagu <meta-data>android:name="com.google.android.gms.ads.APPLICATION_ID" zawierającego identyfikator aplikacji AdMob w pliku AndroidManifest.xml aplikacji.

<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

Podaj identyfikator aplikacji AdMob programowo w ramach inicjowania pakietu SDK.

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 -> {});

Sprawdzanie zmian we wdrożeniu

W przykładach poniżej pokazujemy, jak zainicjować bieżący pakiet SDK i pakiet SDK GMA nowej generacji:

Obecnie

Wywołaj funkcję MobileAds.initialize(), aby zainicjować pakiet SDK do reklam mobilnych Google. Aby zmniejszyć liczbę błędów ANR, zalecamy inicjowanie w wątku w tle.

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

Wywołaj MobileAds.initialize() aby zainicjować pakiet GMA Next Gen SDK. Tę metodę należy wywoływać w wątku w tle. W przeciwnym razie może wystąpić błąd „Aplikacja nie odpowiada” (ANR).

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.
      }
      // 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.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.
                  });
              // Other methods on MobileAds can now be called.
            })
        .start();
  }
}