GMA Next-Gen SDK 초기화

이 페이지에서는 GMA Next-Gen SDK를 초기화하는 방법을 설명합니다.

시작하기 전에

GMA Next-Gen SDK을(를) 사용하려면 미디에이션 없이 통합하거나 AdMob을 미디에이션 플랫폼으로 사용해야 합니다. 다른 미디에이션 플랫폼은 GMA Next-Gen SDK과 호환되지 않습니다.

GMA Next-Gen SDK용 빌드 구성

다음 섹션에서는 GMA Next-Gen SDK을 구성하는 데 필요한 단계를 보여줍니다.

GMA Next-Gen SDK 종속 항목 포함

GMA Next-Gen SDK에는 다른 Gradle 종속 항목이 필요합니다. 앱 수준 빌드 파일에서 Google Mobile Ads SDK 종속 항목에 대한 참조를 삭제하고 새 아티팩트를 포함합니다.

Gradle 종속 항목
Google Mobile Ads SDK

Kotlin

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

Groovy

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

Kotlin

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

Groovy

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

미디에이션 통합에서 com.google.android.gms 모듈 제외

미디에이션 어댑터는 계속해서 Google Mobile Ads SDK에 종속됩니다. 하지만 GMA Next-Gen SDK에는 미디에이션 어댑터에 필요한 모든 클래스가 포함되어 있습니다. 중복 기호와 관련된 컴파일 오류를 방지하려면 미디에이션 어댑터에서 종속 항목으로 가져오는 Google Mobile Ads SDK를 제외해야 합니다.

앱 수준 빌드 파일에서 play-services-adsplay-services-ads-lite 모듈을 전역적으로 제외합니다.

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

최소 및 컴파일 Android API 수준 설정

GMA Next-Gen SDK에는 최소 Android API 수준 24와 컴파일 Android API 수준 34가 필요합니다. 앱 수준 빌드 파일에서 minSdkcompileSdk 값을 각각 24 이상 및 34 이상으로 조정합니다.

GMA Next-Gen SDK 초기화

GMA Next-Gen SDK는 광고를 로드하기 전에 초기화해야 합니다. Google Mobile Ads SDK에서는 초기화가 선택사항이지만 권장됩니다. 이전에 광고를 로드하기 전에 SDK를 초기화하지 않은 경우 코드를 업데이트합니다.

이 섹션에서는 Google Mobile Ads SDKGMA Next-Gen SDK 간의 SDK 초기화 구현 차이점을 설명합니다.

AdMob 앱 ID 설정

다음 예에서는 AdMob 앱 ID를 Google Mobile Ads SDKGMA Next-Gen SDK에서 설정합니다.

Google Mobile Ads SDK

통합에는 앱의 AndroidManifest.xml 파일 내에 AdMob 앱 ID가 포함된 태그가 필요합니다.<meta-data>android:name="com.google.android.gms.ads.APPLICATION_ID"

<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

SDK 초기화의 일부로 AdMob 앱 ID를 프로그래매틱 방식으로 제공합니다.

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

구현 변경사항 검토

다음 예에서는 Google Mobile Ads SDKGMA Next-Gen SDK를 초기화합니다.

Google Mobile Ads SDK

MobileAds.initialize()를 호출하여 Google 모바일 광고 SDK를 초기화합니다. ANR을 줄이려면 백그라운드 스레드에서 초기화하는 것이 좋습니다.

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

MobileAds.initialize() 를 호출하여 GMA Next-Gen SDK를 초기화합니다. 이 메서드는 백그라운드 스레드에서 호출해야 하며, 그러지 않으면 '애플리케이션 응답 없음'(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.
      }
      // 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();
  }
}