Menu

Revenue reporting for v6.3.70 and below

1. Firebase

The TopOn SDK supports real-time revenue acquisition for ads. You can obtain the eCPM value of the current ad by using ad show callback 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 ad show callback within the onAdRevenuePaid(ATAdInfo adInfo) for the following ad format:

● Banner Ads

Report revenue in onBannerShow()andonBannerAutoRefreshed()ofATBannerView#setAdRevenueListener(). An example of the code is as below:

@Override
public void onBannerShow(ATAdInfo atAdInfo) {
    handleFirebase(atAdInfo);
}

@Override
public void onBannerAutoRefreshed(ATAdInfo adInfo) {
    handleFirebase(atAdInfo);
}

 

● Native Ads

Report revenue inonAdImpressed()ofNativeAd#setNativeEventListener(). An example of the code is as below:

@Override
public void onAdImpressed(ATNativeAdView view, ATAdInfo atAdInfo) {
    handleFirebase(atAdInfo);
}

 

● Interstitial Ads

Report revenue inonInterstitialAdShow()ofATInterstitial#setAdListener. An example of the code is as below:

@Override
public void onInterstitialAdShow(ATAdInfo atAdInfo) {
    handleFirebase(atAdInfo);
}

 

Rewarded Ads

Report revenue onRewardedVideoAdPlayStart()ofATRewardVideoAd#setAdListener. An example of the code is as below:

@Override
public void onRewardedVideoAdPlayStart(ATAdInfo atAdInfo) {
    handleFirebase(atAdInfo);
}

 

● Splash Ads

Report revenue onAdShow()ofATSplashAd#setAdListener. An example of the code is as below:

@Override
public void onAdShow(ATAdInfo atAdInfo) {
    handleFirebase(atAdInfo);
}

 

2. Adjust

Refer to the above solution and call handleAdjustRevenueReport()in ad show callback 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()in ad show callback 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);
}
Previous
Revenue Reporting
Next
Advanced Settings
Last modified: 2025-07-18Powered by