Когда происходит показ, Google Mobile Ads SDK (Legacy) предоставляет данные о доходе от рекламы, связанном с этим показом. Вы можете использовать эти данные, чтобы рассчитать пожизненную ценность пользователя или передать их в другие системы.
Это руководство поможет вам настроить сбор данных о доходе от рекламы на уровне показа в приложении для Android.
Требования
- Убедитесь, что вы включили функцию "Доход от рекламы на уровне показа" в интерфейсе AdMob.
- Импортируйте Google Mobile Ads SDK (Legacy) версии 21.1.0 или более поздней.
- Настройте Google Mobile Ads SDK (Legacy).
Чтобы получать доход от рекламы на уровне показа, необходимо реализовать хотя бы один формат объявлений:
Обработчик платных событий
У каждого формата объявлений есть свой
OnPaidEventListener.
В течение жизненного цикла события объявления Google Mobile Ads SDK (Legacy) отслеживает события показа и вызывает обработчик с полученным значением.
В примере ниже показано, как обрабатывать платные события для объявления с вознаграждением.
Java
private void setOnPaidEventListener(RewardedAd ad) {
ad.setOnPaidEventListener(
new OnPaidEventListener() {
@Override
public void onPaidEvent(@NonNull AdValue adValue) {
// 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 = ad.getAdUnitId();
// Extract ad response information.
AdapterResponseInfo loadedAdapterResponseInfo =
ad.getResponseInfo().getLoadedAdapterResponseInfo();
if (loadedAdapterResponseInfo != null) {
String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
String adSourceId = loadedAdapterResponseInfo.getAdSourceId();
String adSourceInstanceName = loadedAdapterResponseInfo.getAdSourceInstanceName();
String adSourceInstanceId = loadedAdapterResponseInfo.getAdSourceInstanceId();
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");
}
}
});
}Kotlin
private fun setOnPaidEventListener(ad: RewardedAd) {
ad.onPaidEventListener = OnPaidEventListener { adValue ->
// 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 = ad.adUnitId
// Extract ad response information.
val loadedAdapterResponseInfo = ad.responseInfo.loadedAdapterResponseInfo
val adSourceName = loadedAdapterResponseInfo?.adSourceName
val adSourceId = loadedAdapterResponseInfo?.adSourceId
val adSourceInstanceName = loadedAdapterResponseInfo?.adSourceInstanceName
val adSourceInstanceId = loadedAdapterResponseInfo?.adSourceInstanceId
val extras = ad.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")
}
}Как определить название источника объявлений для специального события
Для источников объявлений со специальными событиями метод getAdSourceName() возвращает название источника объявлений Custom event. Если вы используете несколько специальных событий, название источника объявлений не позволяет различать их. Чтобы найти определенное специальное событие, выполните следующие действия:
- Вызовите метод
getAdSourceName(). - Укажите уникальное название источника объявлений.
В примере ниже задается уникальное название источника объявлений для специального события:
Java
private String getUniqueAdSourceName(@NonNull AdapterResponseInfo loadedAdapterResponseInfo) {
String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
if (adSourceName.equals("Custom Event")) {
if (loadedAdapterResponseInfo
.getAdapterClassName()
.equals("com.google.ads.mediation.sample.customevent.SampleCustomEvent")) {
adSourceName = "Sample Ad Network (Custom Event)";
}
}
return adSourceName;
}
Kotlin
private fun getUniqueAdSourceName(loadedAdapterResponseInfo: AdapterResponseInfo): String {
var adSourceName = loadedAdapterResponseInfo.adSourceName
if (adSourceName == "Custom Event") {
if (
loadedAdapterResponseInfo.adapterClassName ==
"com.google.ads.mediation.sample.customevent.SampleCustomEvent"
) {
adSourceName = "Sample Ad Network (Custom Event)"
}
}
return adSourceName
}
Подробнее о том, как получить информацию об ответе на запрос объявления…
Интеграция с партнерами по атрибуции конверсий в приложениях
Подробные инструкции по передаче данных о доходах от рекламы на аналитические платформы приведены в руководствах партнеров:
| SDK партнера |
|---|
| Adjust |
| AppsFlyer |
| Singular |
| Tenjin |
Рекомендации по реализации
- Настройте прослушиватель сразу после создания или получения доступа к объекту объявления и обязательно до показа объявления. Это гарантирует, что вы не пропустите ни одного обратного вызова платного события.
- Отправлять информацию о доходе от рекламы на уровне показа на выбранный вами сервер аналитики сразу же после вызова обратного вызова платного события. Это позволит избежать случайной потери обратных вызовов и расхождений в данных.
AdValue
AdValue – это класс, который представляет денежную ценность, полученную за показ объявления, включая код валюты и тип точности, закодированный следующим образом:
| PrecisionType | Описание |
|---|---|
UNKNOWN |
Неизвестное значение объявления. Возвращается, если пингбек пожизненной ценности включен, но данных недостаточно. |
ESTIMATED |
Доход от объявления рассчитывается на основе агрегированных данных. |
PUBLISHER_PROVIDED |
Стоимость объявления, указанная издателем, например цена за тысячу показов, заданная вручную в группе медиации. |
PRECISE |
Точная стоимость показа объявления. |
В случае с медиацией AdMob система пытается предоставить значение ESTIMATED для оптимизированных источников объявлений.
Для неоптимизированных источников объявлений или в случаях, когда агрегированных данных недостаточно для получения значимой оценки, возвращается значение PUBLISHER_PROVIDED.
Тестовые показы из источников объявлений с назначением ставок
После того как в источнике объявлений с назначением ставок произойдет событие, связанное с доходом от рекламы на уровне показа, вы получите только следующие значения:
UNKNOWN– тип точности.
0– элемент, указывающий на ценность объявления;
UNKNOWN, и ценность объявления, превышающую 0.
Подробнее о том, как отправить тестовый запрос объявления…