Log Impression

Dùng để log các impression của Ad từ Admob, Ironsource, MAX đưa lên Firebase, Adjust, GSM

1. Điều kiện sử dụng

2. Lưu ý

  • Các dự án cũ đã tự đẩy impression lên Firebase, Adjust, GSM, thì cần xóa bỏ các code độc lập đó.

3. Sử dụng

  • Đầu tiên cần tải package có tên: CSCMobiPlugin_LogImpression_[version]..unitypackage tải tại đây

  • Sau đó, tùy trong game sử dụng các Mediation nào thì sử dụng thêm các class tracking tương ứng:

    • Admob: Sử dụng class AdmobMediationTracking và AdmobNativeAdTracking

    • Ironsource: Sử dụng class IronsourceImpressionTracking

    • MAX: Sử dụng class MAXImpressionTracking

3.1 Admob

3.1.1 Đối với các loại AppOpen, BannerView, InterstitialAd, RewardedAd, RewardedInterstitialAd

  • Thực hiện bên trong event OnAdPaid

void LogImpression(AppOpenAd ad, AdValue adValue, Func<string> getTargetLevel, Func<string> getGroup = null, Func<string> getSubGroup = null, Func<string> getUserType = null)
//hoặc
void LogImpression(BannerView ad, AdValue adValue, Func<string> getTargetLevel, Func<string> getGroup = null, Func<string> getSubGroup = null, Func<string> getUserType = null)
//hoặc
void LogImpression(InterstitialAd ad, AdValue adValue, Func<string> getTargetLevel, Func<string> getGroup = null, Func<string> getSubGroup = null, Func<string> getUserType = null)
//hoặc
void LogImpression(RewardedAd ad, AdValue adValue, Func<string> getTargetLevel, Func<string> getGroup = null, Func<string> getSubGroup = null, Func<string> getUserType = null)
//hoặc
void LogImpression(RewardedInterstitialAd ad, AdValue adValue, Func<string> getTargetLevel, Func<string> getGroup = null, Func<string> getSubGroup = null, Func<string> getUserType = null)

Hoặc đối với loại Collapsible Banner

void LogImpressionCollapsibleBanner(BannerView ad, AdValue adValue, Func<string> getTargetLevel, Func<string> getGroup = null, Func<string> getSubGroup = null, Func<string> getUserType = null)

Các tham số:

  • ad (Required): là đối tượng Ad

  • adValue(Required): Là giá trị adValue của event ad.OnAdPaid

  • getTargetLevel(Required): Là function trả về targetLevel, phục vụ cho GSM Tracking

  • getGroup(Optional): Là function trả về giá trị group, phục vụ cho GSM Tracking

  • getSubGroup(Optional): Là function trả về subGroup, phục vụ cho GSM Tracking

  • getUserType(Optional): Là function trả về userType, phục vụ cho GSM Tracking

Code mẫu cho loại AppOpenAd (các loại ad khác tương tự)

