تبلیغات بومی

تبلیغات بومی دارایی‌های تبلیغاتی هستند که از طریق مؤلفه‌های رابط کاربری بومی پلتفرم به کاربران ارائه می‌شوند. آنها با استفاده از همان کلاس‌هایی که قبلاً در استوری‌بردهای خود استفاده می‌کردید نشان داده می‌شوند و می‌توانند برای مطابقت با طراحی بصری برنامه شما قالب‌بندی شوند.

وقتی یک تبلیغ بومی بارگیری می‌شود، برنامه شما یک شی تبلیغاتی دریافت می‌کند که حاوی دارایی‌های آن است و برنامه - به جای Google Mobile Ads SDK - مسئول نمایش آنهاست.

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

این صفحه نحوه استفاده از SDK برای بارگیری تبلیغات بومی را نشان می دهد.

پیش نیازها

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

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

ساده ترین راه برای بارگیری تبلیغات آزمایشی استفاده از شناسه واحد آگهی آزمایشی اختصاصی ما برای تبلیغات بومی در iOS است:

ca-app-pub-3940256099942544/3986624511

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

برای اطلاعات بیشتر در مورد نحوه عملکرد تبلیغات آزمایشی SDK تبلیغات موبایلی Google، به آگهی‌های آزمایشی مراجعه کنید.

بارگذاری تبلیغات

تبلیغات بومی با کلاس GADAdLoader بارگذاری می شوند که طبق پروتکل GADAdLoaderDelegate برای نمایندگان خود پیام ارسال می کنند.

بارگذاری آگهی را راه اندازی کنید

قبل از اینکه بتوانید یک تبلیغ را بارگیری کنید، باید بارگذاری آگهی را مقداردهی اولیه کنید. کد زیر نحوه راه اندازی اولیه GADAdLoader را نشان می دهد:

سویفت

adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    // The UIViewController parameter is optional.
    rootViewController: rootViewController,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

هدف-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    // The UIViewController parameter is nullable.
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

شما به یک شناسه واحد تبلیغات (می‌توانید از شناسه آزمایشی استفاده کنید)، ثابت‌هایی برای ارسال در آرایه adTypes برای تعیین قالب‌های بومی که می‌خواهید درخواست کنید، و هر گزینه‌ای که می‌خواهید در پارامتر options تنظیم کنید، نیاز دارید. لیست مقادیر ممکن برای پارامتر options را می توان در صفحه تنظیمات گزینه های تبلیغات بومی یافت.

آرایه adTypes باید حاوی این ثابت باشد:

نماینده لودر تبلیغات را پیاده سازی کنید

نماینده لودر تبلیغات باید پروتکل‌های مخصوص نوع تبلیغ شما را پیاده‌سازی کند. برای تبلیغات بومی، پروتکل GADNativeAdLoaderDelegate شامل پیامی است که هنگام بارگیری آگهی بومی برای نماینده ارسال می‌شود.

سویفت

public func adLoader(_ adLoader: GADAdLoader,
            didReceive nativeAd: GADNativeAd)

هدف-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd;

درخواست تبلیغات

هنگامی که GADAdLoader شما مقداردهی اولیه شد، متد loadRequest: آن را برای درخواست تبلیغ فراخوانی کنید:

سویفت

adLoader.load(GADRequest())

هدف-C

[self.adLoader loadRequest:[GADRequest request]];

متد loadRequest: در GADAdLoader همان اشیاء GADRequest را به عنوان بنرها و بینابینی ها می پذیرد. شما می توانید از اشیاء درخواست برای افزودن اطلاعات هدف استفاده کنید، درست مانند سایر انواع تبلیغات.

بارگیری تبلیغات متعدد (اختیاری)

برای بارگیری چند آگهی در یک درخواست واحد، شی GADMultipleAdsAdLoaderOptions را هنگام مقداردهی اولیه یک GADAdLoader تنظیم کنید.

سویفت

let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    // The UIViewController parameter is optional.
    rootViewController: self,
    adTypes: [ .native ],
    options: [ multipleAdOptions ])

هدف-C

GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
    [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    // The UIViewController parameter is nullable.
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ multipleAdsOptions ]];

تعداد آگهی‌ها در هر درخواست محدود شده است، و تضمین نمی‌شود که SDK تعداد دقیق آگهی‌های درخواستی را برگرداند.

تبلیغات بازگردانده شده Google همگی با یکدیگر متفاوت خواهند بود، اگرچه آگهی‌های موجودی رزرو شده یا خریداران شخص ثالث تضمین نمی‌شود که منحصر به فرد باشند.

