تنظیم ویژگی‌های بومی پیشرفته

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

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

پیش‌نیازها

کنترل‌های دارایی

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

کنترل‌های نسبت ابعادی رسانه ترجیحی

«کنترل‌های نسبت ابعادی رسانه» به شما امکان می‌دهد اولویت خود را برای نسبت ابعادی طرح‌آگهی‌های رسانه‌ای مشخص کنید.

با مقدار NativeAdOptions.MediaAspectRatio با NativeAdOptions.Builder.setMediaAspectRatio() تماس بگیرید.

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

  • وقتی تنظیم شود، می‌توانید با مشخص کردن نوع ترجیحی نسبت ابعادی، تجربه کاربری را بهبود ببخشید.

مثال زیر به «کیت توسعه نرم‌افزار» دستور می‌دهد که تصویر یا ویدیویی با نسبت ابعادی خاص را ترجیح دهد.

جاوا

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

AD_UNIT_ID را با شناسه واحد آگهی‌تان جایگزین کنید.

کنترل بارگیری تصویر

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

تماس با NativeAdOptions.Builder.setReturnUrlsForImageAssets() با مقدار boolean.

  • کنترل بارگیری تصویر به‌طور پیش‌فرض غیرفعال است.

  • وقتی غیرفعال باشد، Google Mobile Ads SDK (Legacy) هم تصویر و هم نشانی وب را برایتان درج می‌کند.

  • وقتی فعال باشد، «کیت توسعه نرم‌افزار» فقط نشانی وب را تکمیل می‌کند و به شما امکان می‌دهد تصاویر واقعی را به صلاحدید خودتان بارگیری کنید.

مثال زیر به کیت توسعه نرم‌افزار دستور می‌دهد که فقط نشانی وب را برگرداند.

جاوا

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID")
        .withNativeAdOptions(nativeAdOptions)
        .forNativeAd(
            nativeAd -> {
              List<Uri> imageUris = new ArrayList<>();
              for (Image image : nativeAd.getImages()) {
                imageUris.add(image.getUri());
              }
            })
        .build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build()

val loader =
  AdLoader.Builder(context, "AD_UNIT_ID")
    .withNativeAdOptions(nativeAdOptions)
    .forNativeAd { nativeAd ->
      val imageUris = nativeAd.images.mapNotNull { it.uri }
    }
    .build()

کنترل‌های پایه‌بار تصویر

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

تماس با NativeAdOptions.Builder.setRequestMultipleImages() با مقدار boolean.

  • کنترل‌های بار داده تصویر به‌طور پیش‌فرض غیرفعال است.

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

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

مثال زیر به کیت توسعه نرم‌افزار دستور می‌دهد تا چندین دارایی تصویر را برگرداند.

جاوا

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setRequestMultipleImages(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setRequestMultipleImages(true).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

جایگاه‌های AdChoices

این بخش جزئیات نحوه قرار دادن رونهاد AdChoices را شرح می‌دهد. می‌توانید جای آن را در یکی از چهار گوشه تنظیم کنید یا آن را در نمای سفارشی ارائه کنید.

کنترل‌های موقعیت AdChoices

کنترل‌های موقعیت AdChoices به شما امکان می‌دهد انتخاب کنید نماد AdChoices در کدام گوشه ارائه شود.

با مقدار NativeAdOption.AdChoicesPlacement با NativeAdOptions.Builder.setAdChoicesPlacement() تماس بگیرید.

  • اگر تنظیم نشده باشد، موقعیت نماد AdChoices روی بالا سمت راست تنظیم می‌شود.

  • اگر تنظیم شده باشد، AdChoices در جایگاه سفارشی درخواست‌شده قرار می‌گیرد.

مثال زیر نشان می‌دهد که چگونه موقعیت تصویر «انتخاب‌های آگهی» سفارشی را تنظیم کنید.

جاوا

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

نمای سفارشی AdChoices

ویژگی نمای سفارشی AdChoices به شما امکان می‌دهد نماد AdChoices را در مکان سفارشی قرار دهید. این با کنترل‌های موقعیت AdChoices متفاوت است، که فقط اجازه می‌دهد یکی از چهار گوشه مشخص شود.

تماس با NativeAdView.setAdChoicesView() با مقدار AdChoicesView.

نمونه زیر نشان می‌دهد که چگونه نمای سفارشی AdChoices را تنظیم کنید، به‌طوری‌که نماد AdChoices در AdChoicesView پرداز شود.

جاوا

NativeAdView nativeAdView = new NativeAdView(context);
AdChoicesView adChoicesView = new AdChoicesView(context);
nativeAdView.setAdChoicesView(adChoicesView);

Kotlin

val nativeAdView = NativeAdView(context)
val adChoicesView = AdChoicesView(context)
nativeAdView.adChoicesView = adChoicesView

کنترل‌های ویدیو

این بخش جزئیات نحوه سفارشی‌سازی تجربه بازپخش برای آگهی‌های ویدیویی را شرح می‌دهد. شما این گزینه را دارید که وضعیت بی‌صدا کردن اولیه را تنظیم کنید و کنترل‌های بازپخش سفارشی را پیاده‌سازی کنید.

شروع رفتار صامت کردن

رفتار شروع بی‌صدا به شما امکان می‌دهد صدای شروع ویدیو را غیرفعال یا فعال کنید.

تماس با VideoOptions.Builder.setStartMuted() با مقدار boolean.

  • رفتار شروع بی‌صدا به‌طور پیش‌فرض فعال است.

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

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

مثال زیر نشان می‌دهد که چگونه ویدیو را با صدای باصدا شروع کنید.

جاوا

VideoOptions videoOptions = new VideoOptions.Builder().setStartMuted(false).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val videoOptions = VideoOptions.Builder().setStartMuted(false).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

کنترل‌های بازپخش سفارشی

این به شما امکان می‌دهد کنترل‌های ورودی ویدیو سفارشی برای پخش، توقف موقت، یا بی‌صدا کردن ویدیو درخواست کنید.

تماس با VideoOptions.Builder.setCustomControlsRequested() با مقدار boolean.

  • کنترل‌های بازپخش سفارشی به‌طور پیش‌فرض غیرفعال هستند.

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

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

VideoController.

مثال زیر نحوه درخواست ویدیو با کنترل‌های بازپخش سفارشی را نشان می‌دهد.

جاوا

VideoOptions videoOptions = new VideoOptions.Builder().setCustomControlsRequested(true).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val videoOptions = VideoOptions.Builder().setCustomControlsRequested(true).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

بررسی کنید کنترل‌های سفارشی فعال باشد

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

جاوا

MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
  VideoController videoController = mediaContent.getVideoController();
  boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}

