Отправка Ad Revenue на Android
В AppMetrica реализовано несколько вариантов для отправки Ad Revenue из сервисов рекламной монетизации и медиации:
- Автоматическая интеграция. Поддерживается для ironSource.
- Упрощенная интеграция. Поддерживается для:
- Applovin MAX
- Digital Turbine
- Google AdMob
- Ручная интеграция/самостоятельная настройка.
Автоматическая интеграция
Данные передаются автоматически. При необходимости автосбор можно отключить.
ironSource
Шаг 1. Настройте отправку Ad Revenue
Для ironSource поддержан автоматический сбор Ad Revenue. За это отвечает модуль io.appmetrica.analytics:analytics-ad-revenue-ironsource-v7
.
Пример активации:
AppMetricaConfig config = AppMetricaConfig.newConfigBuilder(API_KEY).build();
AppMetrica.activate(context, config);
Шаг 2. Убедитесь, что Ad Revenue отображается в отчетах
-
Совершите просмотры рекламы в приложении.
-
Убедитесь, что в отчете Revenue количество событий Ad Revenue соответствует количеству просмотров рекламы.
Отключение автосбора Ad Revenue
Если вам необходимо отключить автосбор Ad Revenue, то исключите модуль из списка зависимостей:
configurations.configureEach {
exclude(group = "io.appmetrica.analytics", module = "io.appmetrica.analytics:analytics-ad-revenue-ironsource-v7")
}
configurations.configureEach {
exclude group: 'io.appmetrica.analytics', module: 'io.appmetrica.analytics:analytics-ad-revenue-ironsource-v7'
}
Упрощенная интеграция
Используйте упрощенный API для отправки данных. Он поддерживает популярные сервисы рекламной монетизации и медиации.
Applovin MAX
Шаг 1. Убедитесь, что SDK активирован
Пример активации:
AppMetricaConfig config = AppMetricaConfig.newConfigBuilder(API_KEY).build();
AppMetrica.activate(context, config);
Шаг 2. Настройте отправку Ad Revenue
-
После создания соответствующего рекламного объекта установите
MaxAdRevenueListener
, используя методsetRevenueListener
. -
Из метода
onAdRevenuePaid(MaxAd)
отправьте данные в AppMetrica SDK: вызвовите методAppMetrica#reportExternalAdRevenue
и передайте в качестве аргументов параметр, переданный в слушательMaxAd
и экземплярAppLovinSdk
.App open adBannerInterstitialNativeRewardedKotlinJavaval maxAppOpenAdView = MaxAppOpenAd( "ad-unit-ID", applicationContext) maxAppOpenAdView.setRevenueListener { AppMetrica.reportExternalAdRevenue(it, AppLovinSdk.getInstance(applicationContext)) }
MaxAppOpenAd maxAppOpenAd = new MaxAppOpenAd( "ad-unit-ID", getApplicationContext()); maxAppOpenAd.setRevenueListener(maxAdRevenue -> AppMetrica.reportExternalAdRevenue(maxAdRevenue, AppLovinSdk.getInstance(getApplicationContext())));
KotlinJavaval maxAdView = MaxAdView("ad-unit-ID", applicationContext) maxAdView.setRevenueListener { AppMetrica.reportExternalAdRevenue(it, AppLovinSdk.getInstance(applicationContext)) }
MaxAdView maxAdView = new MaxAdView("ad-unit-ID", getApplicationContext()); maxAdView.setRevenueListener(maxAdRevenue -> AppMetrica.reportExternalAdRevenue(maxAdRevenue, AppLovinSdk.getInstance(getApplicationContext())));
KotlinJavaval maxInterstitialAd = MaxInterstitialAd("ad-unit-ID", applicationContext) maxInterstitialAd.setRevenueListener { AppMetrica.reportExternalAdRevenue(it, AppLovinSdk.getInstance(applicationContext)) }
MaxInterstitialAd maxInterstitialAd = new MaxInterstitialAd("ad-unit-ID", getApplicationContext()); maxInterstitialAd.setRevenueListener(maxAdRevenue -> AppMetrica.reportExternalAdRevenue(maxAdRevenue, AppLovinSdk.getInstance(getApplicationContext())));
KotlinJavaval nativeAdLoader = MaxNativeAdLoader("ad-unit-ID", applicationContext) nativeAdLoader.setRevenueListener { AppMetrica.reportExternalAdRevenue(it, AppLovinSdk.getInstance(applicationContext)) }
MaxNativeAdLoader maxNativeAdLoader = new MaxNativeAdLoader("ad-unit-ID", getApplicationContext()); maxNativeAdLoader.setRevenueListener(maxAdRevenue -> AppMetrica.reportExternalAdRevenue(maxAdRevenue, AppLovinSdk.getInstance(getApplicationContext())));
KotlinJavaval maxRewardedAd = MaxRewardedAd.getInstance("ad-unit-ID", applicationContext); maxRewardedAd.setRevenueListener { AppMetrica.reportExternalAdRevenue(it, AppLovinSdk.getInstance(applicationContext)) }
MaxRewardedAd maxRewardedAd = MaxRewardedAd.getInstance("ad-unit-ID", getApplicationContext()); maxRewardedAd.setRevenueListener(maxAdRevenue -> AppMetrica.reportExternalAdRevenue(maxAdRevenue, AppLovinSdk.getInstance(getApplicationContext())));
Шаг 3. Убедитесь, что Ad Revenue отображается в отчетах
-
Совершите просмотры рекламы в приложении.
-
Убедитесь, что в отчете Revenue количество событий Ad Revenue соответствует количеству просмотров рекламы.
Digital Turbine
Шаг 1. Убедитесь, что SDK активирован
Пример активации:
AppMetricaConfig config = AppMetricaConfig.newConfigBuilder(API_KEY).build();
AppMetrica.activate(context, config);
Шаг 2. Настройте отправку Ad Revenue
-
Для необходимых типов рекламы (
Banner
,Interstitial
,Rewarded
) устанавите соответствующий слушатель (BannerListener
,InterstitalListener
,RewardedListener
). -
Из метода
onShow
слушателя настройте отправкуimpressionData
в AppMetrica SDK c помощью методаAppMetrica#reportExternalAdRevenue()
.BannerInterstitialRewardedKotlinJavaBanner.setBannerListener(object:BannerListener { //.... override fun onShow(placementId: String, impressionData: ImpressionData) { AppMetrica.reportAdRevenue(impressionData) //..... } //.... })
Banner.setBannerListener(new BannerListener() { //...... @Override public void onShow(@NonNull String s, @NonNull ImpressionData impressionData) { AppMetrica.reportExternalAttribution(impressionData); //...... } //...... });
KotlinJavaInterstitial.setInterstitialListener(object:InterstitialListener { //.... override fun onShow(placementId: String, impressionData: ImpressionData) { AppMetrica.reportExternalAdRevenue(impressionData) //.... } //.... })
Interstitial.setInterstitialListener(new InterstitialListener() { //...... @Override public void onShow(@NonNull String s, @NonNull ImpressionData impressionData) { AppMetrica.reportExternalAdRevenue(impressionData); //...... } //....... });
KotlinJavaRewarded.setRewardedListener(object:RewardedListener { override fun onShow(placementId: String, impressionData: ImpressionData) { AppMetrica.reportExternalAdRevenue(impressionData); //....... } })
Rewarded.setRewardedListener(new RewardedListener() { //..... @Override public void onShow(@NonNull String s, @NonNull ImpressionData impressionData) { AppMetrica.reportExternalAdRevenue(impressionData); //...... } //..... });
Шаг 3. Убедитесь, что Ad Revenue отображается в отчетах
-
Совершите просмотры рекламы в приложении.
-
Убедитесь, что в отчете Revenue количество событий Ad Revenue соответствует количеству просмотров рекламы.
Google AdMob
Шаг 1. Убедитесь, что SDK активирован
Пример активации:
AppMetricaConfig config = AppMetricaConfig.newConfigBuilder(API_KEY).build();
AppMetrica.activate(context, config);
Шаг 2. Настройте отправку Ad Revenue
-
В методе
AppOpenAdLoadCallback#onAdLoaded
слушателя загрузки рекламы установите слушательOnPaidEventListener
. -
В методе
OnPaidEventListener#onPaidEvent
настройте отправку данных в AppMetrica с помощью методаAppMetrica#reportExternalAdRevenue()
, передав в качестве аргументов полученный объектAdValue
иAppOpenAd
.KotlinJavaAppOpenAd.load( this, "ad-unit-ID", adRequest, AppOpenAd.APP_OPEN_AD_ORIENTATION_PORTRAIT, object : AppOpenAdLoadCallback() { override fun onAdLoaded(adMobAppOpenAd: AppOpenAd) { super.onAdLoaded(adMobAppOpenAd) adMobAppOpenAd.onPaidEventListener = OnPaidEventListener { adValue -> AppMetrica.reportExternalAdRevenue( adValue, adMobAppOpenAd ) //...... } //...... } })
AppOpenAd.load( this, "ad-unit-ID", adRequest, AppOpenAd.APP_OPEN_AD_ORIENTATION_PORTRAIT, new RewardedInterstitialAdLoadCallback() { @Override public void onAdLoaded(@NonNull AppOpenAd adMobAppOpenAd) { super.onAdLoaded(adMobAppOpenAd); adMobAppOpenAd.setOnPaidEventListener(adValue -> { AppMetrica.reportExternalAdRevenue(adValue, adMobAppOpenAd); //...... }); //...... } });
-
После создания
adView
и до загрузки рекламы с помощью вызоваsetOnPaidEventListener
зарегистрируйте слушательOnPaidEventListener
. -
В методе
OnPaidEventListener#onPaidEvent
настройте отправку данных в AppMetrica с помощью методаAppMetrica#reportExternalAdRevenue()
, передав в качестве аргументов полученный объектAdValue
иadView
.KotlinJavaval adMobAdView = AdView(this) //........ adMobAdView.setOnPaidEventListener { AppMetrica.reportExternalAdRevenue(it, adMobAdView) //....... } //........ adMobAdView.loadAd(adRequest)
AdView adMobAdView = new AdView(this); //...... adMobAdView.setOnPaidEventListener(adValue -> { AppMetrica.reportExternalAdRevenue(adValue, adMobAdView); //....... }); //....... adMobAdView.loadAd(adRequest);
-
В методе
InterstitialAdLoadCallback#onAdLoaded
слушателя загрузки рекламы установите слушательOnPaidEventListener
. -
В методе
OnPaidEventListener#onPaidEvent
настройте отправку данных в AppMetrica с помощью методаAppMetrica#reportExternalAdRevenue()
, передав в качестве аргументов полученный объектAdValue
иinterstitialAd
.KotlinJavaInterstitialAd.load(this, "add-unit-ID", adRequest, object : InterstitialAdLoadCallback() { //...... override fun onAdLoaded(adMobInterstitalAd: InterstitialAd) { super.onAdLoaded(adMobInterstitalAd) //....... adMobInterstitalAd.setOnPaidEventListener { adValue -> AppMetrica.reportExternalAdRevenue(adValue, adMobInterstitalAd) } //....... } })
InterstitialAd.load(this, "ad-unit-ID", adRequest, new InterstitialAdLoadCallback() { //........ @Override public void onAdLoaded(@NonNull InterstitialAd adMobInterstitialAd) { super.onAdLoaded(adMobInterstitialAd); adMobInterstitialAd.setOnPaidEventListener(adValue -> { AppMetrica.reportExternalAdRevenue(adValue, adMobInterstitialAd); //...... }); //...... } });
-
В методе
OnNativeAdLoadedListener#onNativeAdLoaded
слушателя загрузки рекламы установите слушательOnPaidEventListener
. -
В методе
OnPaidEventListener#onPaidEvent
настройте отправку данных в AppMetrica с помощью методаAppMetrica#reportExternalAdRevenue()
, передав в качестве аргументов полученный объектAdValue
иnativeAd
.KotlinJavaval adMobAdLoader = AdLoader.Builder(this, "add-unit-ID") .forNativeAd { adMobNativeAd -> adMobNativeAd.setOnPaidEventListener { adValue -> AppMetrica.reportExternalAdRevenue(adValue, adMobNativeAd) } } //....... .build() //.....
//..... AdLoader admobLoader = new AdLoader.Builder(this, "ad-unit-ID") .forNativeAd(adMobNativeAd -> { adMobNativeAd.setOnPaidEventListener(adValue -> { AppMetrica.reportExternalAdRevenue(adValue, adMobNativeAd); //...... }); //...... }) .build(); //......
-
В методе
RewardedAdLoadCallback#onAdLoaded
слушателя загрузки рекламы установите слушательOnPaidEventListener
. -
В методе
OnPaidEventListener#onPaidEvent
настройте отправку данных в AppMetrica с помощью методаAppMetrica#reportExternalAdRevenue()
, передав в качестве аргументов полученный объектAdValue
иrewardedAd
.KotlinJava//..... RewardedAd.load(this, "ad-unit-ID", adRequest, object : RewardedAdLoadCallback() { override fun onAdLoaded(rewardedAd: RewardedAd) { super.onAdLoaded(rewardedAd) //..... rewardedAd.onPaidEventListener = OnPaidEventListener { adValue -> AppMetrica.reportExternalAdRevenue( adValue, rewardedAd ) } } }) //.....
//..... RewardedAd.load(this, "ad-unit-ID", adRequest, new RewardedAdLoadCallback() { @Override public void onAdLoaded(@NonNull RewardedAd rewardedAd) { super.onAdLoaded(rewardedAd); //..... rewardedAd.setOnPaidEventListener(adValue -> { AppMetrica.reportExternalAdRevenue(adValue, rewardedAd); //........ }); } }); //.....
-
В методе
RewardedInterstitialAdLoadCallback#onAdLoaded
слушателя загрузки рекламы установите слушательOnPaidEventListener
. -
В методе
OnPaidEventListener#onPaidEvent
настройте отправку данных в AppMetrica с помощью методаAppMetrica#reportExternalAdRevenue()
, передав в качестве аргументов полученный объектAdValue
иrewardedInterstitialAd
.KotlinJavaRewardedInterstitialAd.load( this, "ad-unit-ID", adRequest, object : RewardedInterstitialAdLoadCallback() { override fun onAdLoaded(rewardedInterstitialAd: RewardedInterstitialAd) { super.onAdLoaded(rewardedInterstitialAd) rewardedInterstitialAd.onPaidEventListener = OnPaidEventListener { adValue -> AppMetrica.reportExternalAdRevenue( adValue, rewardedInterstitialAd ) //...... } //...... } })
RewardedInterstitialAd.load(this, "ad-unit-ID", adRequest, new RewardedInterstitialAdLoadCallback() { @Override public void onAdLoaded(@NonNull RewardedInterstitialAd rewardedInterstitialAd) { super.onAdLoaded(rewardedInterstitialAd); rewardedInterstitialAd.setOnPaidEventListener(adValue -> { AppMetrica.reportExternalAdRevenue(adValue, rewardedInterstitialAd); //...... }); //...... } });
Шаг 3. Убедитесь, что Ad Revenue отображается в отчетах
-
Совершите просмотры рекламы в приложении.
-
Убедитесь, что в отчете Revenue количество событий Ad Revenue соответствует количеству просмотров рекламы.
Ручная интеграция/самостоятельная настройка
Используйте этот вариант, чтобы самостоятельно настроить передачу данных любого другого сервиса рекламной монетизации, который предоставляет Impression level Revenue Data.
Шаг 1. Убедитесь, что SDK активирован
Пример активации:
AppMetricaConfig config = AppMetricaConfig.newConfigBuilder(API_KEY).build();
AppMetrica.activate(context, config);
Шаг 2. Настройте отправку Ad Revenue
-
Создайте объект
AdRevenue
с помощью конструктораAdRevenue.Builder
.Map<String, String> adRevenuePayload = new HashMap<>(); adRevenuePayload.put("payload_key_1", "payload_value_1"); adRevenuePayload.put("payload_key_2", "payload_value_2"); AdRevenue adRevenue = AdRevenue.newBuilder(new BigDecimal("100.100"), Currency.getInstance("USD")) .withAdNetwork("ad_network") .withAdPlacementId("ad_placement_id") .withAdPlacementName("ad_placement_name") .withAdType(AdType.NATIVE) .withAdUnitId("ad_unit_id") .withAdUnitName("ad_unit_name") .withPrecision("some precision") .withPayload(adRevenuePayload) .build();
-
Отправьте объект
Ad Revenue
с помощью методаAppMetrica.reportAdRevenue(AdRevenue adRevenue)
.AppMetrica.reportAdRevenue(adRevenue);
Шаг 3. Убедитесь, что Ad Revenue отображается в отчетах
-
Совершите просмотры рекламы в приложении.
-
Убедитесь, что в отчете Revenue количество событий Ad Revenue соответствует количеству просмотров рекламы.
Если вы не нашли ответ на свой вопрос, то вы можете задать его через форму обратной связи. Пожалуйста, опишите возникшую проблему как можно подробнее. Если возможно, приложите скриншот.