במודעות מותאמות יש הרבה תכונות מתקדמות שמאפשרות לבצע התאמות אישיות נוספות וליצור את חוויית הצופה במודעה הטובה ביותר. במדריך הזה נסביר איך להשתמש בתכונות המתקדמות של מודעות מותאמות.
דרישות מוקדמות
- משלבים את פורמט המודעה המותאמת.
אמצעי בקרה על נכסים
בקטע הזה מוסבר איך להתאים אישית את נכסי הקריאייטיב במודעות מותאמות. אתם יכולים לציין את יחס הגובה-רוחב המועדף לנכסי מדיה, ואיך נכסי התמונות יורדו ויוצגו.
אפשרויות ליחס הגובה-רוחב המועדף של המדיה
אמצעי הבקרה של יחס הגובה-רוחב של המדיה מאפשרים לכם לציין העדפה ליחס הגובה-רוחב של נכסי הקריאייטיב של המודעות.
מפעילים את NativeAdRequest.Builder.setMediaAspectRatio() עם ערך NativeAd.NativeMediaAspectRatio.
אם לא מגדירים את הפרמטר, המודעה שתוחזר יכולה להיות בכל יחס גובה-רוחב של מדיה.
כשההגדרה הזו מופעלת, אתם יכולים לשפר את חוויית המשתמש על ידי ציון הסוג המועדף של יחס הגובה-רוחב.
בדוגמה הבאה, ערכת ה-SDK מקבלת הוראה להעדיף תמונה או סרטון עם יחס גובה-רוחב ספציפי.
Kotlin
val adRequest = NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
listOf(NativeAd.NativeAdType.NATIVE))
.setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build()
Java
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
List.of(NativeAd.NativeAdType.NATIVE))
.setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build();
אמצעי בקרה על הורדת תמונות
אמצעי הבקרה להורדת תמונות מאפשר לכם להחליט אם ה-SDK יחזיר נכסי תמונות או רק מזהי URI.
קוראים לפונקציה NativeAdRequest.Builder.disableImageDownloading().
כברירת מחדל, האפשרות להוריד תמונות מושבתת.
כשהאפשרות מושבתת, GMA Next-Gen SDK מאכלס גם את התמונה וגם את ה-URI בשבילכם.
כשההגדרה הזו מופעלת, ה-SDK מאכלס רק את ה-URI, וכך אתם יכולים להוריד את התמונות עצמן לפי שיקול דעתכם.
בדוגמה הבאה, ה-SDK מונחה להחזיר רק את ה-URI.
Kotlin
val adRequest = NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
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(
"ca-app-pub-3940256099942544/2247696110",
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
אמצעי הבקרה למיקום של AdChoices מאפשרים לכם לבחור באיזו פינה להציג את הסמל של AdChoices.
מפעילים את NativeAdRequest.Builder.setAdChoicesPlacement() עם ערך NativeAdRequest.AdChoicesPlacement.
אם לא מגדירים את המיקום של הסמל של AdChoices, הוא מוגדר בפינה הימנית העליונה.
אם מגדירים את המיקום, AdChoices ממוקם במיקום המותאם אישית כפי שהתבקש.
בדוגמה הבאה אפשר לראות איך מגדירים מיקום מותאם אישית לתמונה של AdChoices.
Kotlin
val adRequest = NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
listOf(NativeAd.NativeAdType.NATIVE))
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build()
Java
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
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);
}
פקדי סרטונים
בקטע הזה מוסבר איך להתאים אישית את חוויית ההפעלה של מודעות וידאו. אתם יכולים להגדיר את מצב ההשתקה הראשוני ולהטמיע רכיבי UI מותאמים אישית להפעלה.
התנהגות ההשתקה בהתחלה
ההתנהגות "התחלה במצב מושתק" מאפשרת להשבית או להפעיל את האודיו בתחילת הסרטון.
קוראים ל-VideoOptions.Builder.setStartMuted() עם ערך boolean וקוראים ל-NativeAdOptions.Builder.setVideoOptions().
ההגדרה "התחלה במצב מושתק" מופעלת כברירת מחדל.
כשהאפשרות מושבתת, האפליקציה מבקשת שהסרטון יתחיל עם אודיו.
כשההגדרה הזו מופעלת, האפליקציה מבקשת שהסרטון יתחיל כשהאודיו מושתק.
בדוגמה הבאה אפשר לראות איך להפעיל את הסרטון עם אודיו לא מושתק.
Kotlin
val videoOptions = VideoOptions.Builder()
.setStartMuted(false)
.build()
val adRequest = NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
listOf(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Java
VideoOptions videoOptions = VideoOptions.Builder()
.setStartMuted(false)
.build()
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
List.of(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
רכיבי UI מותאמים אישית להפעלה
כך אפשר לבקש פקדי קלט מותאמים אישית להפעלה, להשהיה או להשתקה של הסרטון.
כדי להגדיר את מצב ההשתקה ההתחלתי של המודעות, צריך להפעיל את VideoOptions.Builder.setCustomControlsRequested().
האפשרות להתאים אישית את רכיבי ה-UI להפעלה מושבתת כברירת מחדל.
כשהאפשרות הזו מושבתת, בסרטון יוצגו פקדי קלט שעובדו על ידי ה-SDK.
אם המודעה כוללת קטע וידאו והאפשרויות להתאמה אישית מופעלות, צריך להציג את האפשרויות להתאמה אישית יחד עם המודעה, כי המודעה עצמה לא תציג אפשרויות כאלה. לאחר מכן, הפקדים יכולים להפעיל את ה-methods הרלוונטיות ב-
VideoOptions.Builder.setCustomControlsRequested().
בדוגמה הבאה אפשר לראות איך מבקשים סרטון עם רכיבי UI להפעלה בהתאמה אישית.
Kotlin
val videoOptions: VideoOptions.Builder()
.setCustomControlsRequested(true)
.build()
val adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
listOf(NativeAd.NativeAdType.NATIVE))
.setVideoOptions(videoOptions)
.build()
Java
VideoOptions VideoOptions = VideoOptions.Builder()
.setCustomControlsRequested(true)
.build()
NativeAdRequest adRequest = new NativeAdRequest.Builder(
"ca-app-pub-3940256099942544/2247696110",
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();
}
}
}
};
הצגת פקדי וידאו בהתאמה אישית
כדי להציג פקדי וידאו בהתאמה אישית, כדאי לפעול לפי השיטות המומלצות הבאות:
- מציגים את התצוגה של הפקדים בהתאמה אישית כתצוגת צאצא של התצוגה של המודעה המותאמת. הגישה הזו מאפשרת לחישובי הניראות של Open Measurement להתייחס לפקדים המותאמים אישית כאל חסימה ידידותית.
- אל תציגו שכבת-על בלתי נראית מעל כל תצוגת המדיה. שכבות-על חוסמות קליקים על תצוגת המדיה, ומשפיעות לרעה על הביצועים של מודעות מותאמות. במקום זאת, צרו שכבת-על קטנה, בגודל שמתאים בדיוק לפקדים.
תנועות קליק בהתאמה אישית
תנועות קליק בהתאמה אישית הן תכונה של מודעות מותאמות שמאפשרת לרשום החלקות על צפיות במודעות כקליקים על מודעות. היא פועלת באפליקציות שבהן משתמשים בתנועות החלקה כדי לנווט בתוכן. במדריך הזה מוסבר איך להפעיל תנועות קליק בהתאמה אישית במודעות מותאמות.
מפעילים את NativeAdRequest.Builder.enableCustomClickGestureDirection() עם NativeAd.SwipeGestureDirection וערך boolean.
תנועות קליק בהתאמה אישית מושבתות כברירת מחדל.
כשהתכונה מושבתת, האפליקציה תומכת בהתנהגות רגילה של קליקים.
כשהתכונה מופעלת, האפליקציה תומכת בתנועות החלקה בהתאמה אישית.
בדוגמה הבאה מיושמת תנועת החלקה מותאמת אישית ימינה, תוך שמירה על התנהגות רגילה של הקשה.
Kotlin
Java
האזנה לאירועים של תנועות החלקה
כדי להאזין לאירועים של תנועת החלקה, מפעילים את 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);
גישור
תנועות קליק בהתאמה אישית פועלות רק במודעות מותאמות שנוצרו באמצעות Google Mobile Ads SDK. מקורות מודעות שדורשים ערכות SDK של צד שלישי לצורך עיבוד לא מגיבים להגדרה של הוראות מותאמות אישית לקליקים.