시작하기

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

시작하기 전에

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

앱 기본 요건

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

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

앱 구성

  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.5.0")
    }

    Groovy

    dependencies {
      implementation 'com.google.android.gms:play-services-ads:23.5.0'
    }
  3. Ad Manager 웹 인터페이스에서 확인한 Ad Manager 앱 ID를 앱의 AndroidManifest.xml 파일에 추가합니다. 이렇게 하려면 android:name="com.google.android.gms.ads.APPLICATION_ID"가 있는 <meta-data> 태그를 추가합니다. Ad Manager 웹 인터페이스에서 앱 ID를 확인할 수 있습니다. android:value의 경우 내 Ad Manager 앱 ID를 따옴표로 묶어 입력하세요.

    <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="
    /<network_code>~<application_id>"/>
      </application>
    </manifest>
    

    실제 앱에서는 샘플 앱 ID를 실제 Ad Manager 앱 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를 가져왔으므로 광고를 구현할 준비가 되었습니다. Ad Manager에서는 다양한 광고 형식을 제공하므로 앱의 사용자 환경에 가장 적합한 형식을 선택할 수 있습니다.

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

배너 광고 구현

전면 광고

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

전면 광고 구현

네이티브

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

Google Ad Manager에서는 네이티브 광고를 구현하는 두 가지 방법인 네이티브 스타일과 맞춤 렌더링을 통한 표준 네이티브 광고를 제공합니다.

네이티브 스타일은 네이티브 광고의 구현을 간소화하도록 설계되었으며, 네이티브 광고 형식이 처음이라면 네이티브 스타일을 선택하는 것이 좋습니다. 맞춤 렌더링은 최대한 자유롭게 표현할 수 있도록 설계되었습니다.

네이티브 스타일 구현 네이티브 광고 구현 (맞춤 렌더링)

리워드 제공됨

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

보상형 광고 구현

보상형 전면 광고

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

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

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

보상형 전면 광고 구현

앱 오프닝 광고

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

앱 오프닝 광고 구현

추가 리소스

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