آگهیهای بومی داراییهای آگهی هستند که ازطریق مؤلفههای واسط کاربر که بومی پلاتفرم هستند به کاربران ارائه میشوند. این عناصر بااستفاده از همان کلاسهایی که قبلاً در تابلوهای داستان استفاده میکردید نمایش داده میشوند و میتوانند قالببندی شوند تا با طراحی دیداری برنامهتان مطابقت داشته باشند.
وقتی آگهی بومی بار میشود، برنامهتان شیء آگهیای دریافت میکند که حاوی داراییهای آن است، و سپس برنامه (و نه Google Mobile Ads SDK) مسئول نمایش آنها است.
بهطور کلی، دو بخش برای پیادهسازی موفق آگهیهای بومی وجود دارد: بار کردن آگهی بااستفاده از کیت توسعه نرمافزار و سپس نمایش محتوای آگهی در برنامه.
این صفحه نحوه استفاده از کیت توسعه نرمافزار را برای بار کردن آگهیهای بومی نشان میدهد.
پیشنیازها
پیشاز ادامه دادن، Google Mobile Ads SDK را راهاندازی کنید.
همیشه با آگهیهای آزمایشی آزمایش کنید
هنگام ساختن و آزمایش کردن برنامههایتان، حتماً از آگهیهای آزمایشی استفاده کنید نه آگهیهای زنده و تولیدی.
آسانترین راه برای بار کردن آگهیهای آزمایشی استفاده از شناسه واحد آگهی آزمایشی اختصاصی ما برای آگهیهای بومی در iOS است:
/21775744923/example/native
این واحد تبلیغات بهطور ویژه پیکربندی شده است تا برای هر درخواست، آگهیهای آزمایشی برگرداند و میتوانید از آن در برنامههای خودتان هنگام کدنویسی، آزمایش، و اشکالزدایی استفاده کنید. فقط مطمئن شوید که قبلاز انتشار برنامهتان، آن را با شناسه واحد آگهی خودتان جایگزین کنید.
برای جزئیات درباره آگهیهای آزمایشی Google Mobile Ads SDK، به فعال کردن آگهیهای آزمایشی مراجعه کنید.
بار کردن آگهیها
آگهیهای بومی با کلاس
GADAdLoader
بارگذاری میشوند که براساس پروتکل
GADAdLoaderDelegate
پیامها را به نمایندگان خود ارسال میکنند.
علاوهبر قالب بومی تعریفشده توسط سیستم، میتوانید قالبهای آگهی بومی سفارشی خودتان را نیز ایجاد کنید که میتوانند برای آگهیهای بومی فروش مستقیم استفاده شوند. قالبهای آگهی بومی سفارشی به شما امکان میدهند
دادههای ساختاریافته دلخواه را به برنامهتان ارسال کنید. این آگهیها با
کلاس GADCustomNativeAd نشان داده میشوند.
راهاندازی بارکننده آگهی
قبلاز اینکه بتوانید آگهی را بار کنید، باید بارکننده آگهی را مقداردهی اولیه کنید.
کد زیر نحوه مقداردهی اولیه GADAdLoader را نشان میدهد:
Swift
nativeAdUnitID را با شناسه واحد آگهیتان جایگزین کنید.
آبجکتیو-سی
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]];
روش
loadRequest:
در
GADAdLoader
همان اشیاء
GAMRequest
را بهعنوان برنماها و بینابینیها میپذیرد. میتوانید از اشیای درخواست برای افزودن
اطلاعات هدفیابی استفاده کنید، درست همانطور که
با انواع دیگر آگهیها استفاده میکنید.
بار کردن چند آگهی (اختیاری)
برای بار کردن چندین آگهی در یک درخواست واحد،
GADMultipleAdsAdLoaderOptions
شیء را هنگام مقداردهی اولیه GADAdLoader تنظیم کنید.
Swift
آبجکتیو-سی
تعداد آگهیها در هر درخواست به پنج محدود شده است و تضمینی وجود ندارد که «کیت توسعه نرمافزار» دقیقاً تعداد آگهیهای درخواستشده را برگرداند.
همه آگهیهای Google برگشتی با یکدیگر متفاوت خواهند بود، اگرچه آگهیهای از فضای آگهی رزروشده یا خریداران طرف سوم تضمین نمیشود که یکتا باشند.
اگر از میانجیگری استفاده میکنید، از کلاس GADMultipleAdsAdLoaderOptions استفاده نکنید، زیرا درخواستهای چند آگهی بومی برای شناسههای واحد آگهی که برای میانجیگری پیکربندی شدهاند کار نمیکنند.
تعیین زمان اتمام بار کردن
پساز اینکه برنامهای loadRequest: را فراخوانی کرد، میتواند نتایج درخواست را بااستفاده از
فراخوانیهای زیر دریافت کند:
adLoader:didFailToReceiveAdWithError:درGADAdLoaderDelegateadLoader:didReceiveNativeAd:درGADNativeAdLoaderDelegate
درخواست برای یک آگهی منجر به یک فراخوانی برای یکی از آن روشها خواهد شد.
درخواست برای چند آگهی منجر به حداقل یک فراخوانی برگشتی به روشهای بالا میشود، اما نه بیشتر از حداکثر تعداد آگهیهای درخواستشده.
علاوهبراین، 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.
}
روالهای مطلوب
هنگام بار کردن آگهیها، این قوانین را دنبال کنید.
برنامههایی که از آگهیهای بومی در فهرست استفاده میکنند باید فهرست آگهیها را پیشنهانسازی کنند.
هنگام پیشذخیره کردن آگهیها، حافظه پنهان را پاک کنید و پساز یک ساعت دوباره بار کنید.
تا زمانی که بار کردن درخواست قبلی تمام نشده است،
loadRequest:را دوباره درGADAdLoaderفراخوانی نکنید. این وضعیت باadLoaderDidFinishLoading:نشان داده میشود.ذخیره کردن آگهی بومی را فقط به موارد ضروری محدود کنید. برای مثال، هنگام پیشذخیرهسازی، فقط آگهیهایی را ذخیره کنید که بلافاصله در صفحه قابلمشاهده هستند. آگهیهای بومی ردپای حافظه بزرگی دارند و ذخیره کردن آگهیهای بومی در حافظه نهان بدون ازبین بردن آنها منجر به استفاده بیشازحد از حافظه میشود.
وقتی دیگر از آگهیهای بومی استفاده نمیشود، آنها را ازبین ببرید.
نمایش آگهی شما
پساز بار کردن آگهی، تنها کاری که باقی میماند نمایش آن به کاربران است. برای اطلاعات بیشتر، به Native advanced یا آگهیهای تمامصفحه بومی مراجعه کنید.