Hướng dẫn log revenue lên Firebase, Appsflyer, Adjust
1. Các định dạng quảng cáo của IronSource (LevelPlay)
Lắng nghe sự kiện (dùng chung cho tất cả các định dạng quảng cáo: banner, interstitial, rewarded)
IronSourceEvents.onImpressionDataReadyEvent += OnImpressionDataReadyEvent;
Thực hiện log revenue khi sự kiện trả về:
private static void OnImpressionDataReadyEvent(IronSourceImpressionData impressionData)
{
if (impressionData?.revenue == null) return;
Firebase.Analytics.Parameter[] adParameters = {
new Firebase.Analytics.Parameter("ad_platform", "ironSource"),
new Firebase.Analytics.Parameter("ad_source", impressionData.adNetwork),
new Firebase.Analytics.Parameter("ad_unit_name", impressionData.instanceName),
new Firebase.Analytics.Parameter("ad_format", impressionData.adUnit),
new Firebase.Analytics.Parameter("currency","USD"),
new Firebase.Analytics.Parameter("value", impressionData.revenue.Value)
};
FirebaseAnalytics.LogEvent("ad_impression", adParameters);
//Appsflyer
var dic = new Dictionary<string, string>
{
{ "ad_unit_name", impressionData.instanceName },
{ "ad_format", impressionData.adUnit }
};
//Version >= 6.15.0 (dùng trực tiếp SDK log)
var logRevenue = new AFAdRevenueData(impressionData.adNetwork, MediationNetwork.IronSource, "USD", impressionData.revenue.Value);
AppsFlyer.logAdRevenue(logRevenue, dic);
//Version <= 6.14.2 (phải tích hợp thêm Ad Revenue SDK Connector để log)
AppsFlyerAdRevenue.logAdRevenue(impressionData.adNetwork, AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeIronSource,
impressionData.revenue.Value, "USD", dic);
//Nếu dùng Adjust (Nếu dùng appsflyer thì bỏ qua phần này)
AdjustAdRevenue adjustAdRevenue = new AdjustAdRevenue(AdjustConfig.AdjustAdRevenueSourceIronSource);
adjustAdRevenue.setRevenue(impressionData.revenue.Value, "USD");
adjustAdRevenue.setAdRevenueNetwork(impressionData.adNetwork);
adjustAdRevenue.setAdRevenueUnit(impressionData.adUnit);
adjustAdRevenue.setAdRevenuePlacement(impressionData.placement);
Adjust.trackAdRevenue(adjustAdRevenue);
}
2. Các định dạng quảng cáo của Admob:
// Raised when the ad is estimated to have earned money.
_bannerView.OnAdPaid += (AdValue adValue) =>
{
if (adValue == null) return;
double value = adValue.Value * 0.000001f;
Firebase.Analytics.Parameter[] adParameters = {
new Firebase.Analytics.Parameter("ad_source", "admob"),
new Firebase.Analytics.Parameter("ad_format", "collapsible_banner"),
new Firebase.Analytics.Parameter("currency","USD"),
new Firebase.Analytics.Parameter("value", value)
};
FirebaseAnalytics.LogEvent("ad_impression", adParameters);
//Appsflyer
var dic = new Dictionary<string, string>
{
{ "ad_format", "collapsible_banner" }
};
//Version >= 6.15.0 (dùng trực tiếp SDK log)
var logRevenue = new AFAdRevenueData("Admob", MediationNetwork.GoogleAdMob, "USD", value);
AppsFlyer.logAdRevenue(logRevenue, dic);
//Version <= 6.14.2 (phải tích hợp thêm Ad Revenue SDK Connector để log)
AppsFlyerAdRevenue.logAdRevenue("Admob", AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeGoogleAdMob,
value, "USD", dic);
//Nếu dùng Adjust (Nếu dùng appsflyer thì bỏ qua phần này)
AdapterResponseInfo loadedAdapterResponseInfo = _bannerView.GetResponseInfo().GetLoadedAdapterResponseInfo();
AdjustAdRevenue adRevenue = new AdjustAdRevenue(AdjustConfig.AdjustAdRevenueSourceAdMob);
adRevenue.setRevenue(value, "USD");
adRevenue.setAdRevenueNetwork(loadedAdapterResponseInfo.AdSourceName);
Adjust.trackAdRevenue(adRevenue);
};
3. Các định dạng quảng cáo của Max Mediation:
Lắng nghe sự kiện OnAdRevenuePaidEvent cho những định dạng được sử dụng (định dạng nào không sử dụng thì bỏ qua):
MaxSdkCallbacks.Banner.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent;
MaxSdkCallbacks.Interstitial.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent;
MaxSdkCallbacks.Rewarded.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent;
private void OnAdRevenuePaidEvent(string message, MaxSdkBase.AdInfo adInfo)
{
if (adInfo == null) return;
if (adInfo.Revenue < 0) return;
Firebase.Analytics.Parameter[] adParameters = {
new Firebase.Analytics.Parameter("ad_platform", "Applovin"),
new Firebase.Analytics.Parameter("ad_source", adInfo.NetworkName),
new Firebase.Analytics.Parameter("ad_unit_name", adInfo.AdUnitIdentifier),
new Firebase.Analytics.Parameter("ad_format", adInfo.AdFormat),
new Firebase.Analytics.Parameter("currency","USD"),
new Firebase.Analytics.Parameter("value", adInfo.Revenue)
};
FirebaseAnalytics.LogEvent("ad_impression", adParameters);
//Appsflyer
var dic = new Dictionary<string, string>
{
{ "ad_unit_name", adInfo.AdUnitIdentifier },
{ "ad_format", adInfo.AdFormat }
};
//Version >= 6.15.0 (dùng trực tiếp SDK log)
var logRevenue = new AFAdRevenueData(adInfo.NetworkName, MediationNetwork.ApplovinMax, "USD", adInfo.Revenue);
AppsFlyer.logAdRevenue(logRevenue, dic);
//Version <= 6.14.2 (phải tích hợp thêm Ad Revenue SDK Connector để log)
AppsFlyerAdRevenue.logAdRevenue(adInfo.NetworkName, AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeApplovinMax,
adInfo.Revenue, "USD", dic);
//Nếu dùng Adjust (Nếu dùng appsflyer thì bỏ qua phần này)
var adRevenue = new AdjustAdRevenue(AdjustConfig.AdjustAdRevenueSourceAppLovinMAX);
adRevenue.setRevenue(adInfo.Revenue, "USD");
adRevenue.setAdRevenueNetwork(adInfo.NetworkName);
adRevenue.setAdRevenueUnit(adInfo.AdUnitIdentifier);
adRevenue.setAdRevenuePlacement(adInfo.Placement);
Adjust.trackAdRevenue(adRevenue);
}
Last updated