배너 광고

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

기본 요건

항상 테스트 광고로 테스트

앱을 빌드하고 테스트할 때는 운영 중인 실제 광고 대신 테스트 광고를 사용하세요. 이렇게 하지 않으면 계정이 정지될 수 있습니다.

테스트 광고를 로드하는 가장 쉬운 방법은 기기 플랫폼에 따라 달라지는 배너용 전용 테스트 광고 단위 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 유형으로 변환된 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가 초기화된 후 언제든지 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는 광고 뷰의 상태 변경에 대한 알림을 받기 위해 확장하고 AdView::SetListener()에 전달할 수 있는 AdListener 클래스를 제공합니다.

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
468x60 IAB 전체 크기 배너 태블릿 kFullBanner
728x90 IAB 리더보드 태블릿 kLeaderboard
제공된 너비x조정 가능한 높이 적응형 배너 휴대전화 및 태블릿 해당 사항 없음

맞춤 광고 크기

맞춤 배너 크기를 지정하려면 다음과 같이 너비 및 높이 매개변수가 있는 firebase::gma::AdSize 생성자를 사용하여 원하는 크기를 설정하세요.

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

추가 리소스

GitHub의 예제

성공사례