Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

C++ 프로젝트에서 AdMob 시작하기

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

이 빠른 시작 가이드는 AdMob을 사용하여 Firebase로 빌드된 앱에서 수익을 창출하려는 게시자와 개발자를 위한 것입니다.

아직 배우지 않았다면 AdMob, Firebase, Google 애널리틱스를 함께 사용할 때의 모든 이점 에 대해 알아보세요.

이 가이드를 처음 사용하는 경우 Google 모바일 광고 C++ SDK 테스트 앱 을 다운로드하여 사용하는 것이 좋습니다.

시작하기 전에

  • Firebase 프로젝트와 Firebase 앱이 아직 없다면 Firebase 시작 가이드: C++ 프로젝트에 Firebase 추가 를 따르세요.

  • Firebase 프로젝트에서 Google 애널리틱스가 활성화되어 있는지 확인합니다.

    • 새 Firebase 프로젝트를 생성하는 경우 프로젝트 생성 워크플로 중에 Google 애널리틱스를 활성화합니다.

    • Google 애널리틱스가 활성화되지 않은 기존 Firebase 프로젝트가 있는 경우 > 프로젝트 설정통합 탭에서 Google 애널리틱스를 활성화할 수 있습니다.

1단계: AdMob 계정에서 앱 설정

  1. 앱의 각 플랫폼 변형을 AdMob 앱으로 등록합니다.

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

    2. 앱의 각 플랫폼 변형을 AdMob에 등록합니다 . 이 단계에서는 이 가이드의 뒷부분에서 필요한 고유한 AdMob 앱 ID 를 사용하여 AdMob 앱을 만듭니다.

    모바일 광고 SDK를 앱에 추가하라는 메시지가 표시됩니다. 이 가이드 뒷부분에서 이 작업에 대한 자세한 지침을 찾으십시오.

  2. 각 AdMob 앱을 해당 Firebase 앱에 연결합니다.

    이 단계는 선택 사항이지만 강력히 권장됩니다. 사용자 측정항목을 사용 설정하고 AdMob 앱을 Firebase에 연결할 때의 이점 에 대해 자세히 알아보세요.

    각 플랫폼 변형에 대해 AdMob 계정의 대시보드에서 다음 두 단계를 완료하세요.

    1. AdMob이 AdMob 계정에서 선별된 분석 데이터를 처리하고 표시할 수 있도록 사용자 측정항목 을 활성화 합니다. AdMob 앱을 Firebase에 연결하기 위한 필수 설정이기도 합니다.

    2. AdMob 앱을 기존 Firebase 프로젝트 및 해당 Firebase 앱에 연결 합니다.

      Firebase 앱에 입력한 것과 동일한 패키지 이름(Android) 또는 번들 ID(iOS)를 입력해야 합니다. > 프로젝트 설정내 앱 카드에서 Firebase 앱의 패키지 이름 또는 번들 ID를 찾습니다.

2단계: AdMob 앱 ID를 앱에 추가

기계적 인조 인간

아래와 같이 <meta-data> 태그를 추가하여 AdMob 앱 ID 를 앱의 AndroidManifest.xml 파일에 추가합니다.

<manifest>
    <application>
        <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ADMOB_APP_ID"/>
    </application>
</manifest>

iOS

앱의 Info.plist 파일에서 AdMob 앱 ID 의 문자열 값과 함께 GADApplicationIdentifier 키를 추가합니다.

프로그래밍 방식으로 이 변경을 수행할 수 있습니다.

<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 -->
<key>GADApplicationIdentifier</key>
<string>ADMOB_APP_ID</string>

또는 속성 목록 편집기에서 편집합니다.

속성 목록 편집기

3단계: Google 모바일 광고 SDK 추가

Google 모바일 광고 C++ SDK는 firebase::gma 네임스페이스에 있으므로 Firebase C++ SDK 를 다운로드한 다음 원하는 디렉토리에 압축을 풉니다.

Firebase C++ SDK는 플랫폼에 따라 다르지만 플랫폼별 라이브러리 구성이 필요합니다.

