گزینه های تبلیغات بومی

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

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

پیش نیازها

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

پیکربندی کنترل دارایی های تبلیغات بومی.

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

کنترل‌های نسبت ابعاد رسانه به شما این امکان را می‌دهد که ترجیحی برای نسبت ابعاد آگهی‌های خلاقانه تعیین کنید.

NativeAdOptions.Builder.setMediaAspectRatio() را با مقدار NativeAdOptions.MediaAspectRatio فراخوانی کنید.

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

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

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

جاوا

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();

کاتلین

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 ها توسط SDK برگردانده شوند.

NativeAdOptions.Builder.setReturnUrlsForImageAssets() را با یک مقدار boolean فراخوانی کنید.

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

  • وقتی غیرفعال است، Google Mobile Ads SDK هم تصویر و هم URI را برای شما پر می کند.

  • هنگامی که فعال است، SDK در عوض فقط URI را پر می کند و به شما امکان می دهد تصاویر واقعی را به صلاحدید خود دانلود کنید.

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

جاوا

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();

کاتلین

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 فراخوانی کنید.

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

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

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

مثال زیر به SDK دستور می دهد چندین دارایی تصویر را برگرداند.

جاوا

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

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

کاتلین

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();

کاتلین

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);

کاتلین

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();

کاتلین

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 فراخوانی کنید.

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

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

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

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();

کاتلین

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();
}

کاتلین

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);

کاتلین

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 متد onAdSwipeGestureClicked() را در AdListener ، علاوه بر روش onAdClicked() موجود فراخوانی می‌کند.

جاوا

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();

کاتلین

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 SDK ارائه می‌کند، کار می‌کند. منابع تبلیغاتی که برای ارائه به SDK های شخص ثالث نیاز دارند ، به تنظیمات سفارشی جهت کلیک پاسخ نمی دهند.

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

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

پیش نیازها

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

پیکربندی کنترل دارایی های تبلیغات بومی.

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

کنترل‌های نسبت ابعاد رسانه به شما این امکان را می‌دهد که ترجیحی برای نسبت ابعاد آگهی‌های خلاقانه تعیین کنید.

NativeAdOptions.Builder.setMediaAspectRatio() را با مقدار NativeAdOptions.MediaAspectRatio فراخوانی کنید.

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

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

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

جاوا

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();

کاتلین

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 ها توسط SDK برگردانده شوند.

NativeAdOptions.Builder.setReturnUrlsForImageAssets() را با یک مقدار boolean فراخوانی کنید.

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

  • وقتی غیرفعال است، Google Mobile Ads SDK هم تصویر و هم URI را برای شما پر می کند.

  • هنگامی که فعال است، SDK در عوض فقط URI را پر می کند و به شما امکان می دهد تصاویر واقعی را به صلاحدید خود دانلود کنید.

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

جاوا

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();

کاتلین

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 فراخوانی کنید.

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

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

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

مثال زیر به SDK دستور می دهد چندین دارایی تصویر را برگرداند.

جاوا

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

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

کاتلین

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();

کاتلین

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);

کاتلین

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();

کاتلین

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 فراخوانی کنید.

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

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

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

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();

کاتلین

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();
}

کاتلین

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);

کاتلین

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 متد onAdSwipeGestureClicked() را در AdListener ، علاوه بر روش onAdClicked() موجود فراخوانی می‌کند.

جاوا

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();

کاتلین

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 SDK ارائه می‌کند، کار می‌کند. منابع تبلیغاتی که برای ارائه به SDK های شخص ثالث نیاز دارند ، به تنظیمات سفارشی جهت کلیک پاسخ نمی دهند.