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