기계적 인조 인간

  1. 프로젝트의 gradle.properties 파일에서 압축을 푼 SDK의 위치를 ​​지정합니다.

    systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
  2. 프로젝트의 settings.gradle 파일에 다음 콘텐츠를 추가합니다.

    def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir')
    
    gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir"
    includeBuild "$firebase_cpp_sdk_dir"
  3. 모듈(앱 수준) Gradle 파일(일반적으로 app/build.gradle )에 Google 모바일 광고 C++ SDK에 대한 라이브러리 종속성을 포함하는 다음 콘텐츠를 추가합니다.

    android.defaultConfig.externalNativeBuild.cmake {
      arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    # Add the dependency for the Google Mobile Ads C++ SDK
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      gma
    }
  4. 프로젝트의 CMakeLists.txt 파일에 다음 콘텐츠를 추가합니다.

    # Add Firebase libraries to the target using the function from the SDK.
    add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL)
    
    # Add the Google Mobile Ads C++ SDK.
    
    # The Firebase C++ library `firebase_app` is required,
    # and it must always be listed last.
    
    set(firebase_libs
      firebase_gma
      firebase_app
    )
    
    target_link_libraries(${target_name} "${firebase_libs}")
  5. 모든 종속 항목에 필요한 버전이 있는지 확인하려면 앱을 동기화하세요.

준비가 완료되었습니다! C++ 앱이 Google 모바일 광고 C++ SDK를 사용하도록 구성되어 있습니다.

iOS

이 섹션의 단계는 iOS 프로젝트에 Google 모바일 광고 C++ SDK를 추가하는 방법의 예입니다.

  1. 다음을 실행하여 CocoaPods 버전 1 이상을 가져옵니다.

    sudo gem install cocoapods --pre
  2. 압축을 푼 SDK에서 Google 모바일 광고 포드를 추가합니다.

    1. 아직 없는 경우 Podfile을 만듭니다.

      cd YOUR_APP_DIRECTORY
      pod init
    2. Podfile에 Google 모바일 광고 C++ SDK용 포드를 추가합니다.

      pod 'Google-Mobile-Ads-SDK'
    3. 포드를 설치한 다음 Xcode에서 .xcworkspace 파일을 엽니다.

      pod install
      open YOUR_APP.xcworkspace
    4. Firebase C++ SDK의 다음 프레임워크를 프로젝트에 추가합니다.

      • xcframeworks/firebase.xcframework
      • xcframeworks/firebase_gma.xcframework

준비가 완료되었습니다! C++ 앱이 Google 모바일 광고 C++ SDK를 사용하도록 구성되어 있습니다.

4단계: Google 모바일 광고 SDK 초기화

광고를 로드하기 전에 firebase::gma::Initialize() 를 호출하여 모바일 광고 SDK를 초기화하세요.

이 호출은 초기화가 완료되면(또는 30초 제한 시간 후에) 완료되는 firebase::Future 를 반환합니다. 이 메서드는 가능한 한 빨리, 이상적으로는 앱 시작 시점에 한 번만 호출합니다.

다음은 Initialize() 를 호출하는 방법의 예입니다.

기계적 인조 인간

// Initialize the Google Mobile Ads library
firebase::InitResult result;
Future<AdapterInitializationStatus> future =
  firebase::gma::Initialize(jni_env, j_activity, &result);

if (result != kInitResultSuccess) {
  // Initialization immediately failed, most likely due to a missing dependency.
  // Check the device logs for more information.
  return;
}

// Monitor the status of the future.
// See "Use a Future to monitor the completion status of a method call" below.
if (future.status() == firebase::kFutureStatusComplete &&
    future.error() == firebase::gma::kAdErrorCodeNone) {
  // Initialization completed.
} else {
  // Initialization on-going, or an error has occurred.
}

iOS

// Initialize the Google Mobile Ads library.
firebase::InitResult result;
Future<AdapterInitializationStatus> future =
  firebase::gma::Initialize(&result);

if (result != kInitResultSuccess) {
  // Initialization immediately failed, most likely due to a missing dependency.
  // Check the device logs for more information.
  return;
}

// Monitor the status of the future.
// See "Use a Future to monitor the completion status of a method call" below.
if (future.status() == firebase::kFutureStatusComplete &&
    future.error() == firebase::gma::kAdErrorCodeNone) {
  // Initialization completed.
} else {
  // Initialization on-going, or an error has occurred.
}

Future 를 사용하여 메서드 호출의 완료 상태 모니터링

Future 는 비동기 메서드 호출의 완료 상태를 확인하는 방법을 제공합니다.

예를 들어 앱이 firebase::gma::Initialize() 를 호출하면 새 firebase firebase::Future 가 생성되어 반환됩니다. 그러면 앱에서 Futurestatus() 를 폴링하여 초기화가 완료된 시점을 확인할 수 있습니다. 완료되면 앱에서 result() 를 호출하여 결과 AdapterInitializationStatus 를 얻을 수 있습니다.

