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

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

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

پیش‌نیازها

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

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

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

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

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

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

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

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

جاوا

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 در کدام گوشه ارائه شود.

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

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

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