배너 광고

배너 광고는 기기 화면의 상단이나 하단에서 앱의 레이아웃 안에 게재됩니다. 사용자가 앱과 상호작용하는 동안 화면에 계속 표시되며 일정 시간이 지나면 자동으로 새로고침할 수 있습니다. 모바일 광고를 처음 시작하는 경우 이 형식부터 이용해 보시기 바랍니다. 우수사례

기본 요건

항상 테스트 광고로 테스트

앱을 빌드하고 테스트할 때는 실제 프로덕션 광고가 아닌 테스트 광고를 사용해야 합니다. 이렇게 하지 않으면 계정이 정지될 수 있습니다.

테스트 광고를 로드하는 가장 쉬운 방법은 배너 광고 테스트 전용 광고 단위 ID를 사용하는 것입니다. 기기 ID는 기기 플랫폼마다 다릅니다.

  • Android: ca-app-pub-3940256099942544/6300978111
  • iOS: ca-app-pub-3940256099942544/2934735716

이러한 광고 단위 ID는 모든 요청에 대해 테스트 광고를 반환하도록 특별히 구성되었으며, 코딩, 테스트 및 디버깅 중에 앱에서 자유롭게 사용할 수 있습니다. 앱을 게시하기 전에 이 ID를 자체 광고 단위 ID로 바꿔야 합니다.

모바일 광고 SDK의 테스트 광고가 작동하는 방식을 자세히 알아보려면 테스트 광고를 참고하세요.

구현

AdView 구성

배너 광고는 AdView 객체에 표시되므로 배너 광고를 통합하는 첫 번째 단계는 AdView를 만들고 배치하는 것입니다.

  1. 앱의 C++ 코드에 다음 헤더를 추가합니다.

     #include "firebase/gma/ad_view.h"
    
  2. AdView 객체를 선언하고 인스턴스화합니다.

      firebase::gma::AdView* ad_view;
      ad_view = new firebase::gma::AdView();
    
  3. AdSize를 만들고 AdParent 상위 뷰를 사용하여 광고 보기를 초기화합니다. 상위 뷰는 Android Activity를 가리키는 JNI jobject 참조이거나 AdParent 유형으로 Cast 변환되는 iOS UIView를 가리키는 포인터입니다.

     // my_ad_parent is a jobject reference
     // to an Android Activity or a pointer to an iOS UIView.
     firebase::gma::AdParent ad_parent = static_cast(my_ad_parent);
     firebase::Future result =
       ad_view->Initialize(ad_parent, kBannerAdUnit, firebase::gma::AdSize::kBanner);
    
  4. Future를 변수로 유지하는 대신 AdView 객체에서 InitializeLastResult()를 호출하여 초기화 작업의 상태를 주기적으로 확인할 수 있습니다. 이렇게 하면 전역 게임 루프에서 초기화 프로세스를 추적하는 데 도움이 될 수 있습니다.

      // Monitor the status of the future in your game loop:
      firebase::Future<void> result = ad_view->InitializeLastResult();
      if (result.status() == firebase::kFutureStatusComplete) {
        // Initialization completed.
        if(future.error() == firebase::gma::kAdErrorCodeNone) {
          // Initialization successful.
        } else {
          // An error has occurred.
        }
      } else {
        // Initialization on-going.
      }
    
  5. firebase::Future 작업에 관한 자세한 내용은 Future를 사용하여 메서드 호출의 완료 상태 모니터링을 참고하세요.

광고 위치 설정

다음과 같이 AdView를 초기화한 후 언제든지 설정할 수 있습니다.

firebase::Future<void> result = ad_view->SetPosition(firebase::gma::AdView::kPositionTop);

광고 로드

AdView가 초기화되면 광고를 로드할 수 있습니다.

firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result = ad_view->LoadAd(my_ad_request);

AdRequest 객체는 단일 광고 요청을 나타내며 타겟팅 등의 정보를 위한 속성을 포함합니다.

광고 표시

마지막으로 Show()를 호출하여 화면에 광고를 표시합니다. 이 메서드는 광고가 초기화된 후 언제든지 호출될 수 있습니다.

firebase::Future<void> result = ad_view->Show();

광고 이벤트

Google 모바일 광고 C++ SDK에서 제공하는 AdListener 클래스를 확장하여 AdView::SetListener()에 전달하면 광고 보기의 상태 변경에 대한 알림을 받을 수 있습니다.

AdListener의 메서드 확장은 선택사항이므로 원하는 메서드만 구현하면 됩니다. 다음은 모든 AdListener 메서드 클래스를 확장하는 클래스 구현의 예입니다.

class ExampleAdListener
    : public firebase::gma::AdListener {
 public:
  ExampleAdListener() {}
  void OnAdClicked() override {
    // This method is invoked when the user clicks the ad.
  }

  void OnAdClosed() override {
   // This method is invoked when the user closes the ad.
  }

  void OnAdImpression() override {
    // This method is invoked when an impression is recorded for an ad.
  }

  void OnAdOpened() override {
    // This method is invoked when an ad opens an overlay that covers the screen.
  }
};

ExampleAdListener* ad_listener = new ExampleAdListener();
ad_view->SetAdListener(ad_listener);

아래 표에는 표준 배너 크기가 나와 있습니다.

크기(포인트)(너비x높이) 설명 가용성 firebase::gma::AdSize 상수
320x50 배너 휴대전화 및 태블릿 kBanner
320x100 대형 배너 휴대전화 및 태블릿 kLargeBanner
300x250 IAB 중간 직사각형 휴대전화 및 태블릿 kMediumRectangle
468 x 60 IAB 원본 크기 배너 태블릿 kFullBanner
728x90 IAB 리더보드 태블릿 kLeaderboard
제공된 너비x적응형 높이 적응형 배너 휴대전화 및 태블릿 해당 없음

맞춤 광고 크기

맞춤 배너 크기를 지정하려면 다음과 같이 너비와 높이 매개변수가 포함된 firebase::gma::AdSize 생성자를 사용하여 원하는 크기를 설정합니다.

firebase::gma::AdSize ad_size(/*width=*/320, /*height=*/50);

추가 리소스

GitHub의 예제

성공사례