Future 를 반환하는 메서드에는 앱이 지정된 작업에 대한 가장 최근의 Future 를 검색하는 데 사용할 수 있는 해당 "마지막 결과" 메서드가 있습니다. 예를 들어 firebase::gma::Initialize() 에는 firebase::gma::InitializeLastResult() ::gma::InitializeLastResult() 라는 해당 메서드가 있습니다. 이 메서드는 앱이 firebase::gma::Initialize() 에 대한 마지막 호출의 상태를 확인하는 데 사용할 수 있는 Future 를 반환합니다. firebase::gma::Initialize() .

Future 상태가 완료이고 오류 코드가 firebase::gma::kAdErrorCodeNone 이면 작업이 성공적으로 완료된 것입니다.

Future 가 완료될 때 호출될 콜백을 등록할 수도 있습니다. 경우에 따라 콜백이 다른 스레드에서 실행되므로 코드가 스레드로부터 안전한지 확인하십시오. 이 코드 조각은 콜백에 대한 함수 포인터를 사용합니다.

// Registers the OnCompletion callback. user_data is a pointer that is passed verbatim
// to the callback as a void*. This allows you to pass any custom data to the callback
// handler. In this case, the app has no data, so you must pass nullptr.
firebase::gma::InitializeLastResult().OnCompletion(OnCompletionCallback,
  /*user_data=*/nullptr);

// The OnCompletion callback function.
static void OnCompletionCallback(
  const firebase::Future<AdapterInitializationStatus>& future, void* user_data) {
  // Called when the Future is completed for the last call to firebase::gma::Initialize().
  // If the error code is firebase::gma::kAdErrorCodeNone,
  // then the SDK has been successfully initialized.
  if (future.error() == firebase::gma::kAdErrorCodeNone) {
    // success!
  } else {
    // failure.
  }
}

5단계: 앱에 구현할 광고 형식 선택

AdMob은 다양한 광고 형식을 제공하므로 앱의 사용자 환경에 가장 적합한 형식을 선택할 수 있습니다. AdMob 문서에서 자세한 구현 지침을 보려면 광고 형식 버튼을 클릭하세요.

기기 화면의 상단 또는 하단에 표시되는 직사각형 광고

배너 광고는 사용자가 앱과 상호작용하는 동안 화면에 유지되며 일정 시간이 지나면 자동으로 새로고침될 수 있습니다. 모바일 광고를 처음 접하는 경우 시작하기에 좋습니다.

배너 광고 구현

전면 광고

사용자가 닫을 때까지 앱의 인터페이스를 덮는 전체 화면 광고

전면 광고는 게임 레벨 사이 또는 작업 완료 직후와 같이 앱 실행 흐름에서 자연스럽게 일시 중지될 때 가장 잘 사용됩니다.

전면 광고 구현

보상

짧은 동영상을 시청하고 플레이어블 광고 및 설문조사와 상호작용하는 사용자에게 보상하는 광고

보상형(또는 "보상 기반") 광고는 무료 플레이 사용자로부터 수익을 창출하는 데 도움이 될 수 있습니다.

보상형 광고 구현

기타 관심 주제

사용자 측정항목 및 분석 데이터 보기

초기화 후 모바일 광고 SDK는 앱의 분석 이벤트사용자 속성 로깅을 자동으로 시작합니다. 앱에 코드를 추가하거나 광고를 구현하지 않고도 이 데이터를 볼 수 있습니다. 이 분석 데이터를 볼 수 있는 곳은 다음과 같습니다.

ARPUARPPU 메트릭을 더 잘 나타내기 위해 ecommerce_purchase 라는 분석 사용자 정의 이벤트의 데이터를 이러한 메트릭에 대한 수익 계산에 포함할 수 있습니다( 방법 알아보기 ).

(선택사항) Google 애널리틱스 및 Firebase의 더 많은 기능 사용

더 많은 기회와 기능을 활용하여 앱 수익 창출 및 사용자 참여 개선:

  • Google 애널리틱스용 Firebase SDK 추가 및 사용

  • 앱에서 다른 Firebase 제품 사용

    Google 애널리틱스용 Firebase SDK를 추가한 후 다른 Firebase 제품을 사용하여 앱에서 광고를 최적화하세요.

    • 원격 구성 을 사용하면 무제한 일일 활성 사용자를 위해 무료로 앱 업데이트를 게시하지 않고도 앱의 동작과 모양을 변경할 수 있습니다.

    • A/B 테스팅 을 사용하면 앱의 UI, 기능 또는 참여 캠페인에 대한 변경 사항을 테스트하여 변경 사항을 광범위하게 적용하기 전에 주요 측정항목(예: 수익 및 유지율)에 영향을 미치는지 확인할 수 있습니다.

시작하려면 AdMob 앱에서 Google 애널리틱스 및 Firebase 사용 가이드를 참조하세요.