Когда происходит показ, Google Mobile Ads SDK (Legacy) предоставляет данные о доходе от рекламы, связанные с этим показом. Вы можете использовать эти данные, чтобы рассчитать ценность пользователя за все время или передать их в другие системы.
Это руководство поможет вам реализовать сбор данных о доходе от рекламы на уровне показа в приложении для Android.
Требования
- Убедитесь, что в интерфейсе Менеджера рекламы включена функция дохода от рекламы на уровне показа.
- Импортировать 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
}
Подробнее о получении информации об ответе на запрос объявления…
Рекомендации по реализации
- Установите прослушиватель сразу после создания объекта объявления или получения к нему доступа и обязательно до показа объявления. Это гарантирует, что вы не пропустите обратные вызовы платных событий.
- Отправлять информацию о доходе от рекламы на уровне показа на предпочитаемый аналитический сервер сразу после вызова обратного вызова платного события. Это позволяет избежать случайного пропуска обратных вызовов и расхождений в данных.
AdValue
AdValue – это класс, который представляет денежную ценность, полученную за объявление, включая код валюты и тип точности, закодированные следующим образом:
| PrecisionType | Описание |
|---|---|
UNKNOWN |
Неизвестное значение объявления. Возвращается, когда включена передача данных о пожизненной ценности, но доступно недостаточно данных. |
ESTIMATED |
Доход от объявления рассчитывается на основе агрегированных данных. |
PUBLISHER_PROVIDED |
Стоимость объявления, указанная издателем, например цена за тысячу показов, назначенная вручную в группе медиации. |
PRECISE |
Точная стоимость показа объявления. |
В случае с медиацией Менеджер рекламы пытается предоставить значение ESTIMATED для источников объявлений, в которых включен автоматический сбор данных.
Для неоптимизированных источников объявлений или в случаях, когда недостаточно агрегированных данных для точной оценки, возвращается значение PUBLISHER_PROVIDED.
Тестирование показов с использованием Open Bidding
После того как для источника объявлений Open Bidding через тестовый запрос происходит событие, связанное с доходом от рекламы на уровне показа, вы получаете только следующие значения:
UNKNOWN– элемент, определяющий тип точности;
0– значение объявления.
UNKNOWN, а значение объявления – как число больше 0.
Подробнее о том, как отправить тестовый запрос объявления, см. Включение тестовых устройств.