تبلیغات بینابینی

تبلیغات بینابینی، تبلیغات تمام صفحه ای هستند که تا زمانی که کاربر بسته شود، رابط کاربری یک برنامه را پوشش می دهد. آنها معمولاً در نقاط انتقال طبیعی در جریان یک برنامه نمایش داده می شوند، مانند بین فعالیت ها یا در طول مکث بین سطوح در یک بازی. هنگامی که یک برنامه یک تبلیغ بینابینی را نشان می دهد، کاربر این انتخاب را دارد که یا روی تبلیغ ضربه زده و به مقصد خود ادامه دهد یا آن را ببندد و به برنامه بازگردد.مطالعه موردی .

این راهنما به شما نشان می دهد که چگونه تبلیغات بینابینی را در یک برنامه iOS ادغام کنید.

پیش نیازها

همیشه با تبلیغات آزمایشی تست کنید

هنگام ساخت و آزمایش برنامه های خود، مطمئن شوید که از تبلیغات آزمایشی به جای تبلیغات زنده و تولیدی استفاده می کنید. عدم انجام این کار می تواند منجر به تعلیق حساب شما شود.

ساده‌ترین راه برای بارگیری آگهی‌های آزمایشی، استفاده از شناسه واحد آگهی آزمایشی اختصاصی ما برای فایل‌های بینابینی iOS است:
ca-app-pub-3940256099942544/4411468910

این به‌طور ویژه پیکربندی شده است تا تبلیغات آزمایشی را برای هر درخواست بازگرداند، و شما می‌توانید هنگام کدنویسی، آزمایش و اشکال‌زدایی از آن در برنامه‌های خود استفاده کنید. فقط مطمئن شوید که قبل از انتشار برنامه خود، آن را با شناسه واحد تبلیغاتی خود جایگزین کنید.

برای کسب اطلاعات بیشتر در مورد نحوه عملکرد تبلیغات آزمایشی SDK Ads Mobile، به Test Ads مراجعه کنید.

پیاده سازی

مراحل اصلی برای یکپارچه سازی تبلیغات بینابینی عبارتند از:

  1. یک تبلیغ را بارگیری کنید.
  2. برای پاسخ به تماس ها ثبت نام کنید.
  3. تبلیغ را نمایش دهید و رویداد پاداش را مدیریت کنید.

یک تبلیغ را بارگیری کنید

بارگیری یک تبلیغ با استفاده از روش استاتیک loadWithAdUnitID:request:completionHandler: در کلاس GADInterstitialAd انجام می شود. روش بارگیری به شناسه واحد تبلیغات شما، یک شی GADRequest و یک کنترل کننده تکمیل نیاز دارد که در صورت موفقیت یا عدم موفقیت بارگیری آگهی فراخوانی می شود. شی GADInterstitialAd بارگذاری شده به عنوان یک پارامتر در کنترل کننده تکمیل ارائه شده است. مثال زیر نحوه بارگذاری GADInterstitialAd را در کلاس ViewController نشان می دهد.

سریع

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  private var interstitial: GADInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()
    let request = GADRequest()
    GADInterstitialAd.load(withAdUnitID:"ca-app-pub-3940256099942544/4411468910",
                                request: request,
                      completionHandler: { [self] ad, error in
                        if let error = error {
                          print("Failed to load interstitial ad with error: \(error.localizedDescription)")
                          return
                        }
                        interstitial = ad
                      }
    )
  }
}

هدف-C

@import GoogleMobileAds;
@import UIKit;

@interface ViewController ()

@property(nonatomic, strong) GADInterstitialAd *interstitial;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  GADRequest *request = [GADRequest request];
  [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
                              request:request
                    completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
  }];
}

برای پاسخ به تماس ها ثبت نام کنید

برای دریافت اعلان‌ها برای رویدادهای ارائه، باید پروتکل GADFullScreenContentDelegate را پیاده‌سازی کنید و آن را به ویژگی fullScreenContentDelegate تبلیغ برگشتی اختصاص دهید. پروتکل GADFullScreenContentDelegate برای زمانی که تبلیغ با موفقیت یا ناموفق نمایش داده می شود و زمانی که رد می شود، پاسخ به تماس ها را کنترل می کند. کد زیر نحوه پیاده سازی پروتکل و اختصاص آن به تبلیغ را نشان می دهد:

سریع

class ViewController: UIViewController, GADFullScreenContentDelegate {

  private var interstitial: GADInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()
    let request = GADRequest()
    GADInterstitialAd.load(withAdUnitID:"ca-app-pub-3940256099942544/4411468910",
                                request: request,
                      completionHandler: { [self] ad, error in
                        if let error = error {
                          print("Failed to load interstitial ad with error: \(error.localizedDescription)")
                          return
                        }
                        interstitial = ad
                        interstitial?.fullScreenContentDelegate = self
                      }
    )
  }

  /// Tells the delegate that the ad failed to present full screen content.
  func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
    print("Ad did fail to present full screen content.")
  }

  /// Tells the delegate that the ad will present full screen content.
  func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad will present full screen content.")
  }

  /// Tells the delegate that the ad dismissed full screen content.
  func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad did dismiss full screen content.")
  }
}

هدف-C

@interface ViewController ()<GADFullScreenContentDelegate>

@property(nonatomic, strong) GADInterstitialAd *interstitial;

@end

@implementation ViewController
- (void)viewDidLoad {
  [super viewDidLoad];
  GADRequest *request = [GADRequest request];
  [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
                              request:request
                    completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
    self.interstitial.fullScreenContentDelegate = self;
  }];
}

