Rewarded interstitial is a type of incentivized ad format that allows you offer rewards for ads that appear automatically during natural app transitions. Unlike rewarded ads, users aren't required to opt-in to view a rewarded interstitial.
پیشنیازها
- راهنمای شروع به کار را تکمیل کنید.
پیادهسازی
مراحل اصلی برای ادغام تبلیغات بینابینی پاداشدار به شرح زیر است:
- بارگذاری یک تبلیغ
- [اختیاری] اعتبارسنجی فراخوانیهای SSV
- برای تماسهای برگشتی ثبتنام کنید
- نمایش تبلیغ و مدیریت رویداد پاداش
بارگذاری یک تبلیغ
بارگذاری یک تبلیغ با استفاده از متد load(adUnitID:request) در کلاس GADRewardedInterstitialAd انجام میشود.
سویفت
سویفتیوآی
import GoogleMobileAds
class RewardedInterstitialViewModel: NSObject, ObservableObject,
FullScreenContentDelegate
{
@Published var coins = 0
private var rewardedInterstitialAd: RewardedInterstitialAd?
func loadAd() async {
do {
rewardedInterstitialAd = try await RewardedInterstitialAd.load(
with: "ca-app-pub-3940256099942544/6978759866", request: Request())
rewardedInterstitialAd?.fullScreenContentDelegate = self
} catch {
print(
"Failed to load rewarded interstitial ad with error: \(error.localizedDescription)")
}
}
هدف-سی
به جای adUnitID ، شناسه واحد تبلیغاتی خود را وارد کنید.
[اختیاری] اعتبارسنجی کالبکهای تأیید سمت سرور (SSV)
برنامههایی که در فراخوانیهای تأیید سمت سرور به دادههای اضافی نیاز دارند، باید از ویژگی دادههای سفارشی تبلیغات پاداشی استفاده کنند. هر مقدار رشتهای که روی یک شیء تبلیغ پاداشی تنظیم شود، به پارامتر پرسوجوی custom_data از فراخوانی SSV ارسال میشود. اگر هیچ مقدار داده سفارشی تنظیم نشود، مقدار پارامتر پرسوجوی custom_data در فراخوانی SSV وجود نخواهد داشت.
نمونه کد زیر نحوه تنظیم دادههای سفارشی روی یک شیء تبلیغ بینابینی پاداشدار، قبل از درخواست تبلیغ را نشان میدهد.
سویفت
هدف-سی
SAMPLE_CUSTOM_DATA_STRING را با دادههای سفارشی خود جایگزین کنید.
برای تماسهای برگشتی ثبتنام کنید
برای دریافت اعلانها برای رویدادهای ارائه، باید GADFullScreenContentDelegate را به ویژگی fullScreenContentDelegate تبلیغ برگردانده شده اختصاص دهید:
سویفت
rewardedInterstitialAd?.fullScreenContentDelegate = self
سویفتیوآی
rewardedInterstitialAd?.fullScreenContentDelegate = self
هدف-سی
self.rewardedInterstitialAd.fullScreenContentDelegate = self;
The GADFullScreenContentDelegate protocol handles callbacks for when the ad presents successfully or unsuccessfully, and when it is dismissed. The following code shows how to implement the protocol and assign it to the ad:
سویفت
func adDidRecordImpression(_ ad: FullScreenPresentingAd) {
print("\(#function) called.")
}
func adDidRecordClick(_ ad: FullScreenPresentingAd) {
print("\(#function) called.")
}
func adWillPresentFullScreenContent(_ ad: FullScreenPresentingAd) {
print("\(#function) called.")
}
func adWillDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
print("\(#function) called.")
}
func adDidDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
print("\(#function) called.")
// Clear the rewarded interstitial ad.
rewardedInterstitialAd = nil
}
func ad(
_ ad: FullScreenPresentingAd,
didFailToPresentFullScreenContentWithError error: Error
) {
print("\(#function) called with error: \(error.localizedDescription).")
}
سویفتیوآی
func adDidRecordImpression(_ ad: FullScreenPresentingAd) {
print("\(#function) called")
}
func adDidRecordClick(_ ad: FullScreenPresentingAd) {
print("\(#function) called")
}
func ad(
_ ad: FullScreenPresentingAd,
didFailToPresentFullScreenContentWithError error: Error
) {
print("\(#function) called")
}
func adWillPresentFullScreenContent(_ ad: FullScreenPresentingAd) {
print("\(#function) called")
}
func adWillDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
print("\(#function) called")
}
func adDidDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
print("\(#function) called")
// Clear the rewarded interstitial ad.
rewardedInterstitialAd = nil
}
هدف-سی
- (void)adDidRecordImpression:(id<GADFullScreenPresentingAd>)ad {
NSLog(@"%s called", __PRETTY_FUNCTION__);
}
- (void)adDidRecordClick:(id<GADFullScreenPresentingAd>)ad {
NSLog(@"%s called", __PRETTY_FUNCTION__);
}
- (void)adWillPresentFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
NSLog(@"%s called", __PRETTY_FUNCTION__);
}
- (void)adWillDismissFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
NSLog(@"%s called", __PRETTY_FUNCTION__);
}
- (void)adDidDismissFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
NSLog(@"%s called", __PRETTY_FUNCTION__);
// Clear the rewarded interstitial ad.
self.rewardedInterstitialAd = nil;
}
- (void)ad:(id)ad didFailToPresentFullScreenContentWithError:(NSError *)error {
NSLog(@"%s called with error: %@", __PRETTY_FUNCTION__, error.localizedDescription);
}
نمایش تبلیغ و مدیریت رویداد پاداش
هنگام ارائه تبلیغ خود، باید یک شیء GADUserDidEarnRewardHandler ارائه دهید تا پاداش را برای کاربر مدیریت کند.
کد زیر بهترین روش برای نمایش یک تبلیغ بینابینی جایزهدار را ارائه میدهد.
سویفت
func showRewardedInterstitialAd() {
guard let rewardedInterstitialAd = rewardedInterstitialAd else {
return print("Ad wasn't ready.")
}
// The UIViewController parameter is an optional.
rewardedInterstitialAd.present(from: nil) {
let reward = rewardedInterstitialAd.adReward
print("Reward received with currency \(reward.amount), amount \(reward.amount.doubleValue)")
// TODO: Reward the user.
}
}
سویفتیوآی
برای نمایش تبلیغ، به رویدادهای رابط کاربری در نما گوش دهید.
var rewardedInterstitialBody: some View {
// ...
}
.onChange(
of: showAd,
perform: { newValue in
if newValue {
viewModel.showAd()
}
}
)
تبلیغ بینابینی پاداشدار را از مدل نما نمایش دهید:
func showAd() {
guard let rewardedInterstitialAd = rewardedInterstitialAd else {
return print("Ad wasn't ready.")
}
rewardedInterstitialAd.present(from: nil) {
let reward = rewardedInterstitialAd.adReward
print("Reward amount: \(reward.amount)")
self.addCoins(reward.amount.intValue)
}
}
هدف-سی
- (void)showRewardedInterstitialAd {
[self.rewardedInterstitialAd presentFromRootViewController:self
userDidEarnRewardHandler:^{
GADAdReward *reward = self.rewardedInterstitialAd.adReward;
NSString *rewardMessage = [NSString
stringWithFormat:@"Reward received with "
@"currency %@ , amount %ld",
reward.type, [reward.amount longValue]];
NSLog(@"%@", rewardMessage);
// TODO: Reward the user.
}];
}
مثالها در گیتهاب
نمونههای کامل تبلیغات بینابینی پاداشدار را به زبان دلخواه خود مشاهده کنید:
مراحل بعدی
درباره حریم خصوصی کاربران بیشتر بدانید.