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
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
ativeAd.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