TopOn SDK支持获取实时展示广告的收益,您可通过监听
onAdRevenuePaid()
回调获取当前展示广告的ecpm值来记录 Google Analytics(分析)ad_impression 事件。
‼️注 : 使用Firebase与AdMob关联集成时,Admob的非竞价源不需要上报
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);
}
}
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)
回调方法回传收益,代码示例如下:
mBannerView.setAdRevenueListener(new ATAdRevenueListener() {
@Override
public void onAdRevenuePaid(ATAdInfo adInfo) {
handleFirebase(adInfo);
}
});
在TUBannerView#setAdRevenueListener()
的onAdRevenuePaid(TUAdInfo adInfo)
回调方法回传收益,代码示例如下:
mBannerView.setAdRevenueListener(new TUAdRevenueListener() {
@Override
public void onAdRevenuePaid(TUAdInfo adInfo) {
handleFirebase(adInfo);
}
});
在NativeAd#setAdRevenueListener()
的onAdRevenuePaid(ATAdInfo adInfo)
回调方法回传收益,代码示例如下:
mNativeAd.setAdRevenueListener(new ATAdRevenueListener() {
@Override
public void onAdRevenuePaid(ATAdInfo adInfo) {
handleFirebase(adInfo);
}
});
在NativeAd#setAdRevenueListener()
的onAdRevenuePaid(TUAdInfo adInfo)
回调方法回传收益,代码示例如下:
mNativeAd.setAdRevenueListener(new TUAdRevenueListener() {
@Override
public void onAdRevenuePaid(TUAdInfo adInfo) {
handleFirebase(adInfo);
}
});
在ATRewardVideoAd#setAdRevenueListener()
的onAdRevenuePaid(ATAdInfo adInfo)
回调方法回传收益,代码示例如下:
mRewardVideoAd.setAdRevenueListener(new ATAdRevenueListener() {
@Override
public void onAdRevenuePaid(ATAdInfo adInfo) {
handleFirebase(adInfo);
}
});
在TURewardVideoAd#setAdRevenueListener()
的onAdRevenuePaid(TUAdInfo adInfo)
回调方法回传收益,代码示例如下:
mRewardVideoAd.setAdRevenueListener(new TUAdRevenueListener() {
@Override
public void onAdRevenuePaid(TUAdInfo adInfo) {
handleFirebase(adInfo);
}
});
在ATInterstitial#setAdRevenueListener()
的onAdRevenuePaid(ATAdInfo adInfo)
回调方法回传收益,代码示例如下:
mInterstitialAd.setAdRevenueListener(new ATAdRevenueListener() {
@Override
public void onAdRevenuePaid(ATAdInfo adInfo) {
handleFirebase(adInfo);
}
});
在TUInterstitial#setAdRevenueListener()
的onAdRevenuePaid(TUAdInfo adInfo)
回调方法回传收益,代码示例如下:
mInterstitialAd.setAdRevenueListener(new TUAdRevenueListener() {
@Override
public void onAdRevenuePaid(TUAdInfo adInfo) {
handleFirebase(adInfo);
}
});
在ATSplashAd#setAdRevenueListener()
的onAdRevenuePaid(ATAdInfo adInfo)
回调方法回传收益,代码示例如下:
mSplashAd.setAdRevenueListener(new ATAdRevenueListener() {
@Override
public void onAdRevenuePaid(ATAdInfo adInfo) {
handleFirebase(adInfo);
}
});
在TUSplashAd#setAdRevenueListener()
的onAdRevenuePaid(TUAdInfo adInfo)
回调方法回传收益,代码示例如下:
mSplashAd.setAdRevenueListener(new TUAdRevenueListener() {
@Override
public void onAdRevenuePaid(TUAdInfo adInfo) {
handleFirebase(adInfo);
}
});
参考上述Firebase,在每个广告类型的onAdRevenuePaid(ATAdInfo adInfo)
中调用以下的handleAdjustRevenueReport
方法:
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
方法:
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);
}
参考上述Firebase,在每个广告类型的onAdRevenuePaid(ATAdInfo adInfo)
中调用以下的handleAppsFlyerRevenueReport
方法:
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
方法:
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);
}