קמפיינים בווידאו

הסקריפטים של 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 In-stream
  • TrueView Video Discovery
  • מודעת באמפר

אפשר לבחור את הקמפיינים האלה באמצעות withCondition:

const campaignIterator = AdsApp.videoCampaigns()
  .withCondition("AdvertisingChannelSubType = null")
  .get();

מודעות וידאו In-stream יכולות לפעול לפני סרטונים אחרים, במהלכם ואחריהם, וכך למשתמשים יש אפשרות לדלג עליהם לאחר פרק זמן מסוים. מודעות Video Discovery מופיעות ברשת המדיה ובדפים שונים ב-YouTube, ומופעלות רק אם המשתמש לוחץ תחילה על התמונה הממוזערת של המודעה באופן פעיל. האורך המקסימלי של מודעות באמפר הוא 6 שניות, והן יכולות להופיע בסרטוני YouTube או בסרטונים באתרים ובאפליקציות של שותפים ברשת המדיה. פרטים מלאים על כל אחד מסוגי המודעות האלה זמינים במאמר מידע על פורמטים של מודעות וידאו.

בונים את קבוצת המודעות

יוצרים קבוצת מודעות וידאו באמצעות השיטה newVideoAdGroupBuilder() של קמפיין וידאו. כשיוצרים את קבוצת המודעות צריך לציין את הסוג שלה ואת השם של קבוצת המודעות. סוג קבוצת המודעות חייב להיות אחד מהבאים, ולא ניתן לשנות אותו לאחר יצירת קבוצת המודעות:

  • TRUE_VIEW_IN_STREAM
  • TRUE_VIEW_IN_DISPLAY
  • BUMPER
  • VIDEO_RESPONSIVE (ב-VIDEO_ACTION קמפיינים בלבד)
  • NON_SKIPPABLE_INSTREAM_VIDEO_AD (ב-VIDEO_NON_SKIPPABLE קמפיינים בלבד)

דוגמה:

const videoAdGroup =
    videoCampaign.newVideoAdGroupBuilder()
    .withAdGroupType("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();

יצירת המודעה

כדי ליצור מודעה חדשה, משתמשים בשיטת הכלי ליצירת מודעות שתואמת לסוג של קבוצת המודעות (המשורשר אחרי newVideoAd()):

דוגמה:

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