تبلیغات بومی

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

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

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

این صفحه نحوه استفاده از SDK برای بارگیری تبلیغات بومی را نشان می دهد.

پیش نیازها

همیشه با تبلیغات آزمایشی تست کنید

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

ساده ترین راه برای بارگیری تبلیغات آزمایشی استفاده از شناسه واحد آگهی آزمایشی اختصاصی ما برای تبلیغات بومی در Android است:

/21775744923/example/native

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

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

بارگذاری تبلیغات

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

یک AdLoader بسازید

کد زیر نحوه ساخت AdLoader را نشان می دهد که می تواند تبلیغات بومی را بارگیری کند:

جاوا

AdLoader adLoader = new AdLoader.Builder(context, "/21775744923/example/native")
    .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, "/21775744923/example/native}")
    .forNativeAd { ad : NativeAd ->
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

متد forNativeAd() مسئول آماده سازی AdLoader برای قالب NativeAd است. هنگامی که یک تبلیغ با موفقیت بارگیری شد، متد onNativeAdLoaded() شی شنونده فراخوانی می شود.

تنظیم 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() استفاده کنید که یک شی AdManagerAdRequest را به عنوان اولین پارامتر خود می گیرد. این همان کلاس AdManagerAdRequest است که توسط بنرها و بینابینی ها استفاده می شود، و شما می توانید از روش های کلاس AdManagerAdRequest برای افزودن اطلاعات هدف استفاده کنید، درست مانند سایر قالب های تبلیغاتی.

loadAd()

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

جاوا

adLoader.loadAd(new AdManagerAdRequest.Builder().build());

کاتلین

adLoader.loadAd(AdManagerAdRequest.Builder().build())

تماس های تلفنی

پس از فراخوانی به loadAd() یک فراخوانی تکی به متدهای شنونده تعریف شده قبلی انجام می شود تا شیء تبلیغاتی بومی ارائه شود یا خطا گزارش شود.

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

حتماً از متد destroy() در تبلیغات بومی بارگذاری شده استفاده کنید. این منابع استفاده شده را آزاد می کند و از نشت حافظه جلوگیری می کند.

اطمینان حاصل کنید که تمام مراجع NativeAd در متد onDestroy() فعالیت شما از بین رفته است.

در پاسخ به تماس onNativeAdLoaded خود، مطمئن شوید که هر گونه تبلیغات بومی موجود را که ارجاع داده می شود، از بین ببرید.

یکی دیگر از بررسی های کلیدی این است که آیا اکتیویتی از بین رفته است یا خیر، در آگهی برگشتی destroy() فراخوانی کنید و بلافاصله برگردید:

جاوا

final AdLoader adLoader = new AdLoader.Builder(this, "/21775744923/example/native")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd 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;
        }
        ...
    }
}).build();

کاتلین

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "/21775744923/example/native")
    .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()

بهترین شیوه ها

هنگام بارگذاری تبلیغات از این قوانین پیروی کنید.

  • برنامه‌هایی که از تبلیغات بومی در فهرست استفاده می‌کنند، باید فهرست تبلیغات را از قبل ذخیره کنند.

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

  • loadAd() در AdLoader صدا نکنید تا زمانی که اولین درخواست بارگذاری تمام شود.

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

  • تبلیغات بومی را زمانی که دیگر استفاده نمی کنید از بین ببرید.

شتاب سخت افزاری برای تبلیغات ویدیویی

برای اینکه تبلیغات ویدیویی با موفقیت در بازدیدهای تبلیغات بومی شما نمایش داده شود، شتاب سخت افزاری باید فعال باشد.

شتاب سخت‌افزاری به‌طور پیش‌فرض فعال است، اما برخی از برنامه‌ها ممکن است آن را غیرفعال کنند. اگر این مورد در مورد برنامه شما صدق می کند، توصیه می کنیم شتاب سخت افزاری را برای کلاس های 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 باید شتاب سخت افزاری را فعال کند.

تبلیغ خود را نمایش دهید

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

