배너 광고는 기기 화면의 상단이나 하단에서 앱의 레이아웃 안에 게재됩니다. 배너 광고는 사용자가 앱과 상호작용하는 동안 화면에 표시되며 일정 시간이 지나면 자동으로 새로고침될 수 있습니다. 모바일 광고를 처음 시작하는 경우 배너 광고를 이용하는 것이 좋습니다. 우수사례
기본 요건
- 시작하기를 완료합니다.
- (Android만 해당) JNI
jobject
참조를 사용하는 데 익숙함 (Android JNI 도움말 참고).
항상 테스트 광고로 테스트
앱을 빌드하고 테스트할 때는 운영 중인 실제 광고 대신 테스트 광고를 사용하세요. 이렇게 하지 않으면 계정이 정지될 수 있습니다.
테스트 광고를 로드하는 가장 쉬운 방법은 기기 플랫폼에 따라 달라지는 배너용 전용 테스트 광고 단위 ID를 사용하는 것입니다.
- Android:
ca-app-pub-3940256099942544/6300978111
- iOS:
ca-app-pub-3940256099942544/2934735716
이러한 광고 단위 ID는 모든 요청에 대해 테스트 광고를 반환하도록 특별히 구성되었으며, 코딩, 테스트, 디버깅 중에 앱에서 자유롭게 사용할 수 있습니다. 앱을 게시하기 전에 이 ID를 자체 광고 단위 ID로 바꿔야 합니다.
모바일 광고 SDK의 테스트 광고가 작동하는 방식을 자세히 알아보려면 테스트 광고를 참고하세요.
구현
AdView
구성
배너 광고는 AdView
객체에 표시되므로, 배너 광고를 통합하려면 먼저 AdView
를 만들고 배치해야 합니다.
앱의 C++ 코드에 다음 헤더를 추가합니다.
#include "firebase/gma/ad_view.h"
AdView
객체를 선언하고 인스턴스화합니다.firebase::gma::AdView* ad_view; ad_view = new firebase::gma::AdView();
AdSize
를 만들고AdParent
상위 뷰를 사용하여 광고 뷰를 초기화합니다. 상위 뷰는 AndroidActivity
에 관한 JNIjobject
참조 또는AdParent
유형으로 변환된 iOSUIView
에 관한 포인터입니다.// 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<firebase::gma::AdParent>(my_ad_parent); firebase::Future
result = ad_view->Initialize(ad_parent, kBannerAdUnit, firebase::gma::AdSize::kBanner); 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. }
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의 예제
- GitHub에서 예시 빠른 시작 앱의 소스 코드를 확인하세요.