Kotlin

val mediaContent = nativeAd.mediaContent
if (mediaContent != null) {
  val videoController = mediaContent.videoController
  val canShowCustomControls = videoController.isCustomControlsEnabled
}

پرداز زدن کنترل‌های ویدیو سفارشی

کنترل‌های ویدیو سفارشی را بااستفاده از روال‌های مطلوب زیر ارائه دهید:

  1. نمای کنترل‌های سفارشی را به‌عنوان فرزند نمای آگهی بومی ارائه دهید. این رویکرد به محاسبات رؤیت‌پذیری اندازه‌گیری باز اجازه می‌دهد تا کنترل‌های سفارشی را به‌عنوان یک مانع دوستانه درنظر بگیرد.
  2. از پرداز کردن رونهاد نامرئی روی کل نمای رسانه اجتناب کنید. رونهادها کلیک‌ها را در نمای رسانه مسدود می‌کنند و بر عملکرد آگهی‌های بومی تأثیر منفی می‌گذارند. به‌جای آن، هم‌پوشانی کوچکی ایجاد کنید که فقط به‌اندازه کافی بزرگ باشد تا کنترل‌ها در آن جا شوند.

اشاره‌های کلیک سفارشی

اشاره‌های کلیک سفارشی یکی از ویژگی‌های آگهی‌های بومی است که به شما امکان می‌دهد تند کشیدن‌ها روی نماهای آگهی را به‌عنوان کلیک آگهی ثبت کنید. این ویژگی با برنامه‌هایی کار می‌کند که از اشاره‌های تند کشیدن برای پیمایش محتوا استفاده می‌کنند. این راهنما به شما نشان می‌دهد که چگونه اشاره‌های کلیک سفارشی را در آگهی‌های بومی خود فعال کنید.

با NativeAdOptions.Builder.enableCustomClickGestureDirection() با NativeAdOptions.SwipeGestureDirection و boolean تماس بگیرید تا مشخص کنید که آیا تک‌ضرب‌ها به‌عنوان کلیک مجاز باشند یا نه.

  • اشاره‌های کلیک سفارشی به‌طور پیش‌فرض غیرفعال است.

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

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

مثال زیر اشاره تند کشیدن سفارشی به راست را پیاده‌سازی می‌کند و رفتار ضربه زدن عادی را حفظ می‌کند.

جاوا

NativeAdOptions adOptions =
    new NativeAdOptions.Builder()
        .enableCustomClickGestureDirection(
            NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT, /* tapsAllowed= */ true)
        .build();

// ca-app-pub-3940256099942544/2247696110 is a sample ad unit ID that has custom click
// gestures enabled.
AdLoader.Builder builder =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions);

Kotlin

val adOptions =
  NativeAdOptions.Builder()
    .enableCustomClickGestureDirection(NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT, true)
    .build()

val builder = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions)

گوش دادن به رویدادهای اشاره تند کشیدن

وقتی کلیک با اشاره تند ثبت می‌شود، Google Mobile Ads SDK (Legacy) علاوه بر روش موجود onAdClicked()، روش onAdSwipeGestureClicked() را در AdListener فرا می‌خواند.

جاوا

AdLoader adLoader =
    new AdLoader.Builder(context, AD_UNIT_ID)
        .withAdListener(
            new AdListener() {
              // Called when a swipe gesture click is recorded.
              @Override
              public void onAdSwipeGestureClicked() {
                // Called when a swipe gesture click is recorded.
                Log.d(TAG, "A swipe gesture click has occurred.");
              }

              @Override
              public void onAdClicked() {
                // Called when a swipe gesture click or a tap click is recorded, as
                // configured in NativeAdOptions.
                Log.d(TAG, "A swipe gesture click or a tap click has occurred.");
              }
            })
        .build();

Kotlin

val adLoader =
  AdLoader.Builder(context, AD_UNIT_ID)
    .withAdListener(
      object : AdListener() {
        override fun onAdSwipeGestureClicked() {
          // Called when a swipe gesture click is recorded.
          Log.d(TAG, "A swipe gesture click has occurred.")
        }

        override fun onAdClicked() {
          // Called when a swipe gesture click or a tap click is recorded, as
          // configured in NativeAdOptions.
          Log.d(TAG, "A swipe gesture click or a tap click has occurred.")
        }
      }
    )
    .build()

میانجیگری

اشاره‌های کلیک سفارشی فقط در آگهی‌های بومی‌ای کار می‌کند که کیت توسعه نرم‌افزار Google Mobile Ads ارائه می‌کند. منابع آگهی که برای ارائه به کیت‌های توسعه نرم‌افزار طرف سوم نیاز دارند، به تنظیمات جهت‌های کلیک سفارشی پاسخ نمی‌دهند.