노출이 발생하면 Google 모바일 광고 SDK (베타)가 해당 노출과 연결된 광고 수익 데이터를 제공합니다. 이 데이터를 사용하여 사용자의 평생 가치를 계산하거나 데이터 다운스트림을 다른 관련 시스템으로 전달할 수 있습니다.
이 가이드에서는 Android 앱에서 노출 수준 광고 수익 데이터의 포착을 구현하는 방법을 설명합니다.
기본 요건
- AdMob UI에서 노출 수준 광고 수익 기능을 사용 설정해야 합니다.
- 시작 가이드에 따라 필요한 과정을 완료합니다.
노출 수준 광고 수익을 받으려면 광고 형식이 하나 이상 구현된 상태여야 합니다.
유료 이벤트 핸들러
각 광고 형식에는 onAdPaid
이벤트 콜백이 있습니다.
광고 이벤트의 수명 주기 동안 Google 모바일 광고 SDK (베타)가 노출 이벤트를 모니터링하고 획득한 값으로 핸들러를 호출합니다.
다음 예에서는 보상형 광고의 유료 이벤트를 처리합니다.
Kotlin
ad.adEventCallback =
object : RewardedAdEventCallback {
override fun onAdPaid(adValue: AdValue) {
// Send the impression-level ad revenue information to your
// preferred analytics server directly within this callback.
// Extract the impression-level ad revenue data.
val valueMicros = adValue.valueMicros
val currencyCode = adValue.currencyCode
val precisionType = adValue.precisionType
val loadedAdSourceResponseInfo = ad.getResponseInfo().loadedAdSourceResponseInfo
val adSourceName = loadedAdSourceResponseInfo?.name
val adSourceId = loadedAdSourceResponseInfo?.id
val adSourceInstanceName = loadedAdSourceResponseInfo?.instanceName
val adSourceInstanceId = loadedAdSourceResponseInfo?.instanceId
val extras = ad.getResponseInfo().responseExtras
val mediationGroupName = extras.getString("mediation_group_name")
val mediationABTestName = extras.getString("mediation_ab_test_name")
val mediationABTestVariant = extras.getString("mediation_ab_test_variant")
}
}
자바
ad.setAdEventCallback(
new RewardedAdEventCallback() {
@Override
public void onAdPaid(@NonNull AdValue value) {
// Send the impression-level ad revenue information to your preferred
// analytics server directly within this callback.
// Extract the impression-level ad revenue data.
long valueMicros = value.getValueMicros();
String currencyCode = value.getCurrencyCode();
PrecisionType precisionType = value.getPrecisionType();
AdSourceResponseInfo loadedAdSourceResponseInfo =
ad.getResponseInfo().getLoadedAdSourceResponseInfo();
String adSourceName = loadedAdSourceResponseInfo.getName();
String adSourceId = loadedAdSourceResponseInfo.getId();
String adSourceInstanceName = loadedAdSourceResponseInfo.getInstanceName();
String adSourceInstanceId = loadedAdSourceResponseInfo.getInstanceId();
Bundle extras = ad.getResponseInfo().getResponseExtras();
String mediationGroupName = extras.getString("mediation_group_name");
String mediationABTestName = extras.getString("mediation_ab_test_name");
String mediationABTestVariant = extras.getString("mediation_ab_test_variant");
}
});
맞춤 이벤트 광고 소스 이름 식별
맞춤 이벤트 광고 소스의 경우 AdSourceResponseInfo.name
속성이 광고 소스 이름 Custom event
를 반환합니다. 맞춤 이벤트를 여러 개 사용하는 경우 광고 소스 이름은 여러 맞춤 이벤트를 구분할 만큼 세분화되지 않습니다. 특정 맞춤 이벤트를 찾으려면 다음을 실행하세요.
AdSourceResponseInfo.name
속성을 가져옵니다.- 고유한 광고 소스 이름을 설정합니다.
다음 예에서는 맞춤 이벤트의 고유한 광고 소스 이름을 설정합니다.
Kotlin
private fun getUniqueAdSourceName(loadedAdapterResponseInfo: AdSourceResponseInfo): String {
var adSourceName = loadedAdapterResponseInfo.name
if (adSourceName == "Custom Event") {
if (
loadedAdapterResponseInfo.adapterClassName ==
"com.google.ads.mediation.sample.customevent.SampleCustomEvent"
) {
adSourceName = "Sample Ad Network (Custom Event)"
}
}
return adSourceName
}
자바
private String getUniqueAdSourceName(@NonNull AdSourceResponseInfo loadedAdapterResponseInfo) {
String adSourceName = loadedAdapterResponseInfo.getName();
if (adSourceName.equals("Custom Event")) {
if (loadedAdapterResponseInfo
.getAdapterClassName()
.equals("com.google.ads.mediation.sample.customevent.SampleCustomEvent")) {
adSourceName = "Sample Ad Network (Custom Event)";
}
}
return adSourceName;
}
낙찰된 광고 소스에 대한 자세한 내용은 광고 응답에 대한 정보 가져오기를 참고하세요.
앱 기여 분석 파트너 (AAP) 통합
광고 수익 데이터를 분석 플랫폼으로 전달하는 방법에 대해 자세히 알아보려면 파트너 가이드를 읽어보세요.
파트너 SDK |
---|
Adjust |
AppsFlyer |
Singular |
Tenjin |
구현 권장사항
- 광고 객체를 만들거나 광고 객체에 액세스할 수 있게 되면 즉시 리스너를 설정하세요. 광고 게재 전에 설정해야 합니다. 이렇게 하면 유료 이벤트 콜백이 누락되지 않습니다.
- 유료 이벤트 콜백이 호출되는 시점에 노출 수준 광고 수익 정보를 원하는 분석 서버로 즉시 전송하세요. 이렇게 하면 의도치 않은 콜백이 중단되지 않고 데이터 불일치를 방지할 수 있습니다.
AdValue
AdValue
는 광고에서 획득하는 금전적 가치를 나타내는 클래스입니다(예: 값의 통화 코드, 아래와 같이 인코딩된 정밀도 유형).
PrecisionType | 설명 |
---|---|
UNKNOWN |
광고 값을 알 수 없습니다. LTV 핑백이 사용 설정되었지만 사용 가능한 데이터가 충분하지 않은 경우 반환됩니다. |
ESTIMATED |
합산 데이터에서 예상되는 광고 값입니다. |
PUBLISHER_PROVIDED |
미디에이션 그룹의 수동 CPM처럼 게시자가 제공한 광고 값입니다. |
PRECISE |
광고에 지불된 정확한 값입니다. |
AdMob 미디에이션의 경우, AdMob에서는 최적화된 광고 소스에 대해 ESTIMATED
값을 제공하려고 합니다.
최적화되지 않은 광고 소스의 경우 또는 의미 있는 추정치를 보고할 만큼 충분한 합산 데이터가 없는 경우 PUBLISHER_PROVIDED
값이 반환됩니다.
입찰 광고 소스의 노출 테스트
테스트 요청을 통해 입찰 광고 소스에 노출 수준 광고 수익 이벤트가 발생하면 다음 값만 수신됩니다.
UNKNOWN
: 정밀도 유형을 나타냅니다.
0
: 광고 값을 나타냅니다.
이전에는 정밀도 유형이 UNKNOWN
이 아닌 값으로 표시되고 광고 값이 0
보다 큰 값으로 표시되었을 수 있습니다.
테스트 광고 요청 전송에 관한 자세한 내용은 테스트 기기 사용 설정을 참고하세요.