시작하기

광고를 게재하고 수익을 올리려면 먼저 Google 모바일 광고 SDK를 앱에 통합해야 합니다. SDK를 통합한 다음 광고 형식 (예: 네이티브 또는 보상형 동영상 광고)을 선택하고 구현 단계를 진행하세요.

시작하기 전에

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

앱 기본 요건

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

    • 최소 SDK 버전 21 이상
    • 34 이상의 컴파일 SDK 버전

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. 앱 수준 빌드 파일에 Google 모바일 광고 SDK의 종속 항목을 추가합니다.

    Kotlin

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

    Groovy

    dependencies {
      implementation 'com.google.android.gms:play-services-ads:23.6.0'
    }
    
  3. AdMob 웹 인터페이스에서 확인된 AdMob 앱 ID를 앱의 AndroidManifest.xml 파일에 추가합니다. 이렇게 하려면 android:name="com.google.android.gms.ads.APPLICATION_ID"가 있는 <meta-data> 태그를 추가합니다. AdMob 웹 인터페이스에서 앱 ID를 확인할 수 있습니다. android:value의 경우 AdMob 앱 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="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
      </application>
    </manifest>
    

    실제 앱에서는 샘플 앱 ID를 실제 AdMob 앱 ID로 바꿉니다. Hello World 앱에서 SDK를 실험하는 경우 샘플 ID를 사용할 수 있습니다.

    또한 <meta-data> 태그를 표시된 대로 정확하게 추가하지 않으면 다음 메시지가 표시되며 앱이 비정상 종료됩니다.

    Missing application ID.
    

    (선택사항) 이전 버전이 Android 13에서 작동하도록 AD_ID 권한을 선언합니다.

    앱에서 Google 모바일 광고 SDK 버전 20.4.0 이상을 사용하는 경우, SDK가 com.google.android.gms.permission.AD_ID 권한을 자동으로 선언하고 가능한 경우 언제든지 광고 ID에 액세스할 수 있으므로 이 단계를 건너뛸 수 있습니다.

    앱에서 Google 모바일 광고 SDK 20.3.0 이하를 사용하고 Android 13을 타겟팅하는 경우에는 다음과 같이 AndroidManifest.xml 파일에 com.google.android.gms.permission.AD_ID 권한을 추가해야 Google 모바일 광고 SDK에서 광고 ID에 액세스할 수 있습니다.

    <manifest>
     <application>
       <meta-data
           android:name="com.google.android.gms.ads.APPLICATION_ID"
           android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
    
       <!-- For apps targeting Android 13 or higher & GMA SDK version 20.3.0 or lower -->
       <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
    
     </application>
    </manifest>
    

    사용 중지 방법을 비롯한 com.google.android.gms.permission.AD_ID 권한 선언에 대해 자세히 알아보려면 이 Play Console 도움말을 참고하세요.

Google 모바일 광고 SDK 초기화

광고를 로드하기 전에 MobileAds.initialize()를 호출하여 Google 모바일 광고 SDK를 초기화합니다.

이 메서드는 SDK를 초기화하고 Google 모바일 광고 SDK와 어댑터 초기화가 모두 완료된 후 또는 30초의 제한 시간이 경과한 후에 완료 리스너를 호출합니다. 이 작업은 앱 실행 시 한 번만 처리하면 됩니다.

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

다음은 활동 내 백그라운드 스레드에서 initialize() 메서드를 호출하는 방법을 보여주는 예입니다.

자바

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

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

광고 형식 선택

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

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

배너 광고 구현

전면 광고

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

전면 광고 구현

네이티브

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

네이티브 광고 구현

리워드 제공됨

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

보상형 광고 구현

보상형 전면 광고

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

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

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

보상형 전면 광고 구현

앱 오프닝 광고

앱 오프닝은 사용자가 앱을 열거나 앱으로 다시 전환할 때 표시되는 광고 형식입니다. 광고가 로드 화면을 오버레이합니다.

앱 오프닝 광고 구현

추가 리소스

GitHub의 Google 모바일 광고 저장소에서는 이 API가 제공하는 다양한 광고 형식을 사용하는 방법을 보여줍니다.