تبلیغات بومی داراییهای تبلیغاتی هستند که از طریق مؤلفههای رابط کاربری بومی پلتفرم به کاربران ارائه میشوند. آنها با استفاده از همان نوع نماهایی که قبلاً طرحبندیهای خود را با آنها میسازید نشان داده میشوند و میتوانند برای مطابقت با طراحی بصری تجربه کاربری که در آن زندگی میکنند، قالببندی شوند. از نظر کدنویسی، این بدان معناست که وقتی یک تبلیغ بومی بارگیری میشود، برنامه شما یک شی NativeAd
را دریافت میکند که حاوی داراییهای آن است و برنامه (بهجای Google Mobile Ads SDK) مسئول نمایش آنها است.
به طور کلی، دو بخش برای اجرای موفقیت آمیز تبلیغات بومی وجود دارد: بارگیری یک تبلیغ از طریق SDK و نمایش محتوای تبلیغات در برنامه شما. این صفحه مربوط به استفاده از SDK برای بارگیری تبلیغات بومیاست. تبلیغات بومی
پیش نیازها
- Google Mobile Ads SDK را به تنهایی یا به عنوان بخشی از Firebase وارد کنید.
یک آگهی را بارگیری کنید
تبلیغات بومی از طریق کلاس AdLoader
بارگیری می شوند، که دارای کلاس Builder
مخصوص به خود است تا در حین ایجاد آن را سفارشی کند. با افزودن شنوندگان به AdLoader
در حین ساخت آن، یک برنامه مشخص می کند که چه نوع تبلیغات بومی برای دریافت آماده است. سپس AdLoader
فقط آن انواع را درخواست می کند.
یک AdLoader بسازید
کد زیر نحوه ساخت AdLoader
را نشان می دهد که می تواند تبلیغات بومی را بارگیری کند:
جاوا
AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110") .forNativeAd(new NativeAd.OnNativeAdLoadedListener() { @Override public void onNativeAdLoaded(NativeAd NativeAd) { // Show the ad. } }) .withAdListener(new AdListener() { @Override public void onAdFailedToLoad(LoadAdError adError) { // Handle the failure by logging, altering the UI, and so on. } }) .withNativeAdOptions(new NativeAdOptions.Builder() // Methods in the NativeAdOptions.Builder class can be // used here to specify individual options settings. .build()) .build();
کاتلین
val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") .forNativeAd { ad : NativeAd -> // Show the ad. } .withAdListener(object : AdListener() { override fun onAdFailedToLoad(adError: LoadAdError) { // Handle the failure by logging, altering the UI, and so on. } }) .withNativeAdOptions(NativeAdOptions.Builder() // Methods in the NativeAdOptions.Builder class can be // used here to specify individual options settings. .build()) .build()
برای قالب NativeAd آماده شوید
اولین روش فوق مسئول آماده سازی AdLoader
برای قالب NativeAd است:
-
forNativeAd()
- فراخوانی این روش،
AdLoader
را برای درخواست تبلیغات بومی پیکربندی می کند. هنگامی که یک تبلیغ با موفقیت بارگیری شد،onNativeAdLoaded()
شی شنونده فراخوانی می شود.
وقتی AdLoader
درخواست تبلیغ میکند، Google تبلیغی را انتخاب میکند و برمیگرداند که بازده ناشر را به حداکثر میرساند.
از AdListener با AdLoader استفاده کنید
در طول ایجاد AdLoader
بالا، تابع withAdListener
یک AdListener
را تنظیم می کند.
این مرحله اختیاری است. این روش یک AdListener
را بهعنوان پارامتر تنها خود میگیرد، که در صورت وقوع رویدادهای چرخه حیات آگهی، از AdLoader
تماس دریافت میکند:
جاوا
.withAdListener(new AdListener() { // AdListener callbacks can be overridden here. })
کاتلین
.withAdListener(object : AdListener() { // AdListener callbacks can be overridden here. })
در حال بارگذاری تبلیغات
پس از اتمام ساخت AdLoader
، زمان استفاده از آن برای بارگیری تبلیغات است. دو روش برای این کار وجود دارد: loadAd()
و loadAds()
.
loadAd()
درخواستی برای یک آگهی ارسال می کند:
-
loadAd()
- این روش درخواست یک آگهی را ارسال می کند.
جاوا
adLoader.loadAd(new AdRequest.Builder().build());
کاتلین
adLoader.loadAd(AdRequest.Builder().build())
loadAds()
درخواستی برای چندین آگهی (حداکثر 5) ارسال می کند:
جاوا
adLoader.loadAds(new AdRequest.Builder().build(), 3);
کاتلین
adLoader.loadAds(AdRequest.Builder().build(), 3)
هر دوی این روش ها یک شی AdRequest
را به عنوان اولین پارامتر خود می گیرند. این همان کلاس AdRequest
است که توسط بنرها و مطالب بینابینی استفاده می شود، و شما می توانید از روش های کلاس AdRequest
برای افزودن اطلاعات هدف استفاده کنید، درست مانند سایر قالب های تبلیغاتی.
loadAds()
یک پارامتر اضافی می گیرد: تعداد تبلیغاتی که SDK باید برای بارگذاری درخواست تلاش کند. این تعداد حداکثر در 5 عدد محدود شده است، و تضمین نمی شود که SDK تعداد دقیق تبلیغات درخواست شده را برگرداند. اگر چندین آگهی با یک فراخوانی به loadAds()
شوند، آنها با یکدیگر متفاوت خواهند بود.
پس از فراخوانی به loadAd()
، یک فراخوان منفرد به متدهای شنونده تعریف شده در بالا برای ارائه شیء تبلیغاتی بومی یا گزارش یک خطا انجام می شود.
پس از تماس با loadAds()
، چندین تماس از این قبیل انجام خواهد شد (حداقل یک مورد و نه بیشتر از تعداد تبلیغات درخواستی). برنامههایی که چندین آگهی درخواست میکنند باید AdLoader.isLoading()
را در اجرای callback خود فراخوانی کنند تا مشخص کنند که آیا فرآیند بارگیری به پایان رسیده است یا خیر.
در اینجا یک مثال نشان می دهد که چگونه isLoading()
را در پاسخ به تماس onNativeAdLoaded()
بررسی کنید:
جاوا
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") .forNativeAd(new NativeAd.OnNativeAdLoadedListener() { @Override public void onNativeAdLoaded(NativeAd ad) { ... // some code that displays the ad. ... if (adLoader.isLoading()) { // The AdLoader is still loading ads. // Expect more adLoaded or onAdFailedToLoad callbacks. } else { // The AdLoader has finished loading ads. } } }).build(); adLoader.loadAds(new AdRequest.Builder().build(), 3);
کاتلین
lateinit var adLoader: AdLoader ... adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") .forNativeAd { ... // some code that displays the ad. ... if (adLoader.isLoading) { // The AdLoader is still loading ads. // Expect more adLoaded or onAdFailedToLoad callbacks. } else { // The AdLoader has finished loading ads. } }.build() adLoader.loadAds(AdRequest.Builder().build(), 3)
تمیز کردن
حتماً از متد destroy()
struct در تبلیغات بومی بارگذاری شده استفاده کنید. این کار منابع استفاده شده را آزاد می کند و از نشت حافظه جلوگیری می کند.
اطمینان حاصل کنید که تمام مراجع NativeAd
در متد onDestroy()
فعالیت شما از بین رفته است.
در پاسخ به تماس onNativeAdLoaded
خود، مطمئن شوید که هر گونه تبلیغات بومی موجود را که ارجاع داده نمی شود، از بین ببرید.
یکی دیگر از بررسی های کلیدی این است که آیا اکتیویتی از بین رفته است یا خیر، در آگهی برگشتی destroy()
را فراخوانی کنید و بلافاصله برگردید:
جاوا
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") .forNativeAd(new NativeAd.OnNativeAdLoadedListener() { @Override public void onNativeAdLoaded(NativeAd ad) { // If this callback occurs after the activity is destroyed, you // must call destroy and return or you may get a memory leak. // Note `isDestroyed()` is a method on Activity. if (isDestroyed()) { ad.destroy(); return; } ... } }).build();
کاتلین
lateinit var adLoader: AdLoader ... adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") .forNativeAd { nativeAd -> // If this callback occurs after the activity is destroyed, you // must call destroy and return or you may get a memory leak. // Note `isDestroyed` is a method on Activity. if (isDestroyed) { nativeAd.destroy() return@forNativeAd } ... }.build()
همیشه با تبلیغات آزمایشی تست کنید
هنگام ساخت و آزمایش برنامه های خود، مطمئن شوید که از تبلیغات آزمایشی به جای تبلیغات زنده و تولیدی استفاده می کنید. عدم انجام این کار می تواند منجر به تعلیق حساب شما شود.
ساده ترین راه برای بارگیری تبلیغات آزمایشی استفاده از شناسه واحد آگهی آزمایشی اختصاصی ما برای Native Advanced در Android است:
ca-app-pub-3940256099942544/2247696110
این بهطور ویژه پیکربندی شده است تا تبلیغات آزمایشی را برای هر درخواست بازگرداند، و شما میتوانید از آن در برنامههای خود هنگام کدنویسی، آزمایش و اشکالزدایی استفاده کنید. فقط مطمئن شوید که قبل از انتشار برنامه خود، آن را با شناسه واحد تبلیغاتی خود جایگزین کرده اید.
برای اطلاعات بیشتر درباره نحوه عملکرد تبلیغات آزمایشی SDK Ads Mobile، به Test Ads مراجعه کنید.
زمان درخواست تبلیغات
برنامههایی که تبلیغات بومی را نمایش میدهند میتوانند از قبل از زمانی که واقعاً نمایش داده شوند، آنها را درخواست کنند. در بسیاری از موارد، این عمل توصیه شده است. برای مثال، برنامهای که فهرستی از آیتمها با تبلیغات بومی ترکیب شده را نمایش میدهد، میتواند آگهیهای بومی را برای کل فهرست بارگیری کند، زیرا میداند که برخی تنها پس از پیمایش کاربر نمایش داده میشوند و برخی ممکن است اصلاً نمایش داده نشوند.
شتاب سخت افزاری برای تبلیغات ویدیویی
برای اینکه تبلیغات ویدیویی با موفقیت در بازدیدهای تبلیغاتی بومی شما نمایش داده شود، شتاب سخت افزاری باید فعال باشد.
شتاب سختافزاری بهطور پیشفرض فعال است، اما برخی از برنامهها ممکن است آن را غیرفعال کنند. اگر این مورد در مورد برنامه شما صدق می کند، توصیه می کنیم شتاب سخت افزاری را برای کلاس های Activity که از تبلیغات استفاده می کنند فعال کنید.
فعال کردن شتاب سخت افزاری
اگر برنامه شما با روشن شدن جهانی شتاب سخت افزاری به درستی رفتار نمی کند، می توانید آن را برای فعالیت های فردی نیز کنترل کنید. برای فعال یا غیرفعال کردن شتاب سخت افزاری، می توانید از ویژگی android:hardwareAccelerated
برای عناصر <application>
و <activity>
در AndroidManifest.xml
خود استفاده کنید. مثال زیر شتاب سخت افزاری را برای کل برنامه فعال می کند اما آن را برای یک فعالیت غیرفعال می کند:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
برای اطلاعات بیشتر در مورد گزینه های کنترل شتاب سخت افزاری، راهنمای شتاب HW را ببینید. توجه داشته باشید که اگر Activity غیرفعال باشد، نماهای تبلیغاتی منفرد را نمی توان برای شتاب سخت افزاری فعال کرد، بنابراین خود Activity باید شتاب سخت افزاری را فعال کند.
نمایش NativeAd
هنگامی که یک تبلیغ را بارگذاری کردید، تنها چیزی که باقی می ماند نمایش آن برای کاربران است. برای مشاهده نحوه انجام، به راهنمای پیشرفته بومی ما بروید.
,
تبلیغات بومی داراییهای تبلیغاتی هستند که از طریق مؤلفههای رابط کاربری بومی پلتفرم به کاربران ارائه میشوند. آنها با استفاده از همان نوع نماهایی که قبلاً طرحبندیهای خود را با آنها میسازید نشان داده میشوند و میتوانند برای مطابقت با طراحی بصری تجربه کاربری که در آن زندگی میکنند، قالببندی شوند. از نظر کدنویسی، این بدان معناست که وقتی یک تبلیغ بومی بارگیری میشود، برنامه شما یک شی NativeAd
را دریافت میکند که حاوی داراییهای آن است و برنامه (بهجای Google Mobile Ads SDK) مسئول نمایش آنها است.
به طور کلی، دو بخش برای اجرای موفقیت آمیز تبلیغات بومی وجود دارد: بارگیری یک تبلیغ از طریق SDK و نمایش محتوای تبلیغات در برنامه شما. این صفحه مربوط به استفاده از SDK برای بارگیری تبلیغات بومیاست. تبلیغات بومی
پیش نیازها
- Google Mobile Ads SDK را به تنهایی یا به عنوان بخشی از Firebase وارد کنید.
یک آگهی را بارگیری کنید
تبلیغات بومی از طریق کلاس AdLoader
بارگیری می شوند، که دارای کلاس Builder
مخصوص به خود است تا در حین ایجاد آن را سفارشی کند. با افزودن شنوندگان به AdLoader
در حین ساخت آن، یک برنامه مشخص می کند که چه نوع تبلیغات بومی برای دریافت آماده است. سپس AdLoader
فقط آن انواع را درخواست می کند.
یک AdLoader بسازید
کد زیر نحوه ساخت AdLoader
را نشان می دهد که می تواند تبلیغات بومی را بارگیری کند:
جاوا
AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110") .forNativeAd(new NativeAd.OnNativeAdLoadedListener() { @Override public void onNativeAdLoaded(NativeAd NativeAd) { // Show the ad. } }) .withAdListener(new AdListener() { @Override public void onAdFailedToLoad(LoadAdError adError) { // Handle the failure by logging, altering the UI, and so on. } }) .withNativeAdOptions(new NativeAdOptions.Builder() // Methods in the NativeAdOptions.Builder class can be // used here to specify individual options settings. .build()) .build();
کاتلین
val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") .forNativeAd { ad : NativeAd -> // Show the ad. } .withAdListener(object : AdListener() { override fun onAdFailedToLoad(adError: LoadAdError) { // Handle the failure by logging, altering the UI, and so on. } }) .withNativeAdOptions(NativeAdOptions.Builder() // Methods in the NativeAdOptions.Builder class can be // used here to specify individual options settings. .build()) .build()
برای قالب NativeAd آماده شوید
اولین روش فوق مسئول آماده سازی AdLoader
برای قالب NativeAd است:
-
forNativeAd()
- فراخوانی این روش،
AdLoader
را برای درخواست تبلیغات بومی پیکربندی می کند. هنگامی که یک تبلیغ با موفقیت بارگیری شد،onNativeAdLoaded()
شی شنونده فراخوانی می شود.
وقتی AdLoader
درخواست تبلیغ میکند، Google تبلیغی را انتخاب میکند و برمیگرداند که بازده ناشر را به حداکثر میرساند.
از AdListener با AdLoader استفاده کنید
در طول ایجاد AdLoader
بالا، تابع withAdListener
یک AdListener
را تنظیم می کند.
این مرحله اختیاری است. این روش یک AdListener
را بهعنوان پارامتر تنها خود میگیرد، که در صورت وقوع رویدادهای چرخه حیات آگهی، از AdLoader
تماس دریافت میکند:
جاوا
.withAdListener(new AdListener() { // AdListener callbacks can be overridden here. })
کاتلین
.withAdListener(object : AdListener() { // AdListener callbacks can be overridden here. })
در حال بارگذاری تبلیغات
پس از اتمام ساخت AdLoader
، زمان استفاده از آن برای بارگیری تبلیغات است. دو روش برای این کار وجود دارد: loadAd()
و loadAds()
.
loadAd()
درخواستی برای یک آگهی ارسال می کند:
-
loadAd()
- این روش درخواست یک آگهی را ارسال می کند.
جاوا
adLoader.loadAd(new AdRequest.Builder().build());
کاتلین
adLoader.loadAd(AdRequest.Builder().build())
loadAds()
درخواستی برای چندین آگهی (حداکثر 5) ارسال می کند:
جاوا
adLoader.loadAds(new AdRequest.Builder().build(), 3);
کاتلین
adLoader.loadAds(AdRequest.Builder().build(), 3)
هر دوی این روش ها یک شی AdRequest
را به عنوان اولین پارامتر خود می گیرند. این همان کلاس AdRequest
است که توسط بنرها و مطالب بینابینی استفاده می شود، و شما می توانید از روش های کلاس AdRequest
برای افزودن اطلاعات هدف استفاده کنید، درست مانند سایر قالب های تبلیغاتی.
loadAds()
یک پارامتر اضافی می گیرد: تعداد تبلیغاتی که SDK باید برای بارگذاری درخواست تلاش کند. این تعداد حداکثر در 5 عدد محدود شده است، و تضمین نمی شود که SDK تعداد دقیق تبلیغات درخواست شده را برگرداند. اگر چندین آگهی با یک فراخوانی به loadAds()
شوند، آنها با یکدیگر متفاوت خواهند بود.
پس از فراخوانی به loadAd()
، یک فراخوان منفرد به متدهای شنونده تعریف شده در بالا برای ارائه شیء تبلیغاتی بومی یا گزارش یک خطا انجام می شود.
پس از تماس با loadAds()
، چندین تماس از این قبیل انجام خواهد شد (حداقل یک مورد و نه بیشتر از تعداد تبلیغات درخواستی). برنامههایی که چندین آگهی درخواست میکنند باید AdLoader.isLoading()
را در اجرای callback خود فراخوانی کنند تا مشخص کنند که آیا فرآیند بارگیری به پایان رسیده است یا خیر.
در اینجا یک مثال نشان می دهد که چگونه isLoading()
را در پاسخ به تماس onNativeAdLoaded()
بررسی کنید:
جاوا
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") .forNativeAd(new NativeAd.OnNativeAdLoadedListener() { @Override public void onNativeAdLoaded(NativeAd ad) { ... // some code that displays the ad. ... if (adLoader.isLoading()) { // The AdLoader is still loading ads. // Expect more adLoaded or onAdFailedToLoad callbacks. } else { // The AdLoader has finished loading ads. } } }).build(); adLoader.loadAds(new AdRequest.Builder().build(), 3);
کاتلین
lateinit var adLoader: AdLoader ... adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") .forNativeAd { ... // some code that displays the ad. ... if (adLoader.isLoading) { // The AdLoader is still loading ads. // Expect more adLoaded or onAdFailedToLoad callbacks. } else { // The AdLoader has finished loading ads. } }.build() adLoader.loadAds(AdRequest.Builder().build(), 3)
تمیز کردن
حتماً از متد destroy()
struct در تبلیغات بومی بارگذاری شده استفاده کنید. این کار منابع استفاده شده را آزاد می کند و از نشت حافظه جلوگیری می کند.
اطمینان حاصل کنید که تمام مراجع NativeAd
در متد onDestroy()
فعالیت شما از بین رفته است.
در پاسخ به تماس onNativeAdLoaded
خود، مطمئن شوید که هر گونه تبلیغات بومی موجود را که ارجاع داده نمی شود، از بین ببرید.
یکی دیگر از بررسی های کلیدی این است که آیا اکتیویتی از بین رفته است یا خیر، در آگهی برگشتی destroy()
را فراخوانی کنید و بلافاصله برگردید:
جاوا
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") .forNativeAd(new NativeAd.OnNativeAdLoadedListener() { @Override public void onNativeAdLoaded(NativeAd ad) { // If this callback occurs after the activity is destroyed, you // must call destroy and return or you may get a memory leak. // Note `isDestroyed()` is a method on Activity. if (isDestroyed()) { ad.destroy(); return; } ... } }).build();
کاتلین
lateinit var adLoader: AdLoader ... adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") .forNativeAd { nativeAd -> // If this callback occurs after the activity is destroyed, you // must call destroy and return or you may get a memory leak. // Note `isDestroyed` is a method on Activity. if (isDestroyed) { nativeAd.destroy() return@forNativeAd } ... }.build()
همیشه با تبلیغات آزمایشی تست کنید
هنگام ساخت و آزمایش برنامه های خود، مطمئن شوید که از تبلیغات آزمایشی به جای تبلیغات زنده و تولیدی استفاده می کنید. عدم انجام این کار می تواند منجر به تعلیق حساب شما شود.
ساده ترین راه برای بارگیری تبلیغات آزمایشی استفاده از شناسه واحد آگهی آزمایشی اختصاصی ما برای Native Advanced در Android است:
ca-app-pub-3940256099942544/2247696110
این بهطور ویژه پیکربندی شده است تا تبلیغات آزمایشی را برای هر درخواست بازگرداند، و شما میتوانید از آن در برنامههای خود هنگام کدنویسی، آزمایش و اشکالزدایی استفاده کنید. فقط مطمئن شوید که قبل از انتشار برنامه خود، آن را با شناسه واحد تبلیغاتی خود جایگزین کرده اید.
برای اطلاعات بیشتر درباره نحوه عملکرد تبلیغات آزمایشی SDK Ads Mobile، به Test Ads مراجعه کنید.
زمان درخواست تبلیغات
برنامههایی که تبلیغات بومی را نمایش میدهند میتوانند از قبل از زمانی که واقعاً نمایش داده شوند، آنها را درخواست کنند. در بسیاری از موارد، این عمل توصیه شده است. برای مثال، برنامهای که فهرستی از آیتمها با تبلیغات بومی ترکیب شده را نمایش میدهد، میتواند آگهیهای بومی را برای کل فهرست بارگیری کند، زیرا میداند که برخی تنها پس از پیمایش کاربر نمایش داده میشوند و برخی ممکن است اصلاً نمایش داده نشوند.
شتاب سخت افزاری برای تبلیغات ویدیویی
برای اینکه تبلیغات ویدیویی با موفقیت در بازدیدهای تبلیغاتی بومی شما نمایش داده شود، شتاب سخت افزاری باید فعال باشد.
شتاب سختافزاری بهطور پیشفرض فعال است، اما برخی از برنامهها ممکن است آن را غیرفعال کنند. اگر این مورد در مورد برنامه شما صدق می کند، توصیه می کنیم شتاب سخت افزاری را برای کلاس های Activity که از تبلیغات استفاده می کنند فعال کنید.
فعال کردن شتاب سخت افزاری
اگر برنامه شما با روشن شدن جهانی شتاب سخت افزاری به درستی رفتار نمی کند، می توانید آن را برای فعالیت های فردی نیز کنترل کنید. برای فعال یا غیرفعال کردن شتاب سخت افزاری، می توانید از ویژگی android:hardwareAccelerated
برای عناصر <application>
و <activity>
در AndroidManifest.xml
خود استفاده کنید. مثال زیر شتاب سخت افزاری را برای کل برنامه فعال می کند اما آن را برای یک فعالیت غیرفعال می کند:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
برای اطلاعات بیشتر در مورد گزینه های کنترل شتاب سخت افزاری، راهنمای شتاب HW را ببینید. توجه داشته باشید که اگر Activity غیرفعال باشد، نماهای تبلیغاتی منفرد را نمی توان برای شتاب سخت افزاری فعال کرد، بنابراین خود Activity باید شتاب سخت افزاری را فعال کند.
نمایش NativeAd
هنگامی که یک تبلیغ را بارگذاری کردید، تنها چیزی که باقی می ماند نمایش آن برای کاربران است. برای مشاهده نحوه انجام، به راهنمای پیشرفته بومی ما بروید.