סקריפטים של Google Ads מאפשרים לכם לנהל את הקמפיינים של מודעות הווידאו שמבוססים על YouTube ולדווח עליהם. אפשר להשתמש בסקריפטים כדי לנהל קמפיינים קיימים של מודעות וידאו, ליצור ולנהל קבוצות של מודעות ומודעות, להגדיר טירגוט לקמפיינים ולהריץ דוחות. עם זאת, אי אפשר להשתמש בסקריפטים כדי ליצור קמפיינים של מודעות וידאו.
אחזור של קמפיינים של מודעות וידאו וקבוצות של מודעות
קמפיינים של מודעות וידאו זמינים דרך האוסף videoCampaigns
של אובייקט AdsApp
. אפשר לאחזר אותם כמו שאחזרתם בדרך כלל קמפיינים בסקריפטים:
const campaignName = "My first video campaign";
const campaignIterator = AdsApp.videoCampaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get();
for (const campaign of campaignIterator) {
...
}
אחרי שמקבלים קמפיין, אפשר לקבל את קבוצות המודעות שלו באופן דומה:
const adGroupIterator = campaign.videoAdGroups()
.withCondition(`ad_group.name = "${adGroupName}"`)
.get();
for (const adGroup of adGroupIterator) {
...
}
אפשר גם להשתמש בשיטה AdsApp.videoAdGroups()
:
const adGroupIterator = AdsApp.videoAdGroups()
.withCondition(`campaign.name = "${campaignName}" AND ad_group.name = "${adGroupName}")
.get();
for (const adGroup of adGroupIterator) {
...
}
יצירה של מודעות וידאו
סקריפטים של Google Ads מאפשרים לאחזר מודעות וידאו באמצעות השיטה
videoAds()
של
VideoAdGroup
.
אתם יכולים ליצור מודעות וידאו חדשות באמצעות השיטה newVideoAd()
של VideoAdGroup
.
פורמטים של מודעות וידאו
הפורמטים הנתמכים של מודעות הווידאו משתנים בהתאם לסוג הקמפיין. כדי לוודא שאתם בוחרים את סוג קמפיין הווידאו הנכון, מוסיפים שיחה withCondition
ב-AdvertisingChannelSubType
.
חלק מהקמפיינים לווידאו כוללים סוגי משנה שמגבילים את סוגי המודעות שנתמכים בקמפיין. באופן ספציפי, בקמפיינים מסוג VIDEO_ACTION
אפשר להשתמש רק בסוג המודעה VIDEO_RESPONSIVE
, ובקמפיינים מסוג VIDEO_NON_SKIPPABLE
אפשר להשתמש רק בסוג המודעה NON_SKIPPABLE_INSTREAM_VIDEO_AD
.
הדרך הכי טובה להפעיל פעולות על סוגים ספציפיים של קמפיינים היא להשתמש בסעיף withCondition
בבורר. אפשר לעדכן את AdvertisingChannelSubType
עבור סוג הקמפיין הרצוי:
const campaignIterator = AdsApp.videoCampaigns()
.withCondition("AdvertisingChannelSubType = VIDEO_ACTION")
.get();
קמפיינים של מודעות וידאו ללא סוג משנה תומכים בפורמטים הבאים של מודעות וידאו:
- TrueView בתוך ההפעלה
- TrueView Video Discovery
- מודעות באמפר
אפשר לבחור את הקמפיינים האלה באמצעות withCondition
:
const campaignIterator = AdsApp.videoCampaigns()
.withCondition("AdvertisingChannelSubType = null")
.get();
מודעות וידאו In-Stream יכולות להופיע לפני סרטונים אחרים, במהלכם או אחריהם, ולאפשר למשתמשים לדלג עליהן אחרי פרק זמן מסוים. מודעות Video Discovery מופיעות ברשת המדיה ובדפים שונים ב-YouTube, והן יופעלו רק אם משתמש ילחץ באופן פעיל על התמונה הממוזערת של המודעה. מודעות באמפר הן מודעות באורך של 6 שניות או פחות, והן יכולות להופיע בסרטונים ב-YouTube או בסרטונים שמוצגים באתרים ובאפליקציות של שותפים ברשת המדיה. פרטים מלאים על כל אחד מסוגי המודעות האלה זמינים במאמר מידע על פורמטים של מודעות וידאו.
יצירת קבוצת המודעות
יוצרים קבוצת מודעות וידאו באמצעות השיטה newVideoAdGroupBuilder()
של קמפיין וידאו. כשיוצרים קבוצת מודעות, צריך לציין את סוג קבוצת המודעות ואת השם שלה. סוג קבוצת המודעות חייב להיות אחד מהסוגים הבאים, ואי אפשר לשנות אותו אחרי שיוצרים את קבוצת המודעות:
VIDEO_BUMPER
VIDEO_EFFICIENT_REACH
-
VIDEO_NON_SKIPPABLE_IN_STREAM
(רק בקמפיינים מסוגVIDEO_NON_SKIPPABLE
) -
VIDEO_RESPONSIVE
(רק בקמפיינים מסוגVIDEO_ACTION
) VIDEO_TRUE_VIEW_IN_DISPLAY
VIDEO_TRUE_VIEW_IN_STREAM
YOUTUBE_AUDIO
דוגמה:
const videoAdGroup =
videoCampaign.newVideoAdGroupBuilder()
.withAdGroupType("VIDEO_TRUE_VIEW_IN_STREAM")
.withName("Video Ad Group")
.build()
.getResult();
יצירת נכס וידאו
בדרך כלל, מודעות וידאו צריכות להפנות לנכס וידאו. ההגדרה הזו קובעת איזה סרטון יופעל במודעה. אי אפשר להעלות סרטון באמצעות סקריפטים, אבל אפשר לקשר סרטון קיים ב-YouTube שכבר העליתם כדי להשתמש בו במודעות.
כדי לעשות זאת, יוצרים Asset
עם YouTubeVideoAssetBuilder
.
const assetOperation = AdsApp.adAsset().newYouTubeVideoAssetBuilder()
.withName("name")
// This is the ID in the URL for the YouTube video.
.withYouTubeVideoId(youTubeVideoId)
.build();
const videoAsset = assetOperation.getResult();
יצירת המודעה
כדי ליצור מודעה חדשה, משתמשים בשיטת ה-builder שמתאימה לסוג קבוצת המודעות
(בשרשור אחרי newVideoAd()
):
inStreamAdBuilder()
videoDiscoveryAdBuilder()
bumperAdBuilder()
-
responsiveVideoAdBuilder()
(רק לקמפיינים מסוגVIDEO_ACTION
) -
nonSkippableAdBuilder()
(רק לקמפיינים מסוגVIDEO_NON_SKIPPABLE
)
דוגמה:
const videoAd = videoAdGroup.newVideoAd()
.inStreamAdBuilder()
.withAdName("Video Ad")
.withFinalUrl(
"http://www.example.com/video-ad")
// Specify the video asset created in the last step.
.withVideo(video)
.build()
.getResult();
מיקוד וידאו
יש שני סוגים שונים של טירגוט רלוונטי לקמפיינים של מודעות וידאו. הערך
VideoCampaignTargeting
מייצג כל טירגוט שמתבצע ברמת החשבון לקמפיינים של מודעות וידאו באופן כללי, והגישה אליו מתבצעת באמצעות AdsApp.videoCampaignTargeting()
. אי אפשר לשנות את זה באמצעות סקריפטים, אבל אפשר לראות את זה.
סוג הטירגוט השני מאפשר לכם לציין קריטריונים לקמפיינים של מודעות וידאו ולקבוצות של מודעות וידאו בנפרד. אפשר לגשת אליה באמצעות השיטה videoTargeting()
בקמפיין או בקבוצת המודעות, והיא מספקת גישה לכלי בחירה ולכלי בנייה של קריטריונים חיוביים ושליליים מכל הסוגים שרלוונטיים לרמת הטירגוט הזו. קיימת גם השיטה AdsApp.videoTargeting()
שמאפשרת לראות את הקריטריונים ברמת החשבון, והיא כוללת קבוצה שונה של קריטריונים מאלה של AdsApp.videoCampaignTargeting()
. בדומה לVideoCampaignTargeting
, אי אפשר לנהל את הקריטריונים האלה באמצעות סקריפטים.
דוגמה להחרגת מיקום מודעה ספציפי בקמפיין:
videoCampaign.videoTargeting().newPlacementBuilder()
.withUrl("http://www.example.com")
.exclude();
קריטריונים של נתונים דמוגרפיים (גיל, מגדר) פועלים בצורה שונה מעט מסוגי הקריטריונים האחרים. כשיוצרים קבוצת מודעות חדשה, המערכת יוצרת באופן אוטומטי קריטריונים לכל ערך אפשרי של גיל ומגדר, וקבוצת המודעות הזו מטרגטת את כל הערכים האלה. כדי להחריג קבוצה דמוגרפית, מאחזרים את הטירגוט הקיים, מפעילים עליו את השיטה exclude()
, וכדי לכלול מחדש קבוצה דמוגרפית שהוחרגה, מאתרים את טירגוט ההחרגה הקיים ומפעילים את השיטה include()
.
הנה דוגמה להחרגה של מגדר ספציפי מקבוצת מודעות:
const videoGenderIterator = videoAdGroup.videoTargeting()
.genders()
.withCondition('GenderType = "GENDER_MALE"')
.get();
if (videoGenderIterator.hasNext()) {
const videoGender = videoGenderIterator.next();
videoGender.exclude();
}