بار کردن آگهی بومی

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

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

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

این صفحه نحوه استفاده از کیت توسعه نرم‌افزار برای بار کردن آگهی‌های بومی را نشان می‌دهد.

پیش‌نیازها

پیش‌از ادامه دادن، Google Mobile Ads SDK را راه‌اندازی کنید.

همیشه با آگهی‌های آزمایشی آزمایش کنید

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

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

/21775744923/example/native

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

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

بار کردن آگهی‌ها

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

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

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

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

Swift

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  // To receive native ads, the ad loader's delegate must
  // conform to the NativeAdLoaderDelegate protocol.
  adTypes: [.native],
  // Use nil for default options.
  options: nil)
// Set the delegate before making an ad request.
adLoader.delegate = self

‫nativeAdUnitID را با شناسه واحد آگهی‌تان جایگزین کنید.

آبجکتیو-سی

self.adLoader =
    [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                       // The UIViewController parameter is optional.
                       rootViewController:self
                                  // To receive native ads, the ad loader's delegate must
                                  // conform to the NativeAdLoaderDelegate protocol.
                                  adTypes:@[ GADAdLoaderAdTypeNative ]
                                  // Use nil for default options.
                                  options:nil];
// Set the delegate before making an ad request.
self.adLoader.delegate = self;

‫kNativeAdUnitID را با شناسه واحد آگهی‌تان جایگزین کنید.

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

آرایه adTypes باید شامل یک یا چند مورد از ثابت‌های زیر باشد :

پیاده‌سازی نماینده بارکننده آگهی

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

Swift

func adLoader(_ adLoader: AdLoader, didReceive nativeAd: NativeAd) {
  // Set the delegate to receive notifications for interactions with the native ad.
  nativeAd.delegate = self

  // TODO: Display the native ad.
}

آبجکتیو-سی

- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {
  // Set the delegate to receive notifications for interactions with the native ad.
  nativeAd.delegate = self;

  // TODO: Display the native ad.
}

وقتی آگهی الگوی سفارشی بار می‌شود، پروتکل GADCustomNativeAdLoaderDelegate شامل پیامی است که به نماینده ارسال می‌شود.

Swift

func adLoader(_ adLoader: AdLoader, didReceive customNativeAd: CustomNativeAd) {
  // To be notified of events related to the custom native ad interactions, set the delegate
  // property of the native ad
  customNativeAd.delegate = self

  // TODO: Display the custom native ad.
}

آبجکتیو-سی

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveCustomNativeAd:(GADCustomNativeAd *)customNativeAd {
  // To be notified of events related to the custom native ad interactions, set the delegate
  // property of the native ad
  customNativeAd.delegate = self;

  // TODO: Display the custom native ad.
}

درخواست آگهی

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

Swift

adLoader.load(AdManagerRequest())

آبجکتیو-سی

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

روش در GADAdLoader loadRequest: همان GAMRequest اشیا را به‌عنوان برنمای آگهی و آگهی بینابینی می‌پذیرد. می‌توانید از اشیای درخواست برای افزودن اطلاعات هدف‌یابی استفاده کنید، درست همان‌طور که با انواع دیگر آگهی‌ها استفاده می‌کنید.

بار کردن چندین آگهی (اختیاری)

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

Swift

let multipleAdOptions = MultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5
adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  adTypes: [.native],
  options: [multipleAdOptions])

آبجکتیو-سی

GADMultipleAdsAdLoaderOptions *multipleAdOptions = [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdOptions.numberOfAds = 5;

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                                   // The UIViewController parameter is optional.
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ multipleAdOptions ]];

تعداد آگهی‌ها در هر درخواست به پنج محدود شده است و تضمینی وجود ندارد که «کیت توسعه نرم‌افزار» دقیقاً تعداد آگهی‌های درخواست‌شده را برگرداند.

همه آگهی‌های Google برگشتی با یکدیگر متفاوت خواهند بود، اگرچه آگهی‌های از فضای آگهی رزروشده یا خریداران طرف سوم تضمین نمی‌شود که یکتا باشند.

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

تعیین زمان اتمام بار کردن

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

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

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

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

Swift

func adLoaderDidFinishLoading(_ adLoader: AdLoader) {
  // The adLoader has finished loading ads.
}

آبجکتیو-سی

- (void)adLoaderDidFinishLoading:(GADAdLoader *)adLoader {
  // The adLoader has finished loading ads.
}

درخواست‌های ناموفق را مدیریت کنید

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

Swift

func adLoader(_ adLoader: AdLoader, didFailToReceiveAdWithError error: any Error) {
  // The adLoader failed to receive an ad.
}

آبجکتیو-سی

- (void)adLoader:(GADAdLoader *)adLoader didFailToReceiveAdWithError:(NSError *)error {
  // The adLoader failed to receive an ad.
}

از رویدادهای آگهی بومی مطلع شوید

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

Swift

nativeAd.delegate = self

آبجکتیو-سی

nativeAd.delegate = self;

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

Swift

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

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

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

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

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

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

آبجکتیو-سی

- (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.
}

روال‌های مطلوب

هنگام بار کردن آگهی‌ها، این قوانین را دنبال کنید.

  • برنامه‌هایی که از آگهی‌های بومی در فهرست استفاده می‌کنند باید فهرست آگهی‌ها را ازقبل در حافظه نهان ذخیره کنند.

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

  • تا زمانی که درخواست قبلی بارگیری آن کامل نشده است، همان‌طور که با adLoaderDidFinishLoading: نشان داده می‌شود، در GADAdLoader دوباره با loadRequest: تماس نگیرید.

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

  • وقتی دیگر از آگهی‌های بومی استفاده نمی‌شود، آن‌ها را ازبین ببرید.

نمایش آگهی شما

پس‌از بار کردن آگهی، تنها کاری که باقی می‌ماند نمایش آن به کاربران است. برای دیدن نحوه انجام این کار، به راهنمای «پیشرفته بومی» ما مراجعه کنید.