1. Điều kiện sử dụng
Trong game bắt buộc phải đã tích hợp
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
Bắt buộc phải có các class:
- AdjustImpressionTracking
- FirebaseImpressionTracking
- GSMImpressionTracking
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
Ví dụ game sử dụng Ironsource: thì tích thêm sử dụng IronsourceImpressionTracking
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());
}