菜单

三方收益回传(v6.3.70以上)

1. Firebase

TopOn SDK支持获取实时展示广告的收益,您可通过监听onAdRevenuePaid()回调获取当前展示广告的ecpm值来记录 Google Analytics(分析)ad_impression 事件。

‼️注使用Firebase与AdMob关联集成时,Admob的非竞价源不需要上报

java 复制代码
public void handleFirebase(ATAdInfo adInfo) {
    FirebaseAnalytics mFirebaseAnalytics = FirebaseAnalytics.getInstance(mActivity);
    if (adInfo != null) {
        // 使用Firebase与AdMob关联集成时,Admob的非竞价源不需要上报
        // 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);
    }
} 
java 复制代码
public void handleFirebase(TUAdInfo adInfo) {
    FirebaseAnalytics mFirebaseAnalytics = FirebaseAnalytics.getInstance(mActivity);
    if (adInfo != null) {
        // 使用Firebase与AdMob关联集成时,Admob的非竞价源不需要上报
        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);
    }
} 

在以下广告类型的onAdRevenuePaid(ATAdInfo adInfo)中调用handleFirebase()方法:

● 横幅广告

ATBannerView#setAdRevenueListener()onAdRevenuePaid(ATAdInfo adInfo)回调方法回传收益,代码示例如下:

java 复制代码
mBannerView.setAdRevenueListener(new ATAdRevenueListener() {
    @Override
    public void onAdRevenuePaid(ATAdInfo adInfo) {
        handleFirebase(adInfo);
    }
});

TUBannerView#setAdRevenueListener()onAdRevenuePaid(TUAdInfo adInfo)回调方法回传收益,代码示例如下:

java 复制代码
mBannerView.setAdRevenueListener(new TUAdRevenueListener() {
    @Override
    public void onAdRevenuePaid(TUAdInfo adInfo) {
        handleFirebase(adInfo);
    }
});

● 原生广告

NativeAd#setAdRevenueListener()onAdRevenuePaid(ATAdInfo adInfo)回调方法回传收益,代码示例如下:

java 复制代码
mNativeAd.setAdRevenueListener(new ATAdRevenueListener() {
    @Override
    public void onAdRevenuePaid(ATAdInfo adInfo) {
        handleFirebase(adInfo);
    }
});

NativeAd#setAdRevenueListener()onAdRevenuePaid(TUAdInfo adInfo)回调方法回传收益,代码示例如下:

java 复制代码
mNativeAd.setAdRevenueListener(new TUAdRevenueListener() {
    @Override
    public void onAdRevenuePaid(TUAdInfo adInfo) {
        handleFirebase(adInfo);
    }
});

● 激励视频

ATRewardVideoAd#setAdRevenueListener()onAdRevenuePaid(ATAdInfo adInfo)回调方法回传收益,代码示例如下:

java 复制代码
mRewardVideoAd.setAdRevenueListener(new ATAdRevenueListener() {
    @Override
    public void onAdRevenuePaid(ATAdInfo adInfo) {
        handleFirebase(adInfo);
    }
});

TURewardVideoAd#setAdRevenueListener()onAdRevenuePaid(TUAdInfo adInfo)回调方法回传收益,代码示例如下:

java 复制代码
mRewardVideoAd.setAdRevenueListener(new TUAdRevenueListener() {
    @Override
    public void onAdRevenuePaid(TUAdInfo adInfo) {
        handleFirebase(adInfo);
    }
});

● 插屏广告

ATInterstitial#setAdRevenueListener()onAdRevenuePaid(ATAdInfo adInfo)回调方法回传收益,代码示例如下:

java 复制代码
mInterstitialAd.setAdRevenueListener(new ATAdRevenueListener() {
    @Override
    public void onAdRevenuePaid(ATAdInfo adInfo) {
        handleFirebase(adInfo);
    }
});

TUInterstitial#setAdRevenueListener()onAdRevenuePaid(TUAdInfo adInfo)回调方法回传收益,代码示例如下:

java 复制代码
mInterstitialAd.setAdRevenueListener(new TUAdRevenueListener() {
    @Override
    public void onAdRevenuePaid(TUAdInfo adInfo) {
        handleFirebase(adInfo);
    }
});

● 开屏广告