private void RegisterEventHandlers(AppOpenAd ad)
{
    // Raised when the ad is estimated to have earned money.
    ad.OnAdPaid += (AdValue adValue) =>
    {
        Debug.Log(String.Format("App open ad paid {0} {1}.",
            adValue.Value,
            adValue.CurrencyCode));
        AdmobMediationTracking.LogImpression(ad, adValue,getTargetLevel:() => dataManager.Level.ToString());

    };
    //Other something code
}
public void LoadAd()
{
    AppOpenAd.Load(_adUnitId, adRequest, (AppOpenAd ad, LoadAdError error) =>
    {
        RegisterEventHandlers(ad);
    }
}

3.1.2 Đối với loại Collapsible Banner

  • Sử dụng class: AdmobMediationTracking

void LogImpressionCollapsibleBanner(BannerView ad, AdValue adValue, Func<string> getTargetLevel, Func<string> getGroup = null, Func<string> getSubGroup = null, Func<string> getUserType = null)

3.1.3 Đối với loại Native Ad

  • Sử dụng class: AdmobNativeAdTracking

  • Thực hiện bên trong OnPaidEvent

void LogImpression(NativeAd ad, AdValue adValue, Func<string> getTargetLevel, Func<string> getGroup = null, Func<string> getSubGroup = null, Func<string> getUserType = null)

Các tham số:

  • ad (Required): là đối tượng Ad

  • adValue(Required): Là giá trị adValue của event ad.OnPaidEvent

  • getTargetLevel(Required): Là function trả về targetLevel, phục vụ cho GSM Tracking

  • getGroup(Optional): Là function trả về giá trị group, phục vụ cho GSM Tracking

  • getSubGroup(Optional): Là function trả về subGroup, phục vụ cho GSM Tracking

  • getUserType(Optional): Là function trả về userType, phục vụ cho GSM Tracking

nativeAd.OnPaidEvent += HandleNativeAdOnPaidEvent;
private void HandleNativeAdOnPaidEvent(object sender, AdValueEventArgs args)
{
     AdmobNativeAdTracking.LogImpression(nativeAd, args.AdValue,getTargetLevel:() => dataManager.Level.ToString());
     Debug.Log("Native ad On Paid: Value Start: " + args.AdValue.Value + ", Value new: " + args.AdValue.Value / 1000000f + " - " + args.AdValue.CurrencyCode);
}

3.2 Ironsource

  • Sử dụng khi 1 impression của Ironsource được thành công

  • Sử dụng class: IronsourceImpressionTracking

void LogImpression(IronSourceImpressionData impressionData, Func<string> getTargetLevel, Func<string> getGroup = null, Func<string> getSubGroup = null, Func<string> getUserType = null)

Các tham số:

  • impressionData(Required): là giá trị impression nhận được khi có event OnImpressionDataReadyEvent từ Ironsource

  • getTargetLevel(Required): Là function trả về targetLevel, phục vụ cho GSM Tracking

  • getGroup(Optional): Là function trả về giá trị group, phục vụ cho GSM Tracking

  • getSubGroup(Optional): Là function trả về subGroup, phục vụ cho GSM Tracking

  • getUserType(Optional): Là function trả về userType, phục vụ cho GSM Tracking

Code mẫu:

IronSourceEvents.onImpressionDataReadyEvent += OnImpressionDataReadyEvent;
private void OnImpressionDataReadyEvent(IronSourceImpressionData impressionData)
{
    if (impressionData != null)
    {
        double value = (double)impressionData.revenue;       
        IronsourceImpressionTracking.LogImpression(impressionData, () => dataManager.Level.ToString());
        //Other something code
    }
}

3.3 MAX

  • Sử dụng khi 1 impression của MAX được thành công

  • Sử dụng class: MAXImpressionTracking

void LogImpression(MaxSdkBase.AdInfo impressionData, Func<string> getTargetLevel, Func<string> getGroup = null, Func<string> getSubGroup = null, Func<string> getUserType = null)

Các tham số:

  • impressionData(Required): là giá trị impression nhận được khi có event OnAdRevenuePaidEvent từ MAX

  • getTargetLevel(Required): Là function trả về targetLevel, phục vụ cho GSM Tracking

  • getGroup(Optional): Là function trả về giá trị group, phục vụ cho GSM Tracking

  • getSubGroup(Optional): Là function trả về subGroup, phục vụ cho GSM Tracking

  • getUserType(Optional): Là function trả về userType, phục vụ cho GSM Tracking

Code mẫu:

MaxSdkCallbacks.Interstitial.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent;
MaxSdkCallbacks.Rewarded.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent;
MaxSdkCallbacks.Banner.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent;
MaxSdkCallbacks.MRec.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent;
private void OnAdRevenuePaidEvent(string adUnitId, MaxSdkBase.AdInfo impressionData)
{
    MAXImpressionTracking.LogImpression(impressionData, () => dataManager.Level.ToString());
}

Last updated