🇻🇳
Falcon SDK
Vietnamese
Vietnamese
  • Falcon Core
    • 1. Cấu hình và cài đặt
      • Về FalconMain và Init SDK
    • 2. RemoteConfig và AB Testing
      • a. Ví dụ Remote Config
      • b. Ví dụ về abTesting và remote config
      • c. Xem biểu đồ phân tích
    • 3. Tính năng Force Update
      • Sửa giao diện popup Force Update
    • 4. Lịch sử thay đổi
  • Falcon Analytics
    • 1. Các hàm Log cơ bản
    • 2. Các hàm log tự động
    • 3. Log tự định nghĩa
    • 4. FPlayerInfoRepo
    • 5. QnA
    • 6. Cài đặt Appsflyer or Adjust
    • 7. Lịch sử thay đổi
  • Falcon Mediation
    • 1. Cấu hình và cài đặt
    • 2. Network settings
    • 3. Hướng dẫn sử dụng
    • 4. Lịch sử thay đổi
  • Consent Management Platform (CMP)
    • 1. Trường hợp không sử dụng FalconMediation
    • 2. Trường hợp có sử dụng FalconMediation
    • 3. Lịch sử thay đổi
  • Hướng dẫn chung
    • Hướng dẫn log revenue lên Firebase, Appsflyer, Adjust
    • Hướng dẫn lấy Falcon Key (FKey)
    • Hướng dẫn thêm game
  • Giải thích biểu đồ
    • 📓Tổng quan
    • 🔢Level
    • 💰InApp
    • 💰InApp Cohort
    • ▶️Advertisement
    • 🔄Resources Overview
    • ⬆️Source
    • ⬇️Sink
    • ⏱️Session
    • 📶Retention
    • 📉Funnel
    • 💹Dynamic Chart
    • 🛃Custom Dashboard
    • 🔁Flow Chart
    • ✅Evaluate AB Campaign
  • SDK 2.1.x (bản cũ)
    • I. Cấu hình và cài đặt
    • II. Falcon Analytics
      • DwhLogCache
      • Falcon AB Testing
      • Các hàm log tự động
      • QnA
Powered by GitBook
On this page
  • 1. Các định dạng quảng cáo của IronSource (LevelPlay)
  • 2. Các định dạng quảng cáo của Admob:
  • 3. Các định dạng quảng cáo của Max Mediation:
  1. Hướng dẫn chung

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);                
}

Previous3. Lịch sử thay đổiNextHướng dẫn lấy Falcon Key (FKey)

Last updated 5 months ago

Các định dạng quảng cáo của admob đều trả về nên trước log phải * 0.000001 để đưa về giá trị tính theo USD. Dưới đây là ví dụ log revenue cho định dạng Collapsible Banner của Admob. Các định dạng khác log tương tự:

Thực hiện log revenue khi sự kiện trả về. Lưu ý: . Nên cần phải có đoạn code check revenue > 0 trước khi log.

micro value
giá trị của revenue trả về có thể = -1 trong trường hợp bị lỗi