/// Tells the delegate that the ad failed to present full screen content.
- (void)ad:(nonnull id<GADFullScreenPresentingAd>)ad
didFailToPresentFullScreenContentWithError:(nonnull NSError *)error {
    NSLog(@"Ad did fail to present full screen content.");
}

/// Tells the delegate that the ad will present full screen content.
- (void)adWillPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
    NSLog(@"Ad will present full screen content.");
}

/// Tells the delegate that the ad dismissed full screen content.
- (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
   NSLog(@"Ad did dismiss full screen content.");
}

GADInterstitialAd یک شی یک بار مصرف است. این بدان معنی است که وقتی یک تبلیغ بینابینی نشان داده شد، دیگر نمی توان آن را نشان داد. بهترین روش این است که یک تبلیغ بینابینی دیگر را در روش adDidDismissFullScreenContent: در GADFullScreenContentDelegate بارگیری کنید تا به محض رد شدن آگهی قبلی، آگهی بینابینی بعدی بارگیری شود.

نمایش آگهی

بینابینی ها باید در طول مکث های طبیعی در جریان برنامه نمایش داده شوند. بین سطوح یک بازی مثال خوبی است، یا پس از اتمام کار کاربر. در اینجا مثالی از نحوه انجام این کار در یکی از متدهای عمل در UIViewController شده است:

سریع

@IBAction func doSomething(_ sender: Any) {
  if interstitial != nil {
    interstitial.present(fromRootViewController: self)
  } else {
    print("Ad wasn't ready")
  }
}

هدف-C

- (IBAction)doSomething:(id)sender {
  ...
  if (self.interstitial) {
    [self.interstitial presentFromRootViewController:self];
  } else {
    NSLog(@"Ad wasn't ready");
  }
}

بهترین شیوه ها

در نظر بگیرید که آیا تبلیغات بینابینی نوع مناسبی از تبلیغات برای برنامه شما هستند یا خیر.
تبلیغات بینابینی در برنامه هایی با نقاط انتقال طبیعی بهترین کارایی را دارند. نتیجه گیری یک کار در یک برنامه، مانند اشتراک گذاری یک تصویر یا تکمیل یک سطح بازی، چنین نقطه ای را ایجاد می کند. از آنجایی که کاربر انتظار یک وقفه در عمل را دارد، ارائه یک تبلیغ بینابینی بدون ایجاد اختلال در تجربه او آسان است. مطمئن شوید که در نظر داشته باشید که در چه نقاطی از گردش کار برنامه خود تبلیغات بینابینی را نمایش می دهید و احتمالاً کاربر چگونه پاسخ می دهد.
به یاد داشته باشید که هنگام نمایش یک تبلیغ بینابینی، اقدام را متوقف کنید.
انواع مختلفی از تبلیغات بینابینی وجود دارد: متن، تصویر، ویدیو و موارد دیگر. مهم است که مطمئن شوید وقتی برنامه شما یک تبلیغ بینابینی را نمایش می‌دهد، استفاده از برخی منابع را نیز به حالت تعلیق در می‌آورد تا تبلیغ بتواند از آنها استفاده کند. به عنوان مثال، هنگامی که برای نمایش یک تبلیغ بینابینی تماس می گیرید، مطمئن شوید که خروجی صوتی تولید شده توسط برنامه شما را متوقف کنید. می‌توانید پخش صداها را در مدیریت رویداد adDidDismissFullScreenContent: که پس از پایان تعامل کاربر با آگهی فراخوانی می‌شود، از سر بگیرید. علاوه بر این، در حین نمایش آگهی، به طور موقت هرگونه کار محاسباتی شدید (مانند حلقه بازی) را متوقف کنید. این تضمین می کند که کاربر گرافیک آهسته یا بی پاسخ یا ویدئویی با لکنت را تجربه نکند.
زمان بارگذاری کافی را در نظر بگیرید.
همانطور که اطمینان از نمایش تبلیغات بینابینی در زمان مناسب بسیار مهم است، اطمینان از اینکه کاربر مجبور نیست منتظر بارگذاری آنها بماند نیز مهم است. بارگیری آگهی از قبل قبل از اینکه قصد نمایش آن را داشته باشید، می تواند اطمینان حاصل کند که برنامه شما یک آگهی بینابینی کاملاً بارگذاری شده در زمان نمایش آن آماده است.
کاربر را با تبلیغات غرق نکنید.
در حالی که افزایش تعداد تبلیغات بینابینی در برنامه شما ممکن است راهی عالی برای افزایش درآمد به نظر برسد، همچنین می تواند تجربه کاربر را کاهش دهد و نرخ کلیک را کاهش دهد. اطمینان حاصل کنید که کاربران آنقدر مکرر قطع نمی شوند که دیگر نتوانند از استفاده از برنامه شما لذت ببرند.
از پاسخ تماس تکمیل بار برای نشان دادن بینابینی استفاده نکنید.
این می تواند باعث تجربه کاربری ضعیف شود. در عوض، قبل از نیاز به نمایش آگهی، آن را از قبل بارگیری کنید. سپس canPresentFromRootViewController:error: را در GADInterstitialAd بررسی کنید تا ببینید آیا آماده نمایش است یا خیر.

منابع اضافی

نمونه هایی در GitHub

آموزش تصویری Garage Ads Mobile

داستان های موفقیت

مراحل بعدی