تبلیغات بینابینی، تبلیغات تمام صفحهای هستند که رابط کاربری یک برنامه را تا زمانی که توسط کاربر بسته شود، میپوشانند. آنها معمولاً در نقاط انتقال طبیعی در جریان یک برنامه، مانند بین فعالیتها یا در طول مکث بین سطوح یک بازی، نمایش داده میشوند. وقتی یک برنامه یک تبلیغ بینابینی را نشان میدهد، کاربر میتواند انتخاب کند که یا روی تبلیغ ضربه بزند و به مقصد خود ادامه دهد یا آن را ببندد و به برنامه بازگردد. مطالعه موردی .
این راهنما به شما نشان میدهد که چگونه با استفاده از Google Mobile Ads C++ SDK، تبلیغات بینابینی را در برنامههای اندروید و iOS ادغام کنید.
پیشنیازها
- شروع به کار را کامل کنید.
- (فقط اندروید) آشنایی با کار با ارجاعات JNI
jobject(به نکات JNI اندروید مراجعه کنید).
همیشه با تبلیغات آزمایشی تست کنید
هنگام ساخت و آزمایش برنامههای خود، مطمئن شوید که از تبلیغات آزمایشی به جای تبلیغات زنده و تولیدی استفاده میکنید. عدم انجام این کار میتواند منجر به مسدود شدن حساب شما شود.
سادهترین راه برای بارگذاری تبلیغات آزمایشی، استفاده از شناسه واحد تبلیغات آزمایشی اختصاصی ما برای تبلیغات بینابینی است که در هر پلتفرم دستگاه متفاوت است:
- اندروید:
ca-app-pub-3940256099942544/1033173712 - iOS:
ca-app-pub-3940256099942544/4411468910
آنها به طور ویژه پیکربندی شدهاند تا برای هر درخواست، تبلیغات آزمایشی را برگردانند و شما میتوانید هنگام کدنویسی، آزمایش و اشکالزدایی از آنها در برنامههای خود استفاده کنید. فقط قبل از انتشار برنامه، مطمئن شوید که آن را با شناسه واحد تبلیغاتی خود جایگزین میکنید.
برای اطلاعات بیشتر در مورد نحوه عملکرد تبلیغات آزمایشی SDK تبلیغات موبایل، به بخش تبلیغات آزمایشی مراجعه کنید.
پیادهسازی
مراحل اصلی برای ادغام تبلیغات بینابینی عبارتند از:
- یک تبلیغ بارگذاری کنید.
- برای تماسهای برگشتی ثبتنام کنید.
- نمایش تبلیغ و مدیریت رویدادهای چرخه حیات آن.
پیکربندی یک InterstitialAd
تبلیغات بینابینی در اشیاء InterstitialAd نمایش داده میشوند، بنابراین اولین قدم برای ادغام تبلیغات بینابینی در برنامه شما، ایجاد و مقداردهی اولیه یک شیء InterstitialAd است.
هدر زیر را به کد C++ برنامه خود اضافه کنید:
#include "firebase/gma/interstial_ad.h"
یک شیء
InterstitialAdرا تعریف و نمونهسازی کنید:firebase::gma::InterstitialAd* interstitial_ad; interstitial_ad = new firebase::gma::InterstitialAd();
نمونه
InterstitialAdرا با استفاده از نمای والد خود که به نوعAdParentتبدیل شده است، مقداردهی اولیه کنید. نمای والد یک ارجاع JNIjobjectبه یکActivityاندروید یا یک اشارهگر به یکUIViewiOS است.// my_ad_parent is a jobject reference to an Android Activity or // a pointer to an iOS UIView. firebase::gma::AdParent ad_parent = static_cast<firebase::gma::AdParent>(my_ad_parent); firebase::Future<void> result = interstitial_ad->Initialize(ad_parent);به عنوان جایگزینی برای حفظ آینده به عنوان یک متغیر، میتوانید به صورت دورهای وضعیت عملیات مقداردهی اولیه را با فراخوانی
InitializeLastResult()روی شیءInterstitialAdبررسی کنید. این میتواند برای پیگیری فرآیند مقداردهی اولیه در حلقه بازی سراسری شما مفید باشد.// Monitor the status of the future in your game loop: firebase::Future<void> result = interstitial_ad->InitializeLastResult(); if (result.status() == firebase::kFutureStatusComplete) { // Initialization completed. if(future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization successful. } else { // An error has occurred. } } else { // Initialization on-going. }
برای اطلاعات بیشتر در مورد کار با firebase::Future ، به بخش «استفاده از Futures برای نظارت بر وضعیت تکمیل فراخوانیهای متد» مراجعه کنید.
بارگذاری یک تبلیغ
بارگذاری یک تبلیغ با استفاده از متد LoadAd() روی شیء InterstitialAd انجام میشود. متد load مستلزم آن است که شیء InterstitialAd را مقداردهی اولیه کرده باشید و شناسه واحد تبلیغ و یک شیء AdRequest داشته باشید. یک firebase::Future برگردانده میشود که میتوانید از آن برای نظارت بر وضعیت و نتیجه عملیات بارگذاری استفاده کنید.
کد زیر نحوه بارگذاری یک تبلیغ را پس از راهاندازی موفقیتآمیز InterstitialAd نشان میدهد:
firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result;
load_ad_result = interstitial_ad->LoadAd(interstitial_ad_unit_id, ad_request);
برای تماسهای برگشتی ثبتنام کنید
برای دریافت اعلانهای مربوط به نمایش تبلیغات بینابینی و رویدادهای چرخه عمر، باید کلاس FullScreenContentListener ارثبری کنید. زیرکلاس سفارشی FullScreenContentListener شما میتواند از طریق متد InterstitialAd::SetFullScreenContentListener() ثبت شود و در صورت نمایش موفقیتآمیز یا ناموفق تبلیغ و همچنین لغو آن، فراخوانیهای مجدد دریافت خواهد کرد.
کد زیر نحوهی بسط دادن کلاس و اختصاص دادن آن به تبلیغ را نشان میدهد:
class ExampleFullScreenContentListener : public firebase::gma::FullScreenContentListener { public: ExampleFullScreenContentListener() {} void OnAdClicked() override { // This method is invoked when the user clicks the ad. } void OnAdDismissedFullScreenContent() override { // This method is invoked when the ad dismisses full screen content. } void OnAdFailedToShowFullScreenContent(const AdError& error) override { // This method is invoked when the ad failed to show full screen content. // Details about the error are contained within the AdError parameter. } void OnAdImpression() override { // This method is invoked when an impression is recorded for an ad. } void OnAdShowedFullScreenContent() override { // This method is invoked when the ad showed its full screen content. } }; ExampleFullScreenContentListener* full_screen_content_listener = new ExampleFullScreenContentListener(); interstitial_ad->SetFullScreenContentListener(full_screen_content_listener);
InterstitialAd یک شیء یکبار مصرف است. این بدان معناست که وقتی یک تبلیغ بینابینی نمایش داده میشود، دیگر نمیتوان آن را نمایش داد. بهترین روش این است که یک تبلیغ بینابینی دیگر را در متد OnAdDismissedFullScreenContent() از FullScreenContentListener خود بارگذاری کنید تا تبلیغ بینابینی بعدی به محض بسته شدن تبلیغ قبلی شروع به بارگیری کند.
نمایش تبلیغ
بینابینیها باید در طول مکثهای طبیعی در جریان یک برنامه نمایش داده شوند. بین مراحل یک بازی مثال خوبی است، یا پس از اینکه کاربر یک کار را انجام داد. در حالی که میتوان از FullScreenContentListener برای تعیین زمان نمایش محتوای تمام صفحه یک تبلیغ استفاده کرد، مقدار بازگشتی توسط Show() نیز نشان میدهد که تبلیغ با موفقیت نمایش داده شده است.
firebase::Future<void> result = interstitial_ad->Show();
بهترین شیوهها
- در نظر بگیرید که آیا تبلیغات بینابینی نوع مناسبی از تبلیغ برای اپلیکیشن شما هستند یا خیر.
- تبلیغات بینابینی در برنامههایی که نقاط انتقال طبیعی دارند، بهترین عملکرد را دارند. پایان یک کار در یک برنامه، مانند به اشتراک گذاشتن یک تصویر یا تکمیل یک مرحله بازی، چنین نقطهای را ایجاد میکند. از آنجا که کاربر انتظار وقفهای در روند کار دارد، ارائه یک تبلیغ بینابینی بدون ایجاد اختلال در تجربه او آسان است. حتماً در نظر بگیرید که در کدام نقاط از گردش کار برنامه خود، تبلیغات بینابینی را نمایش خواهید داد و کاربر احتمالاً چگونه به آن پاسخ خواهد داد.
- به یاد داشته باشید که هنگام نمایش یک تبلیغ بینابینی، عملیات را متوقف کنید.
- انواع مختلفی از تبلیغات بینابینی وجود دارد: متن، تصویر، ویدیو و موارد دیگر. مهم است که مطمئن شوید وقتی برنامه شما یک تبلیغ بینابینی را نمایش میدهد، استفاده از برخی منابع را نیز به حالت تعلیق در میآورد تا تبلیغ بتواند از آنها بهره ببرد. به عنوان مثال، وقتی فراخوانی برای نمایش یک تبلیغ بینابینی انجام میدهید، حتماً هرگونه خروجی صوتی تولید شده توسط برنامه خود را متوقف کنید. میتوانید پخش صداها را در متد
OnAdDismissedFullScreenContentازFullScreenContentListenerنصب شده خود از سر بگیرید که پس از پایان تعامل کاربر با تبلیغ، فراخوانی میشود. علاوه بر این، در نظر داشته باشید که هرگونه کار محاسباتی سنگین (مانند حلقه بازی) را هنگام نمایش تبلیغ به طور موقت متوقف کنید. این کار تضمین میکند که کاربر گرافیک کند یا بدون پاسخگویی یا ویدیوی دارای لکنت را تجربه نکند. - زمان بارگذاری کافی را در نظر بگیرید.
- همانطور که نمایش تبلیغات بینابینی در زمان مناسب مهم است، اطمینان از اینکه کاربر مجبور نیست برای بارگذاری آنها منتظر بماند نیز مهم است. بارگذاری تبلیغ از قبل قبل از نمایش آن میتواند تضمین کند که برنامه شما در زمان نمایش، یک تبلیغ بینابینی کاملاً بارگذاری شده آماده دارد.
- کاربر را در معرض تبلیغات قرار ندهید.
- اگرچه افزایش تعداد دفعات نمایش تبلیغات بینابینی در اپلیکیشن شما ممکن است راهی عالی برای افزایش درآمد به نظر برسد، اما میتواند تجربه کاربری را نیز خراب کند و نرخ کلیک را کاهش دهد. مطمئن شوید که کاربران آنقدر زیاد در کارشان وقفه ایجاد نشود که دیگر نتوانند از استفاده از اپلیکیشن شما لذت ببرند.
- از تابع آیندهی تکمیل بارگذاری برای نمایش بینابینی استفاده نکنید.
- این میتواند باعث ایجاد یک تجربه کاربری ضعیف شود. در عوض، قبل از اینکه نیاز به نمایش تبلیغ داشته باشید، آن را از قبل بارگذاری کنید.
منابع اضافی
مثال در گیتهاب
- کد منبع برنامهی شروع سریع نمونهی ما را در گیتهاب مشاهده کنید.
آموزشهای ویدیویی گاراژ تبلیغات موبایلی
داستانهای موفقیت
مراحل بعدی
- اگر هنوز واحد تبلیغات بینابینی خود را در رابط کاربری AdMob ایجاد نکردهاید، همین حالا آن را بسازید.
- درباره هدفگیری تبلیغات و دستورالعملهای تبلیغات بینابینی اطلاعات کسب کنید.