При показе рекламы Google Mobile Ads SDK предоставляет данные о доходе от рекламы, связанные с этим показом. Вы можете использовать эти данные для расчета общей ценности пользователя или передать их в другие соответствующие системы.
Это руководство призвано помочь вам реализовать сбор данных о доходах от рекламы на уровне показов в вашем приложении для Android.
Предпосылки
- Убедитесь, что вы включили функцию расчета дохода от рекламы на уровне показов в пользовательском интерфейсе AdMob.
- Импортируйте Google Mobile Ads SDK 21.1.0 или выше.
- Заполните руководство по началу работы .
Прежде чем вы сможете получать доход от рекламы на уровне показов, вам необходимо реализовать хотя бы один формат рекламы:
Платный обработчик событий
У каждого формата рекламы есть прослушиватель OnPaidEventListener
. В течение жизненного цикла события рекламы Google Mobile Ads SDK отслеживает события показов и вызывает обработчик с полученным значением.
В следующем примере обрабатываются платные события для рекламы с вознаграждением:
Ява
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");
}
}
});
}
Котлин
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()
. - Задайте уникальное название источника рекламы.
В следующем примере задается уникальное имя источника рекламы для пользовательского события:
Ява
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;
}
Котлин
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
}
Дополнительную информацию о выигрышном источнике рекламы см. в разделе Получение информации об отклике на рекламу .
Интеграция с партнерами по атрибуции приложений (AAP)
Полную информацию о передаче данных о доходах от рекламы на аналитические платформы см. в руководстве партнера:
Партнерский SDK |
---|
Регулировать |
AppsFlyer |
Единственное число |
Тенджин |
Лучшие практики внедрения
- Установите прослушиватель сразу после создания объекта рекламы или получения к нему доступа, но обязательно перед показом рекламы. Это гарантирует, что вы не пропустите ни одного платного обратного вызова.
- Отправляйте информацию о доходе от рекламы на уровне показов на ваш предпочтительный аналитический сервер сразу же после вызова платного обратного вызова. Это гарантирует отсутствие случайного прерывания обратных вызовов и предотвращает расхождения в данных.
AdValue
AdValue
— это класс, представляющий денежную стоимость, полученную за рекламу, включая код валюты стоимости и ее тип точности, закодированный следующим образом.
PrecisionType | Описание |
---|---|
UNKNOWN | Неизвестная ценность объявления. Возвращается, если включена функция pingback LTV, но недостаточно данных. |
ESTIMATED | Ценность объявления, рассчитанная на основе агрегированных данных. |
PUBLISHER_PROVIDED | Издатель предоставил ценность рекламы, например, ручную установку CPM в группе посредничества. |
PRECISE | Точная стоимость этой рекламы. |
В случае медиации AdMob, AdMob пытается предоставить ESTIMATED
стоимость для оптимизированных источников рекламы.
PUBLISHER_PROVIDED
. Тестовые показы из источников рекламы с торгами
После того, как для источника объявлений с ставкой через тестовый запрос происходит событие дохода от рекламы на уровне показа, вы получаете только следующие значения:
-
UNKNOWN
: указывает тип точности.
-
0
: указывает ценность объявления.
Ранее вы могли видеть тип точности как значение, отличное от UNKNOWN
и значение объявления больше 0
.
Подробную информацию об отправке тестового запроса на рекламу см. в разделе Включение тестовых устройств .