تتضمّن الإعلانات المدمجة مع المحتوى العديد من الميزات المتقدّمة التي تتيح لك إجراء تخصيصات إضافية وتقديم أفضل تجربة إعلانية ممكنة. يوضّح لك هذا الدليل كيفية استخدام الميزات المتقدّمة للإعلانات المدمجة مع المحتوى.
المتطلبات الأساسية
عناصر التحكّم في مواد العرض
يوضّح هذا القسم بالتفصيل كيفية تخصيص مواد عرض التصاميم في إعلاناتك على المنصات الأصلية. يمكنك تحديد نسبة العرض إلى الارتفاع المفضّلة لمواد عرض الوسائط وطريقة تنزيل مواد عرض الصور وعرضها.
عناصر التحكّم في نسبة العرض إلى الارتفاع المفضّلة للوسائط
تتيح لك عناصر التحكّم في نسبة العرض إلى الارتفاع للوسائط تحديد إعداد مفضّل لنسبة العرض إلى الارتفاع في تصاميم الإعلانات.
اتّصِل بـ NativeAdRequest.Builder.setMediaAspectRatio()
بقيمة NativeAd.NativeMediaAspectRatio.
عند عدم ضبط هذه السمة، يمكن أن يتضمّن الإعلان المعروض أي نسبة عرض إلى ارتفاع للوسائط.
عند ضبط هذا الخيار، ستتمكّن من تحسين تجربة المستخدم من خلال تحديد نوع نسبة العرض إلى الارتفاع المفضّل.
يوضّح المثال التالي كيفية توجيه حزمة تطوير البرامج (SDK) لتفضيل عرض صورة أو فيديو بنسبة عرض إلى ارتفاع معيّنة.
Kotlin
val adRequest = NativeAdRequest.Builder(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build()
Java
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build();
التحكّم في تنزيل الصور
يتيح لك عنصر التحكّم في تنزيل الصور تحديد ما إذا كانت حزمة تطوير البرامج (SDK) ستعرض مواد عرض الصور أو معرّفات الموارد الموحّدة (URI) فقط.
اتّصِل بالرقم NativeAdRequest.Builder.disableImageDownloading().
تكون عناصر التحكّم في تنزيل الصور غير مفعّلة تلقائيًا.
عند إيقاف هذه الميزة، ستملأ حزمة تطوير البرامج (SDK) من الجيل التالي لإعلانات Google على الأجهزة الجوّالة كلاً من الصورة ومعرّف الموارد المنتظم (URI) نيابةً عنك.
عند تفعيل هذا الخيار، ستملأ حزمة تطوير البرامج معرّف الموارد الموحّد فقط، ما يتيح لك تنزيل الصور الفعلية حسب تقديرك.
يوجّه المثال التالي حزمة تطوير البرامج (SDK) لعرض معرّف الموارد المنتظم (URI) فقط.
Kotlin
val adRequest = NativeAdRequest.Builder(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.disableImageDownloading()
.build()
val adCallback: NativeAdLoaderCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
// Get the image uri.
val imageUri = nativeAd.image?.uri
}
};
// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adLoaderCallback);
Java
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.disableImageDownloading()
.build();
NativeAdLoaderCallback adLoaderCallback =
new NativeAdLoaderCallback() {
@Override
public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
// Get the image uri.
Uri imageUri = nativeAd.getImage().getUri();
}
};
// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adLoaderCallback);
عناصر التحكّم في حمولة الصور
تحتوي بعض الإعلانات على سلسلة من الصور بدلاً من صورة واحدة فقط. استخدِم هذه الميزة لتحديد ما إذا كان تطبيقك جاهزًا لعرض كل الصور أو صورة واحدة فقط.
تكون عناصر التحكّم في حمولة الصورة غير مفعّلة تلقائيًا.
عند إيقاف هذه الميزة، يطلب تطبيقك من حزمة SDK عرض الصورة الأولى فقط لأي مواد عرض تتضمّن سلسلة من الصور.
عند تفعيل هذا الخيار، يشير تطبيقك إلى أنّه جاهز لعرض جميع الصور لأي مواد عرض تتضمّن أكثر من صورة واحدة.
يوضّح المثال التالي كيفية توجيه حزمة تطوير البرامج (SDK) لعرض مواد عرض صور متعددة.
مواضع "خيارات الإعلان"
يوضّح هذا القسم بالتفصيل كيفية تحديد موضع التراكب AdChoices. يمكنك ضبط موضعها في أحد الأركان الأربعة أو عرضها ضمن طريقة عرض مخصّصة.
عناصر التحكّم في موضع AdChoices
تتيح لك عناصر التحكّم في موضع AdChoices اختيار الزاوية التي تريد عرض رمز "خيارات الإعلان" فيها.
اتّصِل بـ NativeAdRequest.Builder.setAdChoicesPlacement()
بقيمة NativeAdRequest.AdChoicesPlacement.
إذا لم يتم ضبطها، يتم ضبط موضع رمز AdChoices على أعلى يسار الصفحة.
في حال ضبط هذا الخيار، يتم وضع أداة AdChoices في الموضع المخصّص المطلوب.
يوضّح المثال التالي كيفية ضبط موضع مخصّص لصورة AdChoices.
Kotlin
val adRequest = NativeAdRequest.Builder(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build()
Java
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build();
طريقة العرض المخصّصة في AdChoices
تتيح لك ميزة العرض المخصّص لرمز AdChoices وضع رمز AdChoices في موقع مخصّص. يختلف ذلك عن عناصر التحكّم في موضع AdChoices، والتي تسمح فقط بتحديد إحدى الزوايا الأربع.
اتّصِل بـ NativeAdView.setAdChoicesView()
باستخدام قيمة AdChoicesView.
يوضّح المثال التالي كيفية ضبط عرض مخصّص لـ AdChoices، مع عرض رمز AdChoices داخل AdChoicesView.
Kotlin
override fun onNativeAdLoaded(nativeAd: NativeAd) {
val nativeAdView = NativeAdView(applicationContext)
val adChoicesView = AdChoicesView(this)
nativeAdView.adChoicesView = adChoicesView
}
Java
public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
NativeAdView nativeAdView = new NativeAdView(getApplicationContext());
AdChoicesView adChoicesView = new AdChoicesView(this);
nativeAdView.setAdChoicesView(adChoicesView);
}
عناصر التحكُّم في الفيديو
يوضّح هذا القسم كيفية تخصيص تجربة تشغيل إعلانات الفيديو. يمكنك ضبط حالة كتم الصوت الأولية وتنفيذ عناصر تحكّم مخصّصة في التشغيل.
سلوك بدء كتم الصوت
يتيح لك سلوك "بدء التشغيل مع كتم الصوت" إيقاف الصوت أو تفعيله عند بدء تشغيل الفيديو.
استدعِ الدالة VideoOptions.Builder.setStartMuted()
بالقيمة boolean واستدعِ الدالة NativeAdOptions.Builder.setVideoOptions().
يتم تفعيل سلوك "بدء التشغيل مع كتم الصوت" تلقائيًا.
عند إيقاف هذا الخيار، يطلب تطبيقك أن يبدأ الفيديو بالصوت.
عند تفعيل هذا الخيار، يطلب تطبيقك أن يبدأ الفيديو مع كتم الصوت.
يوضّح المثال التالي كيفية بدء الفيديو مع تشغيل الصوت.
Kotlin
val videoOptions = VideoOptions.Builder()
.setStartMuted(false)
.build()
val adRequest = NativeAdRequest.Builder(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Java
VideoOptions videoOptions = VideoOptions.Builder()
.setStartMuted(false)
.build()
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
عناصر التحكّم المخصّصة في التشغيل
يتيح لك ذلك طلب عناصر تحكّم مخصّصة في إدخال الفيديو لتشغيل الفيديو أو إيقافه مؤقتًا أو كتم صوته.
لضبط حالة كتم الصوت عند بدء عرض الإعلانات، استخدِم الدالة VideoOptions.Builder.setCustomControlsRequested().
تكون عناصر التحكّم المخصّصة في التشغيل غير مفعّلة تلقائيًا.
عند إيقاف هذا الخيار، سيظهر الفيديو مع عناصر التحكّم في الإدخال التي يعرضها حزمة تطوير البرامج (SDK).
إذا كان الإعلان يتضمّن محتوًى فيديو وتم تفعيل عناصر التحكّم المخصّصة، عليك عرض عناصر التحكّم المخصّصة مع الإعلان، لأنّ الإعلان لن يعرض أي عناصر تحكّم. يمكن لوحدات التحكّم بعد ذلك استدعاء الطرق ذات الصلة في
VideoOptions.Builder.setCustomControlsRequested().
يوضّح المثال التالي كيفية طلب فيديو باستخدام عناصر تحكّم مخصّصة في التشغيل.
Kotlin
val videoOptions: VideoOptions.Builder()
.setCustomControlsRequested(true)
.build()
val adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Java
VideoOptions VideoOptions = VideoOptions.Builder()
.setCustomControlsRequested(true)
.build()
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
التحقّق من تفعيل عناصر التحكّم المخصّصة
بما أنّه لا يمكن معرفة ما إذا كان الإعلان المعروض سيسمح بعناصر تحكّم مخصّصة في الفيديو عند وقت الطلب، عليك التحقّق مما إذا كانت عناصر التحكّم المخصّصة مفعّلة.
Kotlin
val adCallback: NativeAdLoaderCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
val mediaContent = nativeAd.mediaContent;
if (mediaContent != null) {
val videoController = mediaContent.videoController;
val canShowCustomControls = videoController?.isCustomControlsEnabled();
}
}
};
Java
NativeAdLoaderCallback adCallback =
new NativeAdLoaderCallback() {
@Override
public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
VideoController videoController = mediaContent.getVideoController();
if (videoController != null) {
boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}
}
}
};
عرض عناصر تحكّم مخصّصة في الفيديو
يمكنك عرض عناصر تحكّم مخصّصة في الفيديو باتّباع أفضل الممارسات التالية:
- اعرض طريقة عرض عناصر التحكّم المخصّصة كعنصر فرعي من طريقة عرض الإعلان المدمج مع المحتوى. تتيح هذه الطريقة لاحتساب إمكانية العرض في ميزة "القياس المفتوح" اعتبار عناصر التحكّم المخصّصة عائقًا غير ضارّ.
- تجنَّب عرض طبقة غير مرئية فوق طريقة عرض الوسائط بالكامل. تحظر التراكبات النقرات على عرض الوسائط، ما يؤثر سلبًا في أداء الإعلانات المدمجة مع المحتوى. بدلاً من ذلك، أنشئ طبقة صغيرة بحجم يكفي لاحتواء عناصر التحكّم.
إيماءات النقر المخصّصة
إيماءات النقر المخصّصة هي إحدى ميزات "الإعلانات المدمجة مع المحتوى" التي تتيح تسجيل عمليات التمرير السريع على مشاهدات الإعلانات كنقرات على الإعلانات. وهي مصمَّمة للعمل مع التطبيقات التي تستخدم إيماءات التمرير السريع للتنقّل بين المحتوى. يوضّح هذا الدليل كيفية تفعيل إيماءات النقر المخصّصة على إعلاناتك المدمجة مع المحتوى.
اتّصِل بـ NativeAdRequest.Builder.enableCustomClickGestureDirection()
باستخدام NativeAd.SwipeGestureDirection
وقيمة boolean.
يوضّح المثال التالي كيفية تنفيذ إيماءة تمرير سريع مخصّصة إلى اليمين مع الحفاظ على السلوك العادي للعلامات.
يتم إيقاف إيماءات النقر المخصّصة تلقائيًا.
عند إيقاف هذا الخيار، سيتيح تطبيقك سلوك النقر العادي.
عند تفعيل هذا الخيار، سيتيح تطبيقك استخدام إيماءات التمرير السريع المخصّصة.
يوضّح المثال التالي كيفية تنفيذ إيماءة تمرير سريع مخصّصة إلى اليمين مع الحفاظ على السلوك العادي للعلامات.
Kotlin
val adOptions = NativeAdOptions
.Builder()
.enableCustomClickGestureDirection(
/* swipeDirection */ NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT,
/* tapsAllowed= */ true)
.build();
// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
val adRequest = NativeAdRequest.Builder(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.withNativeAdOptions(adOptions)
.build();
Java
NativeAdOptions adOptions = new NativeAdOptions
.Builder()
.enableCustomClickGestureDirection(
/* swipeDirection */ NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT,
/* tapsAllowed= */ true)
.build();
// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.withNativeAdOptions(adOptions)
.build();
الاستماع إلى أحداث إيماءات التمرير السريع
للاستماع إلى أحداث إيماءات التمرير السريع، استدعِ الدالة NativeAd.setAdEventCallback() مع NativeAdEventCallback ونفِّذ الطريقة onAdSwipeGestureClicked().
Kotlin
val adCallback: NativeAdLoaderCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
// Implement the onAdSwipeGestureClicked() method.
val nativeAdCallback: NativeAdEventCallback = object : NativeAdEventCallback {
override fun onAdSwipeGestureClicked() {
// A swipe gesture click has occurred.
}
}
}
}
// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adCallback)
Java
NativeAdLoaderCallback adCallback =
new NativeAdLoaderCallback() {
@Override
public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
// Implement the onAdSwipeGestureClicked() method.
NativeAdEventCallback nativeAdCallback = new NativeAdEventCallback() {
@Override
public void onAdSwipeGestureClicked() {
// A swipe gesture click has occurred.
}
};
}
};
// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adCallback);
الوساطة
لا تعمل إيماءات النقر المخصّصة إلا على الإعلانات المُدمَجة مع المحتوى التي تعرضها حزمة "SDK لإعلانات Google على الأجهزة الجوّالة". مصادر الإعلانات التي تتطلّب حِزم تطوير برامج تابعة لجهات خارجية لعرض الإعلانات لا تستجيب لإعداد اتجاهات النقر المخصّصة.