시작하기


본 가이드는 할 수 있습니다. 앱에 Firebase를 포함할 계획이거나 자세한 내용은 AdMob 및 이 가이드를 대신 읽어보세요.

Google 모바일 광고 C++ SDK를 앱에 통합하려면 광고 게재 및 수익 창출 SDK를 통합한 후에는 전면 광고 또는 보상형 광고와 같은 광고 형식을 선택하고 구현할 수 있습니다

Google 모바일 광고 C++ SDK는 Google 모바일 광고 iOS 및 Android SDK를 래핑합니다. 해당 플랫폼에서만 사용할 수 있습니다. Google 모바일 광고 C++ SDK를 사용하면 Firebase C++ 구조체 사용으로 비동기 작업을 지원하므로 firebase::gma 네임스페이스에 위치합니다.

이 가이드를 처음 보는 경우 Google 모바일 광고 C++ 테스트 앱을 엽니다.

기본 요건

Android

  • Android 스튜디오 3.2 이상 사용
  • 앱의 빌드 파일이 다음 값을 사용하는지 확인합니다. <ph type="x-smartling-placeholder">
      </ph>
    • minSdkVersion 16 이상
    • compileSdkVersion 28 이상

iOS

  • Xcode 13 이상 사용
  • iOS 10.0 이상 타겟팅

AdMob 계정에서 앱 설정

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

  1. 로그인 또는 가입 가입해야 합니다.

  2. 다음에 앱 등록 AdMob을 참고하세요. 이 단계를 통해 AdMob 고유한 AdMob 앱 ID가 있는 앱 이 가이드의 뒷부분에서 필요합니다

Google 모바일 광고 C++ SDK 설치

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

Firebase C++ SDK는 플랫폼별로 제공되지 않지만 플랫폼별 라이브러리 구성을 생성할 수 있습니다.

Android

CMake를 사용하는 것이 좋지만 ndk-build에 관한 안내는 일반 Firebase C++ SDK 시작하기 가이드 libfirebase_app.alibfirebase_gma.a를 앱에 연결합니다.

  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. 앱을 동기화하여 모든 종속 항목에 필요한 버전이 있는지 확인합니다.

iOS

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

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

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

    1. Podfile이 없으면 만듭니다.

      cd APP_DIRECTORY
      pod init
      
    2. Podfile에 Google 모바일 광고 C++ SDK의 포드를 추가합니다. Google User Messaging Platform SDK 및 최소 Firebase core SDK (GMA C++ SDK에 필요):

      pod 'Firebase/CoreOnly'
      pod 'Google-Mobile-Ads-SDK'
      pod 'GoogleUserMessagingPlatform'
      
    3. 포드를 설치하고 Xcode에서 .xcworkspace 파일을 엽니다.

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

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

완료되었습니다. C++ 앱이 Google 모바일 광고 C++ SDK를 사용하도록 구성된 경우 다른 Firebase 서비스 없이 사용할 수 있습니다

앱의 AdMob 앱 ID 구성

Android

모바일 광고 SDK에 설명된 대로 앱 구성의 3단계 따르기 Android 가이드 그런 다음 이 페이지로 돌아옵니다

iOS

모바일 광고 SDK에 설명된 대로 Info.plist 업데이트 단계를 따릅니다. iOS 가이드를 완료한 다음 이 페이지에 추가합니다.

Google 모바일 광고 SDK 초기화

광고를 로드하기 전에 다음과 같이 앱에서 Google 모바일 광고 C++ SDK를 초기화하도록 합니다. firebase::gma::Initialize()를 호출하여 SDK를 초기화하고 초기화가 완료된 후 (또는 30초 후) firebase::Future 시간 초과). 이 작업은 앱 실행 시 한 번만 처리하면 됩니다.

Google 모바일 광고 C++ SDK 또는 미디에이션 파트너 SDK에서 광고를 미리 로드할 수 있습니다. Initialize() 호출 시 유럽 경제 지역 (EEA), 요청별 플래그 (예: tag_for_child_directed_treatment 또는 tag_for_under_age_of_consent) 또는 그렇지 않으면 광고를 로드하기 전에 조치를 취하려면 Google 모바일 초기화 전 firebase::gma::SetRequestConfiguration() 광고 C++ SDK 자세한 내용은 타겟팅 가이드를 참조하세요.

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

Android

// 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::Future가 생성되고 반환됩니다. 그러면 앱이 초기화가 완료된 시점을 결정하기 위한 Futurestatus()입니다. 완료되면 앱에서 result()를 호출하여 결과를 가져올 수 있습니다. AdapterInitializationStatus입니다.

Future를 반환하는 메서드에는 상응하는 '최종 결과'가 있음 메서드를 앱은 특정 작업의 가장 최근 Future를 가져오는 데 사용할 수 있습니다. 대상 예를 들어 firebase::gma::Initialize()에는 상응하는 메서드라는 firebase::gma::InitializeLastResult() - 앱이 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.
  }
}

광고 형식 선택

이제 Google 모바일 광고 C++ SDK를 가져왔으므로 있습니다. AdMob에서는 다양한 광고 형식이 제공되므로 한 가지 형식을 선택할 수 있습니다. 최적의 방법을 찾을 수 있습니다.

기기 화면의 상단이나 하단에 표시되는 직사각형 광고입니다. 배너 광고는 사용자가 앱과 상호작용하는 동안 화면에 계속 표시되며 일정 시간이 지나면 자동으로 새로고침됩니다 모바일이 처음인 경우 시작하기에 좋은 출발점입니다

배너 광고 구현

전면 광고

사용자가 닫을 때까지 앱의 인터페이스를 완전히 덮는 전체 화면 광고입니다. 다음과 같이 앱 실행 흐름에서 자연스러운 일시중지 시점에 사용하는 것이 좋습니다. 게임 레벨 사이 또는 작업 완료 직후에 광고를 게재할 수 있습니다.

전면 광고 구현

리워드 제공됨

짧은 동영상을 시청하고 플레이어블 광고와 상호작용한 사용자에게 보상을 제공하는 광고 광고 및 설문조사 무료 플레이 앱 수익 창출에 사용됩니다.

보상형 광고 구현