Inicjowanie pakietu GMA SDK nowej generacji

Na tej stronie znajdziesz instrukcje dotyczące inicjowania GMA Next-Gen SDK.

Zanim zaczniesz

Aby korzystać z GMA Next-Gen SDK, musisz zintegrować go bez zapośredniczenia lub używać Ad Managera jako platformy zapośredniczenia. Inne platformy zapośredniczenia nie są zgodne z GMA Next-Gen SDK.

Konfigurowanie kompilacji pod kątem GMA Next-Gen SDK


W kolejnych sekcjach znajdziesz informacje o niezbędnych krokach konfigurowania GMA Next-Gen SDK.

Dodawanie zależności pakietu GMA Next-Gen SDK

Pakiet GMA Next-Gen SDK wymaga innej zależności Gradle. W pliku kompilacji na poziomie aplikacji usuń odniesienie do bieżącej zależności pakietu SDK do reklam mobilnych i dodaj nowy artefakt.

Zależności Gradle
Obecnie

Kotlin

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

Groovy

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

Kotlin

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

Groovy

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

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

Adaptery zapośredniczenia nadal zależą od bieżącego pakietu SDK do reklam mobilnych. Pakiet GMA Next-Gen SDK zawiera jednak wszystkie klasy wymagane przez adaptery zapośredniczenia. Aby uniknąć błędów kompilacji związanych z duplikatami symboli, musisz wykluczyć bieżący pakiet SDK do reklam mobilnych z pobierania jako zależności przez adaptery zapośredniczenia.

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

Kotlin

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

Groovy

configurations.configureEach {
    exclude group: "com.google.android.gms", module: "play-services-ads"
    exclude group: "com.google.android.gms", module: "play-services-ads-lite"
}

Ustawianie minimalnych i docelowych poziomów interfejsu API Androida

GMA Next-Gen SDK wymaga minimalnego poziomu interfejsu API Androida 24 i docelowego poziomu interfejsu API Androida 34. Dostosuj wartości minSdk i compileSdk w pliku kompilacji na poziomie aplikacji odpowiednio do wartości 24 lub wyższej i 34 lub wyższej.

Inicjowanie GMA Next-Gen SDK

GMA Next-Gen SDK wymaga inicjowania przed wczytaniem reklam. Jest to zmiana w porównaniu z bieżącym pakietem SDK do reklam mobilnych, w którym inicjowanie jest opcjonalne, ale zalecane. Jeśli wcześniej nie inicjowałeś pakietu SDK przed wczytaniem reklam, zaktualizuj kod.

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

Ustawianie identyfikatora aplikacji Ad Managera

W poniższych przykładach ustawiamy identyfikator aplikacji Ad Managera w bieżącym pakiecie SDK i pakiecie GMA Next-Gen SDK:GMA Next-Gen SDK

Obecnie

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

<manifest>
  <application>
    <!-- Sample Ad Manager 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 Ad Managera 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 w implementacji

W poniższych przykładach inicjujemy bieżący pakiet SDK i pakiet GMA Next-Gen SDK:

Obecnie

Aby zainicjować pakiet SDK do reklam mobilnych Google, wywołaj funkcję MobileAds.initialize(). 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

Aby zainicjować GMA Next-Gen SDK, wywołaj funkcję MobileAds.initialize(). Musisz to zrobić 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 Ad Manager 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 Ad Manager 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();
  }
}