،

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

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

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

این صفحه نحوه استفاده از SDK برای بارگیری تبلیغات بومی را نشان می دهد.

پیش نیازها

همیشه با تبلیغات آزمایشی تست کنید

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

ساده ترین راه برای بارگیری تبلیغات آزمایشی استفاده از شناسه واحد آگهی آزمایشی اختصاصی ما برای تبلیغات بومی در Android است:

/21775744923/example/native

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

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

بارگذاری تبلیغات

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

یک AdLoader بسازید

کد زیر نحوه ساخت AdLoader را نشان می دهد که می تواند تبلیغات بومی را بارگیری کند:

جاوا

AdLoader adLoader = new AdLoader.Builder(context, "/21775744923/example/native")
    .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, "/21775744923/example/native}")
    .forNativeAd { ad : NativeAd ->
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

متد forNativeAd() مسئول آماده سازی AdLoader برای قالب NativeAd است. هنگامی که یک تبلیغ با موفقیت بارگیری شد، متد onNativeAdLoaded() شی شنونده فراخوانی می شود.

تنظیم 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() استفاده کنید که یک شی AdManagerAdRequest را به عنوان اولین پارامتر خود می گیرد. این همان کلاس AdManagerAdRequest است که توسط بنرها و بینابینی ها استفاده می شود، و شما می توانید از روش های کلاس AdManagerAdRequest برای افزودن اطلاعات هدف استفاده کنید، درست مانند سایر قالب های تبلیغاتی.

loadAd()

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

جاوا

adLoader.loadAd(new AdManagerAdRequest.Builder().build());

کاتلین

adLoader.loadAd(AdManagerAdRequest.Builder().build())

تماس های تلفنی

پس از فراخوانی به loadAd() یک فراخوانی تکی به متدهای شنونده تعریف شده قبلی انجام می شود تا شیء تبلیغاتی بومی ارائه شود یا خطا گزارش شود.

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

حتماً از متد destroy() در تبلیغات بومی بارگذاری شده استفاده کنید. این منابع استفاده شده را آزاد می کند و از نشت حافظه جلوگیری می کند.

اطمینان حاصل کنید که تمام مراجع NativeAd در متد onDestroy() فعالیت شما از بین رفته است.

در پاسخ به تماس onNativeAdLoaded خود، مطمئن شوید که هر گونه تبلیغات بومی موجود را که ارجاع داده می شود، از بین ببرید.

یکی دیگر از بررسی های کلیدی این است که آیا اکتیویتی از بین رفته است یا خیر، در آگهی برگشتی destroy() فراخوانی کنید و بلافاصله برگردید:

جاوا

final AdLoader adLoader = new AdLoader.Builder(this, "/21775744923/example/native")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd 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;
        }
        ...
    }
}).build();

کاتلین

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "/21775744923/example/native")
    .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()

بهترین شیوه ها

هنگام بارگذاری تبلیغات از این قوانین پیروی کنید.

  • برنامه‌هایی که از تبلیغات بومی در فهرست استفاده می‌کنند، باید فهرست تبلیغات را از قبل ذخیره کنند.

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

  • loadAd() در AdLoader صدا نکنید تا زمانی که اولین درخواست بارگذاری تمام شود.

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

  • تبلیغات بومی را زمانی که دیگر استفاده نمی کنید از بین ببرید.

شتاب سخت افزاری برای تبلیغات ویدیویی

برای اینکه تبلیغات ویدیویی با موفقیت در بازدیدهای تبلیغات بومی شما نمایش داده شود، شتاب سخت افزاری باید فعال باشد.

شتاب سخت‌افزاری به‌طور پیش‌فرض فعال است، اما برخی از برنامه‌ها ممکن است آن را غیرفعال کنند. اگر این مورد در مورد برنامه شما صدق می کند، توصیه می کنیم شتاب سخت افزاری را برای کلاس های 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 باید شتاب سخت افزاری را فعال کند.

تبلیغ خود را نمایش دهید

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