วิดีโอ
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
ดึงข้อมูลแคมเปญวิดีโอทั้งหมด
function getAllVideoCampaigns() { // AdsApp.videoCampaigns() will return all campaigns that are not // removed by default. const videoCampaignIterator = AdsApp.videoCampaigns().get(); console.log(`Total campaigns found : ${videoCampaignIterator.totalNumEntities()}`); return videoCampaignIterator; }
การใช้งาน
const videoCampaigns = getAllVideoCampaigns(); for (const videoCampaign of videoCampaigns) { // Process your campaign. }
ดึงข้อมูลแคมเปญวิดีโอตามชื่อ
function getVideoCampaignByName(campaignName) { const videoCampaignIterator = AdsApp.videoCampaigns() .withCondition(`campaign.name = "${campaignName}"`) .get(); if (!videoCampaignIterator.hasNext()) { throw new Error(`No video campaign with name ${campaignName} found.`); } const videoCampaign = videoCampaignIterator.next(); console.log(`Campaign Name: ${videoCampaign.getName()}`); console.log(`Enabled: ${videoCampaign.isEnabled()}`); console.log(`Bidding strategy: ${videoCampaign.getBiddingStrategyType()}`); console.log(`Ad rotation: ${videoCampaign.getAdRotationType()}`); console.log(`Start date: ${formatDate(videoCampaign.getStartDate())}`); console.log(`End date: ${formatDate(videoCampaign.getEndDate())}`); return videoCampaign; } function formatDate(date) { function zeroPad(number) { return Utilities.formatString('%02d', number); } return (date == null) ? 'None' : zeroPad(date.year) + zeroPad(date.month) + zeroPad(date.day); }
ดึงข้อมูลสถิติของแคมเปญวิดีโอ
function getVideoCampaignStats(campaignName) { const videoCampaignIterator = AdsApp.videoCampaigns() .withCondition(`campaign.name = "${campaignName}"`) .get(); if (!videoCampaignIterator.hasNext()) { throw new Error(`No video campaign with name ${campaignName} found.`); } const videoCampaign = videoCampaignIterator.next(); // Fetch stats for the last month. See the DateRangeLiteral section at // https://developers.google.com/google-ads/api/docs/query/date-ranges#predefined_date_range // for possible values. // Note: Reports can also be used to fetch stats. See // https://developers.google.com/google-ads/scripts/docs/features/reports // for more information. var stats = videoCampaign.getStatsFor('LAST_MONTH'); console.log(`${videoCampaign.getName()}, ${stats.getImpressions()} impressions, ` + `${stats.getViews()} views`); return stats; }
หยุดแคมเปญวิดีโอชั่วคราว
function pauseVideoCampaign(campaignName) { const videoCampaignIterator = AdsApp.videoCampaigns() .withCondition(`campaign.name = "${campaignName}"`) .get(); if (videoCampaignIterator.hasNext()) { const videoCampaign = videoCampaignIterator.next(); videoCampaign.pause(); } }
เพิ่มกลุ่มโฆษณาวิดีโอ
function addVideoAdGroup(campaignName, adGroupName) { const videoCampaignIterator = AdsApp.videoCampaigns() .withCondition(`campaign.name = "${campaignName}"`) .get(); if (videoCampaignIterator.hasNext()) { const videoCampaign = videoCampaignIterator.next(); const videoAdGroupOperation = videoCampaign.newVideoAdGroupBuilder() .withName(adGroupName) // This can also be: // * VIDEO_EFFICIENT_REACH // * VIDEO_NON_SKIPPABLE_IN_STREAM // * VIDEO_RESPONSIVE // * VIDEO_TRUE_VIEW_IN_DISPLAY // Some types may only be usable in specific ad group types. .withAdGroupType('VIDEO_TRUE_VIEW_IN_STREAM') .withCpv(1.2) .build(); } }
อัปเดตกลุ่มโฆษณาวิดีโอ
function updateAdGroup(adGroupName) { const videoAdGroupIterator = AdsApp.videoAdGroups() .withCondition(`ad_group.name = "${adGroupName}"`) .get(); if (videoAdGroupIterator.hasNext()) { const videoAdGroup = videoAdGroupIterator.next(); videoAdGroup.bidding().setCpv(1.2); // update other properties as required here } }
ดึงข้อมูลกลุ่มโฆษณาวิดีโอทั้งหมด
function getAllVideoAdGroups() { // AdsApp.videoAdGroups() will return all ad groups that are not removed by // default. const videoAdGroupIterator = AdsApp.videoAdGroups().get(); console.log(`Total adGroups found : ${videoAdGroupIterator.totalNumEntities()}`); return videoAdGroupIterator; }
ดึงข้อมูลกลุ่มโฆษณาวิดีโอตามชื่อ
function getVideoAdGroupByName(adGroupName) { const videoAdGroupIterator = AdsApp.videoAdGroups() .withCondition(`ad_group.name = "${adGroupName}"`) .get(); if (!videoAdGroupIterator.hasNext()) { throw new Error(`No video ad group found with name ${adGroupName}.`); } const videoAdGroup = videoAdGroupIterator.next(); console.log('AdGroup Name: ' + videoAdGroup.getName()); console.log('AdGroup Type: ' + videoAdGroup.getAdGroupType()); console.log('Enabled: ' + videoAdGroup.isEnabled()); return videoAdGroup; }
ดึงข้อมูลสถิติของกลุ่มโฆษณาวิดีโอ
function getVideoAdGroupStats(adGroupName) { const videoAdGroupIterator = AdsApp.videoAdGroups() .withCondition(`ad_group.name = "${adGroupName}"`) .get(); if (!videoAdGroupIterator.hasNext()) { throw new Error(`No video ad group found with name ${adGroupName}.`); } const videoAdGroup = videoAdGroupIterator.next(); // You can also request reports for pre-defined date ranges. See // https://developers.google.com/google-ads/api/docs/query/date-ranges#predefined_date_range // for possible values. const stats = videoAdGroup.getStatsFor('LAST_MONTH'); console.log(`${videoAdGroup.getName()}, ${stats.getImpressions()}, ${stats.getViews()}`); return stats; }
หยุดกลุ่มโฆษณาวิดีโอชั่วคราว
function pauseVideoAdGroup(adGroupName) { const videoAdGroupIterator = AdsApp.videoAdGroups() .withCondition(`ad_group.name = "${adGroupName}"`) .get(); if (!videoAdGroupIterator.hasNext()) { throw new Error(`No video ad group found with name ${adGroupName}.`); } const videoAdGroup = videoAdGroupIterator.next(); videoAdGroup.pause(); console.log(`AdGroup with name: ${videoAdGroup.getName()} ` + `has paused status: ${videoAdGroup.isPaused()}`); }
ดึงข้อมูลวิดีโอใดก็ได้เพื่อใช้ในโฆษณา
function getVideo() { // This will just get the first valid YouTube video in the account. // It demonstrates how to filter to see if a video is valid for video ads. const videos = AdsApp.adAssets().assets() .withCondition("asset.type = YOUTUBE_VIDEO") .get(); for (const video of videos) { // You have to use a YouTube video for True View ads, so only return if // the YouTubeVideoId exists. if(video.getYouTubeVideoId()) { return video; } } return null; }
ดึงข้อมูลวิดีโอที่ระบุเพื่อใช้ในโฆษณา
function getVideoByYouTubeId(youTubeVideoId) { // You can filter on the YouTubeVideoId if you already have that video in // your account to fetch the exact one you want right away. const videos = AdsApp.adAssets().assets() .withCondition(`asset.type = YOUTUBE_VIDEO AND ` + `asset.youtube_video_asset.youtube_video_id = '${youTubeVideoId}'`) .get(); if (videos.hasNext()) { return videos.next(); } return null; }
เพิ่มโฆษณาวิดีโอในสตรีม
function addInStreamVideoAd(adGroupName) { // If you have multiple adGroups with the same name, this snippet will // pick an arbitrary matching ad group each time. In such cases, just // filter on the campaign name as well: // // AdsApp.videoAdGroups() // .withCondition('Name = "INSERT_ADGROUP_NAME_HERE"') // .withCondition('CampaignName = "INSERT_CAMPAIGN_NAME_HERE"') const videoAdGroupIterator = AdsApp.videoAdGroups() .withCondition(`ad_group.name = "${adGroupName}"`) .get(); const video = getVideo(); // Defined above if (videoAdGroupIterator.hasNext()) { const videoAdGroup = videoAdGroupIterator.next(); videoAdGroup.newVideoAd().inStreamAdBuilder() .withAdName("In Stream Ad") .withDisplayUrl("http://www.example.com") .withFinalUrl("http://www.example.com") .withVideo(video) .build(); } }
เพิ่มโฆษณาวิดีโอในฟีด
function addInFeedVideoAd(adGroupName) { const videoAdGroupIterator = AdsApp.videoAdGroups() .withCondition(`ad_group.name = "${adGroupName}"`) .get(); const video = getVideo(); // Defined above if (videoAdGroupIterator.hasNext()) { const videoAdGroup = videoAdGroupIterator.next(); videoAdGroup.newVideoAd().inFeedAdBuilder() .withAdName("In-Feed Video Ad") .withDescription1("Description line 1") .withDescription2("Description line 2") .withHeadline("Headline") .withThumbnail("DEFAULT_THUMBNAIL") .withVideo(video) .build(); } }
หยุดโฆษณาวิดีโอชั่วคราวในกลุ่มโฆษณาวิดีโอ
function pauseVideoAdsInVideoAdGroup(adGroupName) { const videoAdGroupIterator = AdsApp.videoAdGroups() .withCondition(`ad_group.name = "${adGroupName}"`) .get(); if (videoAdGroupIterator.hasNext()) { const videoAdGroup = videoAdGroupIterator.next(); const videoAdsIterator = videoAdGroup.videoAds().get(); for (const videoAd of videoAdsIterator) { videoAd.pause(); } } }
ดึงข้อมูลโฆษณาวิดีโอในกลุ่มโฆษณาวิดีโอ
function getInStreamAdsInVideoAdGroup(adGroupName) { const videoAdGroupIterator = AdsApp.videoAdGroups() .withCondition(`ad_group.name = "${adGroupName}"`) .get(); if (!videoAdGroupIterator.hasNext()) { throw new Error(`No video ad group found with name ${adGroupName}.`); } const videoAdGroup = videoAdGroupIterator.next(); const videoAdsIterator = videoAdGroup.videoAds() .withCondition('Type="TRUE_VIEW_IN_STREAM_VIDEO_AD"').get(); console.log(`Total ads found : ${videoAdsIterator.totalNumEntities()}`); return videoAdsIterator; } function logVideoAd(videoAd) { // Note that not all fields are populated for both video ad types. console.log('Video ID : ' + videoAd.getVideoId()); console.log('Headline : ' + videoAd.getHeadline()); console.log('Line1 : ' + videoAd.getDescription1()); console.log('Line2 : ' + videoAd.getDescription2()); console.log('Final URL : ' + videoAd.urls().getFinalUrl()); console.log('Display URL : ' + videoAd.getDisplayUrl()); console.log('Destination Page : ' + videoAd.getDestinationPage()); console.log('Approval Status : ' + videoAd.getApprovalStatus()); console.log('Enabled : ' + videoAd.isEnabled()); }
ดึงข้อมูลสถิติโฆษณาจากกลุ่มโฆษณาวิดีโอ
function getVideoAdGroupAdStats(adGroupName) { let statsList = []; const videoAdGroupIterator = AdsApp.videoAdGroups() .withCondition(`ad_group.name = "${adGroupName}"`) .get(); if (videoAdGroupIterator.hasNext()) { const videoAdGroup = videoAdGroupIterator.next(); const videoAdsIterator = videoAdGroup.videoAds().get(); for (const videoAd of videoAdsIterator) { // You can also request reports for pre-defined date ranges. See // https://developers.google.com/google-ads/api/docs/query/date-ranges#predefined_date_range // for possible values. const stats = videoAd.getStatsFor('LAST_MONTH'); console.log(`${videoAdGroup.getName()}, ${stats.getViews()}, ${stats.getImpressions()}`); statsList.push(stats); } } return statsList; }
เพิ่มกลุ่มเป้าหมายที่มีแผนจะซื้อให้กลุ่มโฆษณาวิดีโอ
function addInMarketAudienceToVideoAdGroup() { const ag = AdsApp.videoAdGroups() .withCondition('campaign.status != REMOVED') .get() .next(); console.log(`AdGroup ID ${ag.getId()}, Campaign ID ${ag.getVideoCampaign().getId()}`); // Get the audience ID from the list here: // https://developers.google.com/google-ads/api/reference/data/codes-formats#in-market-categories const audience = ag.videoTargeting() .newAudienceBuilder() .withAudienceId(80428) .withAudienceType('USER_INTEREST') .build(); console.log('Added Audience ID %s', audience.getResult().getId().toString()); const audiences = ag.videoTargeting().audiences().get(); for (const aud of audiences) { console.log('Retrieved Audience ID %s', aud.getId().toString()); } }