อัปเดตล่าสุดเดือนกุมภาพันธ์ 2023
หน้านี้จะครอบคลุมการย้ายข้อมูลสำหรับเวอร์ชันปัจจุบันและเวอร์ชันก่อนหน้า
ย้ายข้อมูลจากเวอร์ชัน 7 ไปยังเวอร์ชัน 8
ตอนนี้รูปแบบเต็มหน้าจอใช้วิธีการโหลดแบบคงที่
ในปลั๊กอินเวอร์ชัน 7 โฆษณาคั่นระหว่างหน้าและโฆษณาที่มีการให้รางวัลมีเมธอดโหลดโฆษณาระดับ LoadAd()
ขณะที่โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัลและโฆษณาเปิดแอปมีวิธีการโหลดโฆษณาแบบคงที่แบบ Load()
ในเวอร์ชัน 8 โฆษณาเต็มหน้าจอทุกรูปแบบ (โฆษณาคั่นระหว่างหน้า โฆษณาที่มีการให้รางวัล โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล และโฆษณาเปิดแอป) จะมีวิธี Load()
แบบคงที่ในการโหลดโฆษณา ต่อไปนี้คือตัวอย่างของวิธี
โหลดโฆษณาคั่นระหว่างหน้า
เวอร์ชัน 8 (ปัจจุบัน)
#if UNITY_ANDROID
const string adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
const string adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
const string adUnitId = "unexpected_platform";
#endif
private InterstitialAd _interstitialAd;
private void LoadAd()
{
// Load an interstitial ad
InterstitialAd.Load(adUnitId, new AdRequest(),
(InterstitialAd ad, LoadAdError loadAdError) =>
{
if (loadAdError != null)
{
Debug.Log("Interstitial ad failed to load with error: " +
loadAdError.GetMessage());
return;
}
else if (ad == null)
{
Debug.Log("Interstitial ad failed to load.");
return;
}
Debug.Log("Interstitial ad loaded.");
_interstitialAd = ad;
});
}
เวอร์ชัน 7 (เดิม)
#if UNITY_ANDROID
const string adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
const string adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
const string adUnitId = "unexpected_platform";
#endif
private InterstitialAd _interstitialAd;
private void LoadInterstitialAd()
{
// Initialize an InterstitialAd.
_interstitialAd = new InterstitialAd(adUnitId);
// Called when an ad request has successfully loaded.
_interstitialAd.OnAdLoaded += HandleOnAdLoaded;
// Called when an ad request has failed to load.
_interstitialAd.OnAdFailedToLoad += HandleOnAdFailedToLoad;
// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();
// Load the interstitial with the request.
_interstitialAd.LoadAd(request);
}
private void HandleOnAdLoaded(object sender, EventArgs args)
{
Debug.Log("Interstitial ad loaded.");
}
private void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
if (args != null)
{
Debug.Log("Interstitial ad failed to load with error: " +
args.LoadAdError.GetMessage());
}
}
ต่อไปนี้คือตัวอย่างวิธีโหลดโฆษณาที่มีการให้รางวัล
เวอร์ชัน 8 (ปัจจุบัน)
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
const string adUnitId = "ca-app-pub-3940256099942544/5224354917";
#elif UNITY_IPHONE
const string adUnitId = "ca-app-pub-3940256099942544/1712485313";
#else
const string adUnitId = "unused";
#endif
private RewardedAd _rewardedAd;
private void LoadRewardedAd()
{
// Load a rewarded ad
RewardedAd.Load(adUnitId, new AdRequest(),
(Rewarded ad, LoadAdError loadError) =>
{
if (loadError != null)
{
Debug.Log("Rewarded ad failed to load with error: " +
loadError.GetMessage());
return;
}
else if (ad == null)
{
Debug.Log("Rewarded ad failed to load.");
return;
}
Debug.Log("Rewarded ad loaded.");
_rewardedAd = ad;
});
}
เวอร์ชัน 7 (เดิม)
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
const string adUnitId = "ca-app-pub-3940256099942544/5224354917";
#elif UNITY_IPHONE
const string adUnitId = "ca-app-pub-3940256099942544/1712485313";
#else
const string adUnitId = "unused";
#endif
private RewardedAd _rewardedAd;
private void LoadRewardedAd()
{
// Initialize an InterstitialAd.
_rewardedAd = new RewardedAd(adUnitId);
// Called when an ad request has successfully loaded.
_rewardedAd.OnAdLoaded += HandleOnAdLoaded;
// Called when an ad request has failed to load.
_rewardedAd.OnAdFailedToLoad += HandleOnAdFailedToLoad;
// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();
// Load the interstitial with the request.
_rewardedAd.LoadAd(request);
}
private void HandleOnAdLoaded(object sender, EventArgs args)
{
Debug.Log("Rewarded ad loaded.");
}
private void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
if (args != null)
{
Debug.Log("Rewarded ad failed to load with error: " +
args.LoadAdError.GetMessage());
}
}
ใช้ CanShowAd() เพื่อตรวจสอบความพร้อมในการแสดงโฆษณาแบบเต็มหน้าจอ
ในเวอร์ชัน 7 โฆษณาเต็มหน้าจอ (โฆษณาคั่นระหว่างหน้า โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล โฆษณาคั่นระหว่างหน้าที่มีการให้รางวัล และโฆษณาเปิดแอป) มีเมธอด IsLoaded()
ซึ่งจะแสดงผล true
หากมีการโหลดโฆษณา เนื่องจากวิธีโหลดโฆษณามีการเปลี่ยนแปลง คุณจะไม่มีสิทธิ์เข้าถึงออบเจ็กต์โฆษณาแบบเต็มหน้าจอในเวอร์ชัน 8 จนกว่าโฆษณาจะโหลด ซึ่งจะทำให้เมธอด IsLoaded()
ล้าสมัย
เวอร์ชัน 8 มีเมธอดใหม่ชื่อ CanShowAd()
ซึ่งแสดงผล true
หากยังแสดงโฆษณาได้ ต่อไปนี้คือตัวอย่างวิธีใช้ CanShowAd()
ในโฆษณาคั่นระหว่างหน้า
เวอร์ชัน 8 (ปัจจุบัน)
private InterstitialAd _interstitalAd;
public void ShowInterstitialAd()
{
if (_interstitalAd != null && _interstitalAd.CanShowAd())
{
_interstitalAd.Show();
}
else
{
Debug.Log("Interstitial ad cannot be shown.");
}
}
เวอร์ชัน 7 (เดิม)
private InterstitialAd _interstitalAd;
public void ShowInterstitialAd()
{
if (_interstitalAd != null && _interstitalAd.IsLoaded())
{
_interstitalAd.Show();
}
else
{
Debug.Log("Interstitial ad is not ready yet.");
}
}
ใช้ Show(Action)) เพื่อแสดงโฆษณาที่มีการให้รางวัล
ในปลั๊กอินเวอร์ชัน 7 โฆษณาที่มีการให้รางวัลมีเมธอด Show()
ที่มีเหตุการณ์ OnUserEarnedReward
แยกต่างหากเพื่อจัดการสัญญาณรางวัลของผู้ใช้ และโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัลมีเมธอด Show(Action<Reward>)
ที่มีโค้ดเรียกกลับในการจัดการสัญญาณรางวัลของผู้ใช้ ในเวอร์ชัน 8 รูปแบบโฆษณาคั่นระหว่างหน้าที่มีการให้รางวัลจะมีเมธอด Show(Action<Reward>)
พร้อมการติดต่อกลับในการจัดการการแจ้งเตือนรางวัลของผู้ใช้
ต่อไปนี้คือตัวอย่างวิธีแสดงโฆษณาที่มีการให้รางวัล
เวอร์ชัน 8 (ปัจจุบัน)
private RewardedAd _rewardedAd;
public void ShowRewardedAd()
{
if (_rewardedAd != null && _rewardedAd.CanShowAd())
{
_rewardedAd.Show((Reward reward) =>
{
Debug.Log("Rewarded ad granted a reward: " +
reward.Amount);
});
}
else
{
Debug.Log("Rewarded ad cannot be shown.");
}
}
เวอร์ชัน 7 (เดิม)
private RewardedAd _rewardedAd;
public void ShowRewardedAd()
{
if (_rewardedAd != null && _rewardedAd.CanShowAd())
{
_rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
_rewardedAd.Show());
}
else
{
Debug.Log("Rewarded ad is not ready yet.");
}
}
public void HandleUserEarnedReward(object sender, Reward reward)
{
Debug.Log("Rewarded ad granted a reward: " +
reward.Amount);
}
ตอนนี้ผู้รับมอบสิทธิ์เหตุการณ์โฆษณาใช้อาร์กิวเมนต์ประเภทหนึ่งๆ แล้ว
ใน API เวอร์ชัน 7 เราใช้ EventHandlers
เมื่อกำหนดผู้รับมอบสิทธิ์ของเหตุการณ์ ในเวอร์ชัน 8 เราได้ใช้ผู้รับมอบสิทธิ์ทั่วไปสำหรับเหตุการณ์โฆษณา ดังนั้นตอนนี้เหตุการณ์จะปล่อยค่าของเหตุการณ์โดยตรงโดยไม่ต้องรวมไว้ในคลาส EventArg
ต่อไปนี้คือตัวอย่างการใช้ OnAdPaid
(แทน OnPaidEvent
)
เวอร์ชัน 8 (ปัจจุบัน)
private BannerView _bannerView;
public void ConfigureBanner()
{
_bannerView.OnAdPaid += (AdValue value) =>
{
AdValue value = value;
};
}
เวอร์ชัน 7 (เดิม)
private BannerView _bannerView;
public void ConfigureBanner()
{
_bannerView.OnPaidEvent += (object sender, AdValueEventArg arg) =>
{
AdValue value = arg.Value;
};
}
รูปแบบโฆษณาสอดคล้องกับอินเทอร์เฟซแบบเดียวกันแล้ว
ในปลั๊กอินเวอร์ชัน 7 ชื่อเหตุการณ์ระหว่างรูปแบบโฆษณาแบบเต็มหน้าจอมีความคลาดเคลื่อน ในเวอร์ชัน 8 เราได้เปลี่ยนชื่อเมธอด API มากมายเพื่อให้สอดคล้องกับรูปแบบโฆษณาต่างๆ
ตารางต่อไปนี้แสดงการเปลี่ยนแปลงคลาสที่นำมาใช้ใน v8
BannerView | |
---|---|
v7 | v8 |
OnAdLoaded | OnBannerAdLoaded |
OnAdFailedToLoad | OnBannerAdLoadFailed |
OnAdOpening | OnAdFullScreenContentOpened |
OnAdClosed | OnAdFullScreenContentClosed |
OnPaidEvent | OnAdPaid |
InterstitialAd | |
LoadAd() | InterstitialAd.Load() |
InterstitialAd() | InterstitialAd.Load() |
OnAdLoaded | InterstitialAd.Load() |
OnAdFailedToLoad | InterstitialAd.Load() |
OnAdOpening | OnAdFullScreenContentOpened |
OnAdClosed | OnAdFullScreenContentClosed |
OnAdFailedToShow | OnAdFullScreenContentFailed |
OnAdDidRecordImpression | OnAdImpressionRecorded |
OnPaidEvent | OnAdPaid |
RewardedAd | |
LoadAd() | RewardedAd.Load() |
ContributorAd() | RewardedAd.Load() |
OnAdLoaded | RewardedAd.Load() |
OnAdFailedToLoad | RewardedAd.Load() |
OnAdOpening | OnAdFullScreenContentOpened |
OnAdClosed | OnAdFullScreenContentClosed |
OnAdFailedToShow | OnAdFullScreenContentFailed |
OnAdDidRecordImpression | OnAdImpressionRecorded |
OnPaidEvent | OnAdPaid |
แสดง() | แสดง() |
OnUserEarnedReward | แสดง() |
RewardedInterstitialAd | |
LoadAd() | RewardedInterstitialAd.Load() |
OnPaidEvent | OnAdPaid |
OnAdDidPresentFullScreenContent | OnAdFullScreenContentOpened |
OnAdDidDismissFullScreenContent | OnAdFullScreenContentClosed |
OnAdFailedToPresentFullScreenContent | OnAdFullScreenContentFailed |
OnAdDidRecordImpression | OnAdImpressionRecorded |
AppOpenAd | |
LoadAd() | AppOpenAd.Load() |
OnPaidEvent | OnAdPaid |
OnAdDidPresentFullScreenContent | OnAdFullScreenContentOpened |
OnAdDidDismissFullScreenContent | OnAdFullScreenContentClosed |
OnAdFailedToPresentFullScreenContent | OnAdFullScreenContentFailed |
OnAdDidRecordImpression | OnAdImpressionRecorded |
AdErrorEventArgs | |
AdErrorEventArgs.AdError | ใช้ AdError โดยตรง |
AdFailedToLoadEventArgs | |
AdFailedToLoadEventArgs.LoadAdError | ใช้ LoadAdError โดยตรง |
AdValueEventArgs | |
AdValueEventArgs.AdValue | ใช้ AdValue โดยตรง |