💡Tips
- 🟢 本文示例以插屏广告样式演示,其他广告样式实现逻辑相同
- 🔵 回传参数仅供参考,请根据实际业务需要自行选择参数上报回传
- ⚠️ 使用Firebase与AdMob关联集成时,需避免AdMob收益重复上报
- 如下示例code仅供参考,详情请参考Firebase官方文档
mInterstitialAd.setRevenueListener(new MCAdRevenueListener() {
@Override
public void onAdRevenuePaid(MCAdInfo adInfo) {
// 防止AdMob重复上报
// if (adInfo.getMediationId() == MCAdConst.MediationId.MEDIATION_ID_ADMOB) return;
// if (adInfo.getNetworkFirmId() == 2 && !(adInfo.getBiddingType() == 1 || adInfo.getBiddingType() == 2)) return;
FirebaseAnalytics mFirebaseAnalytics = FirebaseAnalytics.getInstance(mActivity);
Bundle params = new Bundle();
// 平台类型判断
int mediationId = adInfo.getMediationId();
String adPlatform = mediationId == MCAdConst.MediationId.MEDIATION_ID_TOPON ? "TopOn" :
(mediationId == MCAdConst.MediationId.MEDIATION_ID_MAX ? "Max" : "Your Platform Name");
// 收益参数配置
params.putString(FirebaseAnalytics.Param.AD_PLATFORM, adPlatform);
params.putString(FirebaseAnalytics.Param.AD_SOURCE, adInfo.getNetworkFirmName());
params.putString(FirebaseAnalytics.Param.AD_FORMAT, adInfo.getFormat().getLabel());
params.putString(FirebaseAnalytics.Param.AD_UNIT_NAME, adInfo.getNetworkPlacementId());
params.putDouble(FirebaseAnalytics.Param.VALUE, adInfo.getRevenue());
params.putString(FirebaseAnalytics.Param.CURRENCY, adInfo.getCurrency());
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION, params);
}
});
- 如下示例code仅供参考,详情请参考Adjust官方文档
mInterstitialAd.setRevenueListener(new MCAdRevenueListener() {
@Override
public void onAdRevenuePaid(MCAdInfo adInfo) {
int mediationId = adInfo.getMediationId();
String adPlatform;
switch (mediationId) {
case MCAdConst.MediationId.MEDIATION_ID_TOPON:
adPlatform = "topon_sdk";
break;
case MCAdConst.MediationId.MEDIATION_ID_MAX:
adPlatform = "applovin_max_sdk";
break;
case MCAdConst.MediationId.MEDIATION_ID_ADMOB:
adPlatform = "admob_sdk";
break;
default:
adPlatform = "Your Platform Name";
break;
}
AdjustAdRevenue adjustAdRevenue = new AdjustAdRevenue(adPlatform);
// 收益参数设置
adjustAdRevenue.setRevenue(adInfo.getRevenue(), adInfo.getCurrency());
adjustAdRevenue.setAdRevenueNetwork(adInfo.getNetworkFirmName());
adjustAdRevenue.setAdRevenueUnit(adInfo.getNetworkPlacementId());
adjustAdRevenue.setAdRevenuePlacement(adInfo.getMediationPlacementId());
Adjust.trackAdRevenue(adjustAdRevenue);
}
});
- 如下示例code仅供参考,详情请参考AppsFlyer官方文档
mInterstitialAd.setRevenueListener(new MCAdRevenueListener() {
@Override
public void onAdRevenuePaid(MCAdInfo adInfo) {
AppsFlyerLib appsflyer = AppsFlyerLib.getInstance();
int mediationId = adInfo.getMediationId();
MediationNetwork mediationNetwork;
switch (mediationId) {
case MCAdConst.MediationId.MEDIATION_ID_TOPON:
mediationNetwork = MediationNetwork.TOPON;
break;
case MCAdConst.MediationId.MEDIATION_ID_MAX:
mediationNetwork = MediationNetwork.APPLOVIN_MAX;
break;
case MCAdConst.MediationId.MEDIATION_ID_ADMOB:
mediationNetwork = MediationNetwork.GOOGLE_ADMOB;
break;
default:
mediationNetwork = "Your Platform Name";
break;
}
AFAdRevenueData adRevenueData = new AFAdRevenueData(adInfo.getNetworkFirmName(),
mediationNetwork,
adInfo.getCurrency(),
adInfo.getRevenue()
);
// 收益参数配置
Map<String, Object> additionalParams = new HashMap<>();
additionalParams.put(AdRevenueScheme.COUNTRY, adInfo.getCountry());
additionalParams.put(AdRevenueScheme.AD_UNIT, adInfo.getNetworkPlacementId());
additionalParams.put(AdRevenueScheme.AD_TYPE, adInfo.getFormat().getLabel());
additionalParams.put(AdRevenueScheme.PLACEMENT, adInfo.getMediationPlacementId());
AppsFlyerLib.getInstance().logAdRevenue(adRevenueData, additionalParams);
}
});
- 如下示例code仅供参考,详情请参考SolarEngine官方文档
SEAdImpEventModel类参数说明需以官方的参数说明为准
mInterstitialAd.setRevenueListener(new MCAdRevenueListener() {
@Override
public void onAdRevenuePaid(MCAdInfo adInfo) {
SEAdImpEventModel seAdImpEventModel = new SEAdImpEventModel();
//变现平台名称
String adNetworkPlatform = adInfo.getNetworkFirmName();
//需将 adNetworkPlatform 的值转化为官方SEAdImpEventModel参数说明中定义的String值后进行使用
seAdImpEventModel.setAdNetworkPlatform("adNetworkPlatform");
//聚合平台标识
String mediationPlatform = adInfo.getMediationName();
//需将 mediationPlatform 的值转化为官方SEAdImpEventModel参数说明中定义的String值后进行使用
seAdImpEventModel.setMediationPlatform("mediationPlatform");
//展示广告的类型,以插屏广告为例adType = 1
seAdImpEventModel.setAdType(3);
//变现平台的应用ID,选填项,可以填SE SDK的appKey也可以不填
seAdImpEventModel.setAdNetworkAppID("---SE SDK的appKey---");
//变现平台的变现广告位ID
seAdImpEventModel.setAdNetworkADID(adInfo.getNetworkPlacementId());
//广告ECPM
seAdImpEventModel.setEcpm(adInfo.getEcpm());
//变现平台货币类型
seAdImpEventModel.setCurrencyType(adInfo.getCurrency());
//填充成功填TRUE即可
seAdImpEventModel.setRenderSuccess(true);
//如果需要设置变现广告事件的自定义属性可参官方文档示例,这里不再设置
SolarEngineManager.getInstance().trackAdImpression(seAdImpEventModel);
}
});