ATSplashAd#setAdRevenueListener()onAdRevenuePaid(ATAdInfo adInfo)回调方法回传收益,代码示例如下:

java 复制代码
mSplashAd.setAdRevenueListener(new ATAdRevenueListener() {
    @Override
    public void onAdRevenuePaid(ATAdInfo adInfo) {
        handleFirebase(adInfo);
    }
});

TUSplashAd#setAdRevenueListener()onAdRevenuePaid(TUAdInfo adInfo)回调方法回传收益,代码示例如下:

java 复制代码
mSplashAd.setAdRevenueListener(new TUAdRevenueListener() {
    @Override
    public void onAdRevenuePaid(TUAdInfo adInfo) {
        handleFirebase(adInfo);
    }
});

2. Adjust

参考上述Firebase,在每个广告类型的onAdRevenuePaid(ATAdInfo adInfo)中调用以下的handleAdjustRevenueReport方法:

java 复制代码
public void handleAdjustRevenueReport(ATAdInfo adInfo) {
    //adjust4.38.1及以上支持
    AdjustAdRevenue adjustAdRevenue = new AdjustAdRevenue( AdjustConfig.AD_REVENUE_TOPON);
    adjustAdRevenue.setRevenue(adInfo.getPublisherRevenue(), adInfo.getCurrency());

    //可选配置
    adjustAdRevenue.setAdRevenueNetwork(String.valueOf(adInfo.getNetworkFirmId()));
    adjustAdRevenue.setAdRevenueUnit(adInfo.getAdsourceId());
    adjustAdRevenue.setAdRevenuePlacement(adInfo.getPlacementId());

    //发送收益数据
    Adjust.trackAdRevenue(adjustAdRevenue);
}

参考上述Firebase,在每个广告类型的onAdRevenuePaid(TUAdInfo adInfo)中调用以下的handleAdjustRevenueReport方法:

java 复制代码
public void handleAdjustRevenueReport(TUAdInfo adInfo) {
    //adjust4.38.1及以上支持
    AdjustAdRevenue adjustAdRevenue = new AdjustAdRevenue( AdjustConfig.AD_REVENUE_TOPON);
    adjustAdRevenue.setRevenue(adInfo.getPublisherRevenue(), adInfo.getCurrency());

    //可选配置
    adjustAdRevenue.setAdRevenueNetwork(String.valueOf(adInfo.getNetworkFirmId()));
    adjustAdRevenue.setAdRevenueUnit(adInfo.getAdsourceId());
    adjustAdRevenue.setAdRevenuePlacement(adInfo.getPlacementId());

    //发送收益数据
    Adjust.trackAdRevenue(adjustAdRevenue);
}

3. AppsFlyer

参考上述Firebase,在每个广告类型的onAdRevenuePaid(ATAdInfo adInfo)中调用以下的handleAppsFlyerRevenueReport方法:

java 复制代码
public void handleAppsFlyerRevenueReport(ATAdInfo adInfo) {
    
    //v6.3.10+
    String monetizationNetwork = adInfo.getNetworkName(); 
    Currency currency = Currency.getInstance(Locale.US);
    if ("CNY".equalsIgnoreCase(adInfo.getCurrency())) {
        currency = Currency.getInstance(Locale.CHINA);
    }
    Map customParams = new HashMap<>();

    AppsFlyerAdRevenue.logAdRevenue(monetizationNetwork, MediationNetwork.Topon, currency, adInfo.getPublisherRevenue(), customParams);
}

参考上述Firebase,在每个广告类型的onAdRevenuePaid(TUAdInfo adInfo)中调用以下的handleAppsFlyerRevenueReport方法:

java 复制代码
public void handleAppsFlyerRevenueReport(TUAdInfo adInfo) {
    
    //v6.3.10+
    String monetizationNetwork = adInfo.getNetworkName(); 
    Currency currency = Currency.getInstance(Locale.US);
    if ("CNY".equalsIgnoreCase(adInfo.getCurrency())) {
        currency = Currency.getInstance(Locale.CHINA);
    }
    Map customParams = new HashMap<>();

    AppsFlyerAdRevenue.logAdRevenue(monetizationNetwork, MediationNetwork.Topon, currency, adInfo.getPublisherRevenue(), customParams);
}
上一个
AdMob内容映射功能
下一个
高级设置
最近修改: 2025-08-25Powered by