Отправка 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 отображается в отчетах

  1. Совершите просмотры рекламы в приложении.

  2. Убедитесь, что в отчете 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

  1. После создания соответствующего рекламного объекта установите MaxAdRevenueListener, используя метод setRevenueListener.

  2. Из метода onAdRevenuePaid(MaxAd) отправьте данные в AppMetrica SDK: вызвовите метод AppMetrica#reportExternalAdRevenue и передайте в качестве аргументов параметр, переданный в слушатель MaxAd и экземпляр AppLovinSdk.

    val 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())));
    
    val 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())));
    
    val 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())));
    
    val 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())));
    
    val 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 отображается в отчетах

  1. Совершите просмотры рекламы в приложении.

  2. Убедитесь, что в отчете Revenue количество событий Ad Revenue соответствует количеству просмотров рекламы.

Digital Turbine

Шаг 1. Убедитесь, что SDK активирован

Пример активации:

AppMetricaConfig config = AppMetricaConfig.newConfigBuilder(API_KEY).build();
AppMetrica.activate(context, config);

Шаг 2. Настройте отправку Ad Revenue

  1. Для необходимых типов рекламы (Banner, Interstitial, Rewarded) устанавите соответствующий слушатель (BannerListener, InterstitalListener, RewardedListener).

  2. Из метода onShow слушателя настройте отправку impressionData в AppMetrica SDK c помощью метода AppMetrica#reportExternalAdRevenue().

    Banner.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);
            //......
        }
        //......
    });
    
    Interstitial.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);
            //......
        }
    //.......
    });
    
    Rewarded.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 отображается в отчетах

  1. Совершите просмотры рекламы в приложении.

  2. Убедитесь, что в отчете Revenue количество событий Ad Revenue соответствует количеству просмотров рекламы.

Google AdMob

Шаг 1. Убедитесь, что SDK активирован

Пример активации:

AppMetricaConfig config = AppMetricaConfig.newConfigBuilder(API_KEY).build();
AppMetrica.activate(context, config);

Шаг 2. Настройте отправку Ad Revenue

  1. В методе AppOpenAdLoadCallback#onAdLoaded слушателя загрузки рекламы установите слушатель OnPaidEventListener.

  2. В методе OnPaidEventListener#onPaidEvent настройте отправку данных в AppMetrica с помощью метода AppMetrica#reportExternalAdRevenue(), передав в качестве аргументов полученный объект AdValue и AppOpenAd.

    AppOpenAd.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);
                //......
            });
            //......
        }
    });
    
  1. После создания adView и до загрузки рекламы с помощью вызова setOnPaidEventListener зарегистрируйте слушатель OnPaidEventListener.

  2. В методе OnPaidEventListener#onPaidEvent настройте отправку данных в AppMetrica с помощью метода AppMetrica#reportExternalAdRevenue(), передав в качестве аргументов полученный объект AdValue и adView.

    val 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);
    
  1. В методе InterstitialAdLoadCallback#onAdLoaded слушателя загрузки рекламы установите слушатель OnPaidEventListener.

  2. В методе OnPaidEventListener#onPaidEvent настройте отправку данных в AppMetrica с помощью метода AppMetrica#reportExternalAdRevenue(), передав в качестве аргументов полученный объект AdValue и interstitialAd.

    InterstitialAd.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);
                //......
            });
            //......
        }
    });
    
  1. В методе OnNativeAdLoadedListener#onNativeAdLoaded слушателя загрузки рекламы установите слушатель OnPaidEventListener.

  2. В методе OnPaidEventListener#onPaidEvent настройте отправку данных в AppMetrica с помощью метода AppMetrica#reportExternalAdRevenue(), передав в качестве аргументов полученный объект AdValue и nativeAd.

    val 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();
    //......
    
  1. В методе RewardedAdLoadCallback#onAdLoaded слушателя загрузки рекламы установите слушатель OnPaidEventListener.

  2. В методе OnPaidEventListener#onPaidEvent настройте отправку данных в AppMetrica с помощью метода AppMetrica#reportExternalAdRevenue(), передав в качестве аргументов полученный объект AdValue и rewardedAd.

    //.....
    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);
                //........
            });
        }
    });
    //.....
    
  1. В методе RewardedInterstitialAdLoadCallback#onAdLoaded слушателя загрузки рекламы установите слушатель OnPaidEventListener.

  2. В методе OnPaidEventListener#onPaidEvent настройте отправку данных в AppMetrica с помощью метода AppMetrica#reportExternalAdRevenue(), передав в качестве аргументов полученный объект AdValue и rewardedInterstitialAd.

    RewardedInterstitialAd.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 отображается в отчетах

  1. Совершите просмотры рекламы в приложении.

  2. Убедитесь, что в отчете Revenue количество событий Ad Revenue соответствует количеству просмотров рекламы.

Ручная интеграция/самостоятельная настройка

Используйте этот вариант, чтобы самостоятельно настроить передачу данных любого другого сервиса рекламной монетизации, который предоставляет Impression level Revenue Data.

Шаг 1. Убедитесь, что SDK активирован

Пример активации:

AppMetricaConfig config = AppMetricaConfig.newConfigBuilder(API_KEY).build();
AppMetrica.activate(context, config);

Шаг 2. Настройте отправку Ad Revenue

  1. Создайте объект 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();
    
  2. Отправьте объект Ad Revenue с помощью метода AppMetrica.reportAdRevenue(AdRevenue adRevenue).

    AppMetrica.reportAdRevenue(adRevenue);
    

Шаг 3. Убедитесь, что Ad Revenue отображается в отчетах

  1. Совершите просмотры рекламы в приложении.

  2. Убедитесь, что в отчете Revenue количество событий Ad Revenue соответствует количеству просмотров рекламы.

Если вы не нашли ответ на свой вопрос, то вы можете задать его через форму обратной связи. Пожалуйста, опишите возникшую проблему как можно подробнее. Если возможно, приложите скриншот.

Написать в службу поддержки
Предыдущая