노출이 발생하면 Google 모바일 광고 SDK에서 해당 노출과 연결된 광고 수익 데이터를 제공합니다. 이 데이터를 사용하여 사용자의 평생 가치를 계산하거나 데이터 다운스트림을 다른 관련 시스템으로 전달할 수 있습니다.
이 가이드에서는 Android 앱에서 노출 수준 광고 수익 데이터 포착을 구현하는 방법을 설명합니다.
기본 요건
- AdMob UI에서 노출 수준 광고 수익 기능을 사용 설정해야 합니다.
- Google 모바일 광고 SDK 21.1.0 이상을 가져옵니다.
- 시작 가이드에 따라 필요한 과정을 완료합니다.
노출 수준 광고 수익을 받으려면 광고 형식이 하나 이상 구현된 상태여야 합니다.
유료 이벤트 핸들러
각 광고 형식에는 OnPaidEventListener
가 있습니다. 광고 이벤트의 수명 주기 동안 Google 모바일 광고 SDK가 노출 이벤트를 모니터링하고 획득한 값으로 핸들러를 호출합니다.
아래 코드는 보상형 광고의 유료 이벤트를 처리하는 방법을 보여줍니다.
Java
import com.google.android.gms.ads.rewarded.RewardedAd;
public class MainActivity extends Activity {
private RewardedAd rewardedAd;
private final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
AdRequest adRequest = new AdRequest.Builder().build();
RewardedAd.load(this, "AD_UNIT_ID",
adRequest, new RewardedAdLoadCallback(){
@Override
public void onAdLoaded(@NonNull RewardedAd ad) {
rewardedAd = ad;
// Set paid event listener
rewardedAd.setOnPaidEventListener(new OnPaidEventListener() {
@Override
public void onPaidEvent(AdValue adValue) {
// TODO: 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 = adValue.getValueMicros();
String currencyCode = adValue.getCurrencyCode();
int precision = adValue.getPrecisionType();
// Get the ad unit ID.
String adUnitId = rewardedAd.getAdUnitId();
AdapterResponseInfo loadedAdapterResponseInfo = rewardedAd.getResponseInfo().
getLoadedAdapterResponseInfo();
String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
String adSourceId = loadedAdapterResponseInfo.getAdSourceId();
String adSourceInstanceName = loadedAdapterResponseInfo.getAdSourceInstanceName();
String adSourceInstanceId = loadedAdapterResponseInfo.getAdSourceInstanceId();
Bundle extras = rewardedAd.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");
}
});
}
});
}
}
Kotlin
import com.google.android.gms.ads.rewarded.RewardedAd
class MainActivity : AppCompatActivity() {
private var rewardedAd: RewardedAd? = null
private final var TAG = "MainActivity"
override fun onCreate(savedInstanceState: Bundle?) {
AdRequest adRequest = new AdRequest.Builder().build()
RewardedAd.load(this, "AD_UNIT_ID",
adRequest, object: RewardedAdLoadCallback() {
override fun onAdLoaded(ad: RewardedAd) {
rewardedAd = ad
// Set paid event listener
rewardedAd.onPaidEventListener = OnPaidEventListener { adValue ->
// TODO: 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 precision = adValue.precisionType
// Get the ad unit ID.
val adUnitId = rewardedAd.adUnitId
val loadedAdapterResponseInfo = rewardedAd.responseInfo.loadedAdapterResponse
val adSourceName = loadedAdapterResponseInfo.adSourceName
val adSourceId = loadedAdapterResponseInfo.adSourceId
val adSourceInstanceName = loadedAdapterResponseInfo.adSourceInstanceName
val adSourceInstanceId = loadedAdapterResponseInfo.adSourceInstanceId
val extras = rewardedAd.responseInfo.responseExtras
val mediationGroupName = extras.getString("mediation_group_name")
val mediationABTestName = extras.getString("mediation_ab_test_name")
val mediationABTestVariant = extras.getString("mediation_ab_test_variant")
}
}
})
}
}
낙찰된 광고 소스에 대한 자세한 내용은 광고 응답에 관한 정보 가져오기를 참고하세요.
앱 기여 분석 파트너 (AAP) 통합
광고 수익 데이터를 분석 플랫폼으로 전달하는 방법에 대해 자세히 알아보려면 파트너 가이드를 읽어보세요.
파트너 SDK |
---|
Adjust |
AppsFlyer |
Singular |
Tenjin |
구현 권장사항
- 광고 객체를 만들거나 광고 객체에 액세스할 수 있게 되면 즉시 리스너를 설정하세요. 광고 게재 전에 설정해야 합니다. 이렇게 하면 유료 이벤트 콜백이 누락되지 않습니다.
onPaidEvent()
메서드가 호출되는 시점에 노출 수준 광고 수익 정보를 원하는 분석 서버로 즉시 전송하세요. 이렇게 하면 의도치 않은 콜백 누락이 발생하지 않으며, 데이터 불일치를 방지할 수 있습니다.
AdValue
AdValue
는 광고에서 획득한 금전적 가치를 나타내는 클래스입니다(예: 값의 통화 코드, 아래와 같이 인코딩된 정밀도 유형).
PrecisionType | 설명 |
---|---|
UNKNOWN |
알 수 없는 광고 값입니다. LTV 핑백이 사용 설정되었지만 사용 가능한 데이터가 충분하지 않은 경우 반환됩니다. |
ESTIMATED |
합산 데이터에서 추정된 광고 값입니다. |
PUBLISHER_PROVIDED |
미디에이션 그룹의 수동 CPM처럼 게시자가 제공한 광고 값입니다. |
PRECISE |
광고에 지불된 정확한 값입니다. |
미디에이션의 경우 AdMob 는가 최적화된 광고 소스에 대해 ESTIMATED
값을 제공하려고 합니다.
최적화되지 않은 광고 소스의 경우 또는 의미 있는 추정치를 보고할 만큼 충분한 집계 데이터가 없는 경우 PUBLISHER_PROVIDED
값이 반환됩니다.