1. Firebase
The TopOn SDK supports real-time revenue acquisition for ads. You can obtain the eCPM value of the current ad by using
onAdRevenuePaid()
to record the ad_impression event in Google Analytics.
‼️ Note: When linking Firebase with AdMob mediation, non-bidding sources from AdMob do not require reporting.
public void handleFirebase(ATAdInfo adInfo) {
FirebaseAnalytics mFirebaseAnalytics = FirebaseAnalytics.getInstance(mActivity);
if (adInfo != null) {
// When linking Firebase with AdMob mediation, non-bidding sources from AdMob do not require reporting.
if (adInfo.getNetworkFirmId() == 2 && adInfo.isHeaderBiddingAdsource() == 0) return;
FirebaseAnalytics mFirebaseAnalytics = FirebaseAnalytics.getInstance(mActivity);
Bundle params = new Bundle();
params.putString(FirebaseAnalytics.Param.AD_PLATFORM, "TopOn");
params.putString(FirebaseAnalytics.Param.AD_SOURCE, adInfo.getNetworkName());
params.putString(FirebaseAnalytics.Param.AD_FORMAT, adInfo.getFormat());
params.putString(FirebaseAnalytics.Param.AD_UNIT_NAME, adInfo.getNetworkPlacementId());
params.putDouble(FirebaseAnalytics.Param.VALUE, adInfo.getPublisherRevenue());
params.putString(FirebaseAnalytics.Param.CURRENCY, adInfo.getCurrency());
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION, params);
}
}
Please call handleFirebase()
within the onAdRevenuePaid(ATAdInfo adInfo)
for the following ad format:
● Banner Ads
Report revenue in onAdRevenuePaid(ATAdInfo adInfo)
ofATBannerView#setAdRevenueListener()
. An example of the code is as below:
mBannerView.setAdRevenueListener(new ATAdRevenueListener() {
@Override
public void onAdRevenuePaid(ATAdInfo adInfo) {
handleFirebase(adInfo);
}
});
● Native Ads
Report revenue in onAdRevenuePaid(ATAdInfo adInfo)
ofNativeAd#setAdRevenueListener()
. An example of the code is as below:
mNativeAd.setAdRevenueListener(new ATAdRevenueListener() {
@Override
public void onAdRevenuePaid(ATAdInfo adInfo) {
handleFirebase(adInfo);
}
});
● Interstitial Ads
Report revenue in onAdRevenuePaid(ATAdInfo adInfo)
ofATInterstitial#setAdRevenueListener()
. An example of the code is as below:
mInterstitialAd.setAdRevenueListener(new ATAdRevenueListener() {
@Override
public void onAdRevenuePaid(ATAdInfo adInfo) {
handleFirebase(adInfo);
}
});
● Rewarded Ads
Report revenue in onAdRevenuePaid(ATAdInfo adInfo)
ofATRewardVideoAd#setAdRevenueListener()
. An example of the code is as below:
mRewardVideoAd.setAdRevenueListener(new ATAdRevenueListener() {
@Override
public void onAdRevenuePaid(ATAdInfo adInfo) {
handleFirebase(adInfo);
}
});
● Splash Ads
Report revenue in onAdRevenuePaid(ATAdInfo adInfo)
ofATSplashAd#setAdRevenueListener()
. An example of the code is as below:
mSplashAd.setAdRevenueListener(new ATAdRevenueListener() {
@Override
public void onAdRevenuePaid(ATAdInfo adInfo) {
handleFirebase(adInfo);
}
});
2. Adjust
Refer to the above solution and call handleAdjustRevenueReport()
inonAdRevenuePaid(ATAdInfo adInfo)
for each ad format:
public void handleAdjustRevenueReport(ATAdInfo atAdInfo) {
AdjustAdRevenue adjustAdRevenue = new AdjustAdRevenue( AdjustConfig.AD_REVENUE_TOPON);
adjustAdRevenue.setRevenue(atAdInfo.getPublisherRevenue(), atAdInfo.getCurrency());
// option
adjustAdRevenue.setAdRevenueNetwork(String.valueOf(atAdInfo.getNetworkFirmId()));
adjustAdRevenue.setAdRevenueUnit(atAdInfo.getAdsourceId());
adjustAdRevenue.setAdRevenuePlacement(atAdInfo.getPlacementId());
// report revenue
Adjust.trackAdRevenue(adjustAdRevenue);
}
3. AppsFlyer
Refer to the above solution and call handleAppsFlyerRevenueReport()
inonAdRevenuePaid(ATAdInfo adInfo)
for each ad format:
public void handleAppsFlyerRevenueReport(ATAdInfo atAdInfo) {
//before v6.3.10
//String monetizationNetwork = atAdInfo.getNetworkFirmId();
//v6.3.10+
String monetizationNetwork = atAdInfo.getNetworkName();
Currency currency = Currency.getInstance(Locale.US);
if ("CNY".equalsIgnoreCase(atAdInfo.getCurrency())) {
currency = Currency.getInstance(Locale.CHINA);
}
Map customParams = new HashMap<>();
AppsFlyerAdRevenue.logAdRevenue(monetizationNetwork, MediationNetwork.Topon, currency, atAdInfo.getPublisherRevenue(), customParams);
}