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

پلاتفرم را انتخاب کنید: Android iOS Flutter Unity Android (قدیمی)

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

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

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

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

پیش‌نیازها

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

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

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

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

ca-app-pub-3940256099942544/3986624511

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

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

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

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

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

قبل‌از اینکه بتوانید آگهی را بار کنید، باید بارکننده آگهی را مقداردهی اولیه کنید. کد زیر نحوه مقداردهی اولیه 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.
}

درخواست آگهی

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

Swift

adLoader.load(Request())

آبجکتیو-سی

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

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

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

برای بار کردن چند آگهی در یک درخواست، شیء 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.
}

دریافت اعلان برای رویدادهای آگهی بومی

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

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

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

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

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

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

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

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

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

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

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