تبلیغات بومی

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

این راهنما به شما نشان می دهد که چگونه از Google Mobile Ads SDK برای پیاده سازی تبلیغات بومیدر یک برنامه iOS و همچنین برخی از موارد مهمی که در این راه باید در نظر بگیرید، استفاده کنید.

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

اگر قبلاً تبلیغات بومی را با موفقیت بارگیری می‌کنید، و فقط باید بدانید که چگونه آنها را نمایش دهید، به راحتی به الگوهای بومی یا راهنماهای پیشرفته بومی ما بروید.

پیش نیازها

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

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

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

ca-app-pub-3940256099942544/3986624511

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

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

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

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

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

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

سریع

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

هدف-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    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 را به عنوان بنرها و بینابینی ها می پذیرد. شما می توانید از اشیاء درخواست برای افزودن اطلاعات هدف استفاده کنید، درست مانند سایر انواع تبلیغات.

زمان درخواست تبلیغات

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

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

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

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

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

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

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

سریع

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdsOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdsOptions.numberOfAds = 5

    adLoader = GADAdLoader(adUnitID: YOUR_AD_UNIT_ID, rootViewController: self,
        adTypes: [.native],
        options: [multipleAdsOptions])
    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:YOUR_AD_UNIT_ID
          rootViewController:self
                     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 application to become inactive and
  // open a new application.
}

هدف-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 application to become inactive and
  // open a new application.
}

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

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

،

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

این راهنما به شما نشان می دهد که چگونه از Google Mobile Ads SDK برای پیاده سازی تبلیغات بومیدر یک برنامه iOS و همچنین برخی از موارد مهمی که در این راه باید در نظر بگیرید، استفاده کنید.

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

اگر قبلاً تبلیغات بومی را با موفقیت بارگیری می‌کنید، و فقط باید بدانید که چگونه آنها را نمایش دهید، به راحتی به الگوهای بومی یا راهنماهای پیشرفته بومی ما بروید.

پیش نیازها

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

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

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

ca-app-pub-3940256099942544/3986624511

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

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

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

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

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

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

سریع

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

هدف-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    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 را به عنوان بنرها و بینابینی ها می پذیرد. شما می توانید از اشیاء درخواست برای افزودن اطلاعات هدف استفاده کنید، درست مانند سایر انواع تبلیغات.

زمان درخواست تبلیغات

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

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

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

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

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

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

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

سریع

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdsOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdsOptions.numberOfAds = 5

    adLoader = GADAdLoader(adUnitID: YOUR_AD_UNIT_ID, rootViewController: self,
        adTypes: [.native],
        options: [multipleAdsOptions])
    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:YOUR_AD_UNIT_ID
          rootViewController:self
                     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 application to become inactive and
  // open a new application.
}

هدف-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 application to become inactive and
  // open a new application.
}

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

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