بینابینی پاداشدار نوعی قالب تبلیغاتی است که به شما امکان میدهد برای تبلیغاتی که بهطور خودکار در طول انتقال طبیعی برنامه ظاهر میشوند، پاداش ارائه دهید. برخلاف آگهیهای دارای پاداش، کاربران مجبور نیستند برای مشاهده یک بینابینی دارای پاداش، شرکت کنند.
پیش نیازها
- راهنمای شروع را کامل کنید.
پیاده سازی
مراحل اولیه برای ادغام تبلیغات بینابینی دارای پاداش به شرح زیر است:
- یک تبلیغ را بارگیری کنید
- [اختیاری] اعتبار سنجی تماس های SSV
- برای پاسخ به تماس ها ثبت نام کنید
- تبلیغ را نمایش دهید و رویداد پاداش را مدیریت کنید
یک تبلیغ را بارگیری کنید
بارگیری آگهی با استفاده از روش load(adUnitID:request)
در کلاس GADRewardedInterstitialAd
انجام می شود.
سویفت
SwiftUI
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)")
}
}
هدف-C
شناسه واحد تبلیغاتی خود را جایگزین adUnitID کنید.
[اختیاری] تأیید اعتبار سمت سرور (SSV) تماس های برگشتی
برنامههایی که به دادههای اضافی در تماسهای تأیید سمت سرور نیاز دارند، باید از ویژگی داده سفارشی تبلیغات پاداش استفاده کنند. هر مقدار رشته تنظیم شده روی یک شیء تبلیغاتی پاداش داده شده به پارامتر query custom_data
در SSV ارسال می شود. اگر مقدار داده سفارشی تنظیم نشده باشد، مقدار پارامتر query custom_data
در پاسخ تماس SSV وجود نخواهد داشت.
نمونه کد زیر نشان میدهد که چگونه دادههای سفارشی را بر روی یک شیء تبلیغاتی با پاداش قبل از درخواست آگهی تنظیم کنید.
سویفت
هدف-C
SAMPLE_CUSTOM_DATA_STRING با داده های سفارشی خود جایگزین کنید.
برای پاسخ به تماس ها ثبت نام کنید
برای دریافت اعلانهای رویدادهای ارائه، باید GADFullScreenContentDelegate
به ویژگی fullScreenContentDelegate
آگهی برگشتی اختصاص دهید:
سویفت
rewardedInterstitialAd?.fullScreenContentDelegate = self
SwiftUI
rewardedInterstitialAd?.fullScreenContentDelegate = self
هدف-C
self.rewardedInterstitialAd.fullScreenContentDelegate = self;
پروتکل GADFullScreenContentDelegate
هنگام تماس با موفقیت یا ناموفق ، و هنگامی که آن را برکنار می کند ، تماس های برگشتی را انجام می دهد. کد زیر نحوه پیاده سازی پروتکل و اختصاص آن به تبلیغ را نشان می دهد:
سویفت
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).")
}
SwiftUI
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
}
هدف-C
- (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.
}
}
SwiftUI
برای نمایش آگهی به رویدادهای رابط کاربری در نما گوش دهید.
var rewardedInterstitialBody: some View {
// ...
}
.onChange(
of: showAd,
perform: { newValue in
if newValue {
viewModel.showAd()
}
}
)
از مدل view، آگهی بینابینی پاداش را ارائه دهید:
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)
}
}
هدف-C
- (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.
}];
}
نمونه هایی در GitHub
نمونههای کامل آگهیهای بینابینی با پاداش را به زبان دلخواه خود مشاهده کنید:
مراحل بعدی
درباره حریم خصوصی کاربر بیشتر بیاموزید.