시작하기

GMA Next-Gen SDK를 앱에 통합하는 것은 광고를 게재하고 수익을 창출하기 위한 첫 단계입니다. SDK를 통합한 다음 광고 형식 (예: 네이티브 또는 보상형 동영상 광고)을 선택하고 구현 단계를 진행하세요.

시작하기 전에

앱을 준비하려면 다음 섹션의 단계를 완료합니다.

앱 기본 요건

  • 앱의 빌드 파일이 다음 값을 사용하는지 확인합니다.

    • 최소 SDK 버전: 24 이상
    • 컴파일 SDK 버전: 35 이상
  • Kotlin 앱의 경우 최소 Kotlin 버전 1.9를 사용하세요.

AdMob 계정에서 앱 설정

다음 단계에 따라 앱을 AdMob 앱으로 등록합니다.

  1. AdMob 계정에 로그인하거나 가입합니다.

  2. AdMob에 앱을 등록합니다. 이 단계를 통해 고유한 AdMob 앱 ID를 가진 AdMob 앱을 만들 수 있습니다. 이 ID는 가이드의 뒷부분에서 필요합니다.

앱 구성

  1. Gradle 설정 파일에서 Google의 Maven 저장소Maven 중앙 저장소를 포함합니다.

    Kotlin

    pluginManagement {
      repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
      }
    }
    
    dependencyResolutionManagement {
      repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
      repositories {
        google()
        mavenCentral()
      }
    }
    
    rootProject.name = "My Application"
    include(":app")

    Groovy

    pluginManagement {
      repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
      }
    }
    
    dependencyResolutionManagement {
      repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
      repositories {
        google()
        mavenCentral()
      }
    }
    
    rootProject.name = "My Application"
    include ':app'
  2. 앱 수준 빌드 파일에 GMA Next-Gen SDK 종속 항목을 추가합니다.

    Kotlin

    dependencies {
      implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.22.0-beta04")
    }

    Groovy

    dependencies {
      implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.22.0-beta04'
    }
  3. Sync Now를 클릭합니다. 동기화에 관한 자세한 내용은 프로젝트를 Gradle 파일과 동기화를 참고하세요.

GMA Next-Gen SDK 초기화

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

자바

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

이 메서드는 SDK를 초기화하고 GMA Next-Gen SDK와 어댑터 초기화가 모두 완료되거나 30초의 제한 시간이 경과하면 완료 리스너를 호출합니다. 이 작업은 한 번만 처리하면 됩니다(앱 실행 시점이 가장 이상적).

초기화하면 GMA Next-Gen SDK 또는 미디에이션 파트너 SDK에서 광고를 미리 로드할 수도 있습니다. 유럽 경제 지역(EEA) 사용자의 동의를 얻어야 하는 경우 요청별 플래그(예: RequestConfiguration.TagForChildDirectedTreatment 또는 RequestConfiguration.TagForUnderAgeOfConsent)를 설정하거나 광고를 로드하기 전에 조치를 취합니다. 이 작업은 GMA Next-Gen SDK을 초기화하기 전에 이루어져야 합니다.

광고 형식 선택

이제 GMA Next-Gen SDK를 가져왔으므로 광고를 구현할 준비가 되었습니다. AdMob에서는 다양한 광고 형식을 제공하므로 앱의 사용자 환경에 가장 적합한 형식을 선택할 수 있습니다.

배너 광고 단위에는 앱 레이아웃의 일부를 차지하는 직사각형 광고가 게재됩니다. 이 광고는 일정 기간 후 자동으로 새로고침됩니다. 즉 사용자가 앱에서 같은 화면에 머물러 있어도 정기적으로 새 광고가 게재됩니다. 또한 가장 구현하기 간단한 광고 형식이기도 합니다.

배너 광고 구현

전면 광고

전면 광고용 광고 단위는 앱에서 페이지 전체를 채우는 광고입니다. 게임 앱의 레벨 완료 후와 같이 앱 인터페이스에서 자연스럽게 멈추거나 전환하는 시점에 전면 광고를 게재하세요.

전면 광고 구현

네이티브

네이티브 광고는 광고 제목, 클릭 유도 문구와 같은 확장 소재가 앱에 표시되는 방식을 맞춤설정할 수 있는 광고입니다. 광고 스타일을 직접 지정하여 자연스럽고 사용자의 앱 이용을 방해하지 않는 방식으로 광고를 표시함으로써 사용자 환경을 더욱 풍부하게 만들 수 있습니다.

네이티브 광고 구현

리워드 제공됨

보상형 광고 단위에서는 사용자가 게임을 하거나 설문조사에 참여하거나 동영상을 끝까지 시청하면 코인이나 추가 생명, 포인트와 같은 인앱 리워드를 제공합니다. 광고 단위별로 리워드를 다르게 설정할 수 있고 사용자에게 제공되는 리워드 가치와 아이템을 지정할 수 있습니다.

보상형 광고 구현

보상형 전면 광고

보상형 전면 광고는 자연스러운 앱 전환 시점에 자동으로 게재되는 광고를 통해 코인이나 추가 생명 아이템 등의 리워드를 제공할 수 있는 새로운 인센티브형 광고 형식입니다.

보상형 광고와 달리 사용자는 수신 동의하지 않고도 보상형 전면 광고를 볼 수 있습니다.

보상형 전면 광고에는 보상형 광고에 표시되는 수신 동의 메시지 대신 리워드를 공지하고 사용자가 원할 경우 수신을 거부할 수 있는 시작 화면이 필요합니다.

보상형 전면 광고 구현

앱 오프닝

앱 오프닝 광고는 사용자가 앱을 열거나 다른 페이지에서 앱으로 다시 돌아올 때 표시되는 광고 형식으로, 광고가 로드 화면에 오버레이됩니다.

앱 오프닝 광고 구현