Ad Exchange 직접 액세스 설정

Google 모바일 광고 SDK를 사용하면 Ad Exchange 속성을 통해 앱에서 수익을 창출할 수 있습니다. 이 가이드에는 Ad Exchange에서 지원하는 모든 광고 형식에 맞게 앱을 구성하는 방법이 나와 있습니다.

기본 요건

Ad Exchange에 액세스할 수 있도록 앱 구성

android:name="com.google.android.gms.ads.APPLICATION_ID"가 포함된 <meta-data> 태그를 통해 Ad Manager 앱 ID (Ad Manager UI에서 식별됨)를 앱의 AndroidManifest.xml 파일에 추가합니다. android:value의 경우 자체 Ad Manager 앱 ID를 따옴표로 묶어 삽입합니다.

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

또한 위와 같이 <meta-data> 태그를 추가하지 않으면 다음과 같이 메시지가 비정상 종료됩니다.

Missing application ID.

그런 다음 Google 모바일 광고 SDK를 초기화하고 표시할 광고 형식을 선택합니다. 이 가이드의 나머지 부분에서는 배너 형식을 구현하여 Ad Exchange에서 광고를 로드하는 방법을 보여줍니다. Google 모바일 광고 SDK에서 지원하는 모든 광고 형식에도 동일한 단계가 적용됩니다.

Ad Exchange에서 광고 로드

앱에서 광고 단위 ID 대신 끝에 슬래시가 있는 Ad Exchange 웹 속성 코드를 사용할 수 있습니다.

예를 들어 다음과 같이 Activity의 레이아웃에 AdManagerAdView를 배치하여 배너 광고를 로드합니다.

# main_activity.xml
...
  <com.google.android.gms.ads.admanager.AdManagerAdView
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      android:id="@+id/adManagerAdView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_alignParentBottom="true"
      ads:adSize="BANNER"
      ads:adUnitId="ca-mb-app-pub-5629679302779023/">
  </com.google.android.gms.ads.admanager.AdManagerAdView>

위와 같이 Ad Exchange 웹 속성 코드에 후행 슬래시를 추가하지 않으면 다음과 같은 메시지와 함께 광고 요청 오류가 발생합니다.

Invalid Request. Cannot determine request type. Is your ad unit id correct?

Ad Exchange 웹 서비스 코드를 광고 단위로 변환할 수도 있습니다. 그런 다음 Ad Manager UI를 사용하여 Ad Exchange 태그를 생성하고 앱에 복사할 수 있습니다. 생성된 태그에는 Ad Exchange 웹 속성 코드가 있어야 하며 그 뒤에 슬래시 없이 하위 광고 단위 ID가 있어야 합니다. 예를 들면 다음과 같습니다. ca-mb-app-pub-5629679302779023/banner

또는 AdManagerAdView를 프로그래매틱 방식으로 만들 수 있습니다.

Java

AdManagerAdView adView = new AdManagerAdView(this);

adView.setAdSizes(AdSize.BANNER);
adView.setAdUnitId("ca-mb-app-pub-5629679302779023/");

// TODO: Add adView to your view hierarchy.

Kotlin

val adView = AdManagerAdView(this)

adView.adSizes = AdSize.BANNER
adView.adUnitId = "ca-mb-app-pub-5629679302779023/"

// TODO: Add adView to your view hierarchy.

AdManagerAdView가 지정되면 AdManagerAdView 클래스에서 loadAd() 메서드를 호출하고 광고 이벤트를 사용하여 광고의 동작을 맞춤설정할 수 있습니다.

이제 완료됐습니다. 이제 앱에서 Ad Exchange의 배너 광고를 로드하고 표시할 수 있습니다.

또한 Ad Exchange 웹 속성을 사용하여 Ad Exchange에서 다른 광고 형식을 로드 및 게재할 수 있으며, 다음 중 해당하는 가이드를 따르세요.

(승인된 유럽 게시자만 해당) 최저 가격 추가

'최저 가격' 기능에 대한 요청을 제출할 수 있습니다.

승인되면 pubfpvtf 매개변수를 각각 사용하여 광고 요청에 공개 하한선 또는 비공개 하한선을 포함할 수 있습니다. 다음 코드 예에서 '123'을 마이크로 단위의 가격 하한선과 네트워크의 기본 통화로 바꿉니다. 마이크로가 적용되는 방법의 예: 기본 통화가 USD인 경우 '6000000'을 입력하면 $6.00에 해당합니다.

Java

Bundle extras = new Bundle();
// Public floor parameter.
extras.putString("pubf", "123");
// Private floor parameter.
extras.putString("pvtf", "123");

AdManagerAdRequest request = new AdManagerAdRequest.Builder()
    .addNetworkExtrasBundle(AdMobAdapter.class, extras)
    .build();

Kotlin

val extras = Bundle();
// Public floor parameter.
extras.putString("pubf", "123");
// Private floor parameter.
extras.putString("pvtf", "123");

val request = AdManagerAdRequest.Builder()
    .addNetworkExtrasBundle(AdMobAdapter::class::java, extras)
    .build();