اگر از میانجی‌گری استفاده می‌کنید، از کلاس GADMultipleAdsAdLoaderOptions استفاده نکنید، زیرا درخواست‌های چند آگهی بومی در حال حاضر برای شناسه‌های واحد تبلیغاتی که برای میانجی‌گری پیکربندی شده‌اند کار نمی‌کنند.

تعیین زمان پایان بارگیری

پس از اینکه یک برنامه با loadRequest: می‌تواند نتایج درخواست را با استفاده از تماس‌هایی به:

درخواست برای یک آگهی منجر به یک تماس با یکی از آن روش ها می شود.

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

علاوه بر این، GADAdLoaderDelegate پاسخ تماس adLoaderDidFinishLoading را ارائه می دهد. این روش نمایندگی نشان می‌دهد که یک بارکننده آگهی بارگیری تبلیغات را به پایان رسانده است و هیچ آگهی یا خطای دیگری برای درخواست گزارش نمی‌شود. در اینجا مثالی از نحوه استفاده از آن هنگام بارگیری چندین تبلیغ بومی در یک زمان آورده شده است:

سویفت

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdOptions.numberOfAds = 5;
    adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
        // The UIViewController parameter is optional.
        rootViewController: rootViewController,
        adTypes: [ .native ],
        options: [ multipleAdOptions ])

    adLoader.delegate = self
    adLoader.load(GADRequest())
  }

  func adLoader(_ adLoader: GADAdLoader,
       didReceive nativeAd: GADNativeAd) {
    // A native ad has loaded, and can be displayed.
  }

  func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
    // The adLoader has finished loading ads, and a new request can be sent.
  }

}

هدف-C

@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
      [[GADMultipleAdsAdLoaderOptions alloc] init];
  multipleAdsOptions.numberOfAds = 5;
  self.adLoader = [[GADAdLoader alloc]
        initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
      // The UIViewController parameter is nullable.
      rootViewController:rootViewController
                 adTypes:@[ GADAdLoaderAdTypeNative ]
                 options:@[ multipleAdsOptions ]];

  self.adLoader.delegate = self;
  [self.adLoader loadRequest:[GADRequest request]];
}

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd {
  // A native ad has loaded, and can be displayed.
}

- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
  // The adLoader has finished loading ads, and a new request can be sent.
}

@end

رسیدگی به درخواست های ناموفق

پروتکل های بالا پروتکل GADAdLoaderDelegate را گسترش می دهند، که پیامی را تعریف می کند که زمانی که تبلیغات بارگیری نمی شود ارسال می شود.

سویفت

public func adLoader(_ adLoader: GADAdLoader,
    didFailToReceiveAdWithError error: NSError)

هدف-C

- (void)adLoader:(GADAdLoader *)adLoader
    didFailToReceiveAdWithError:(NSError *)error;

از رویدادهای تبلیغاتی بومی مطلع شوید

برای اطلاع از رویدادهای مربوط به تعاملات تبلیغاتی بومی، ویژگی نمایندگی تبلیغ بومی را تنظیم کنید:

سویفت

nativeAd.delegate = self

هدف-C

nativeAd.delegate = self;

سپس GADNativeAdDelegate برای دریافت تماس های نماینده زیر پیاده سازی کنید:

سویفت

func nativeAdDidRecordImpression(_ nativeAd: GADNativeAd) {
  // The native ad was shown.
}

func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
  // The native ad was clicked on.
}

func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
  // The native ad will present a full screen view.
}

func nativeAdWillDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad will dismiss a full screen view.
}

func nativeAdDidDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad did dismiss a full screen view.
}

func nativeAdWillLeaveApplication(_ nativeAd: GADNativeAd) {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

هدف-C

- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
  // The native ad was shown.
}

- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  // The native ad was clicked on.
}

- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
  // The native ad will present a full screen view.
}

- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad will dismiss a full screen view.
}

- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad did dismiss a full screen view.
}

- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

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

هنگام بارگذاری تبلیغات از این قوانین پیروی کنید.

  • برنامه‌هایی که از تبلیغات بومی در فهرست استفاده می‌کنند، باید فهرست تبلیغات را از قبل ذخیره کنند.

  • هنگام پیش کش کردن تبلیغات، حافظه پنهان خود را پاک کنید و پس از یک ساعت دوباره بارگیری کنید.

  • loadRequest: که توسط GADAdLoader adLoaderDidFinishLoading:

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

  • تبلیغات بومی را زمانی که دیگر استفاده نمی کنید از بین ببرید.

تبلیغ خود را نمایش دهید

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