แคมเปญวิดีโอ

สคริปต์ 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();

โฆษณาวิดีโอในสตรีมสามารถเล่นก่อน ระหว่าง หรือหลังวิดีโออื่นๆ โดยให้ตัวเลือกแก่ผู้ใช้ในการข้ามหลังจากผ่านไประยะเวลาที่กำหนด โฆษณา Video Discovery จะปรากฏในเครือข่าย Display และหน้าต่างๆ ของ YouTube และจะเล่นก็ต่อเมื่อผู้ใช้คลิกรูปขนาดย่อของโฆษณาอย่างชัดเจนก่อน โฆษณาบัมเปอร์มีความยาว 6 วินาทีหรือสั้นกว่า และสามารถปรากฏในวิดีโอ YouTube หรือวิดีโอในเว็บไซต์และแอปของพาร์ทเนอร์ในเครือข่าย Display ดูรายละเอียดทั้งหมดเกี่ยวกับโฆษณาแต่ละประเภทได้ที่ เกี่ยวกับรูปแบบโฆษณาวิดีโอ

สร้างกลุ่มโฆษณา

คุณสร้างกลุ่มโฆษณาวิดีโอผ่านวิธี 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())

ตัวอย่าง

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

การกำหนดเป้าหมายวิดีโอ

แคมเปญวิดีโอมีการกำหนดเป้าหมายที่เกี่ยวข้อง 2 ประเภทที่แตกต่างกัน The VideoCampaignTargeting แสดงถึงการกำหนดเป้าหมายใดๆ ที่ทำที่ระดับ บัญชีสำหรับแคมเปญวิดีโอโดยทั่วไป และเข้าถึงได้โดยใช้ AdsApp.videoCampaignTargeting() ซึ่งแก้ไขผ่านสคริปต์ไม่ได้ แต่ดูได้

การกำหนดเป้าหมายอีกประเภทหนึ่งช่วยให้คุณระบุเกณฑ์สำหรับแคมเปญวิดีโอและกลุ่มโฆษณาวิดีโอแต่ละรายการได้ โดยเข้าถึงได้ด้วยวิธี videoTargeting() ในแคมเปญหรือกลุ่มโฆษณา และให้สิทธิ์เข้าถึงตัวเลือกและ Builder สำหรับเกณฑ์ทั้งเชิงบวกและเชิงลบสำหรับทุกประเภทที่ใช้ได้กับการกำหนดเป้าหมายระดับนั้น นอกจากนี้ ยังมีวิธี 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();
}