실적 극대화 : 실적 극대화 캠페인

모든 실적 최대화 캠페인을 가져옵니다.

function getAllPerformanceMaxCampaigns() {   // AdsApp.performanceMaxCampaigns() will return all campaigns that are not   // removed by default.   const performanceMaxCampaignIterator = AdsApp.performanceMaxCampaigns().get();   console.log(`Total campaigns found : ${performanceMaxCampaignIterator.totalNumEntities()}`);   return performanceMaxCampaignIterator; }

실적 최대화 캠페인을 이름으로 가져옵니다.

function getPerformanceMaxCampaignByName(campaignName) {   const performanceMaxCampaignIterator = AdsApp.performanceMaxCampaigns()       .withCondition(`campaign.name = "${campaignName}"`)       .get();   if (!performanceMaxCampaignIterator.hasNext()) {     throw new Error(`No performance max campaign with name ${campaignName} found.`);   }   const performanceMaxCampaign = performanceMaxCampaignIterator.next();   console.log(`Campaign Name: ${performanceMaxCampaign.getName()}`);   console.log(`Enabled: ${performanceMaxCampaign.isEnabled()}`);   console.log(`Bidding strategy: ${performanceMaxCampaign.getBiddingStrategyType()}`);   console.log(`Ad rotation: ${performanceMaxCampaign.getAdRotationType()}`);   console.log(`Start date: ${formatDate(performanceMaxCampaign.getStartDate())}`);   console.log(`End date: ${formatDate(performanceMaxCampaign.getEndDate())}`);   return performanceMaxCampaign; }  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 getPerformanceMaxCampaignStats(campaignName) {   const performanceMaxCampaignIterator = AdsApp.performanceMaxCampaigns()       .withCondition(`campaign.name = "${campaignName}"`)       .get();   if (!performanceMaxCampaignIterator.hasNext()) {     throw new Error(`No performance max campaign with name ${campaignName} found.`);   }   const performanceMaxCampaign = performanceMaxCampaignIterator.next();   // Fetch stats for the last month. See the DateRangeLiteral section at   // https://developers.google.com/adwords/api/docs/guides/awql#formal_grammar   // for a list of all supported pre-defined date ranges.   // 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 = performanceMaxCampaign.getStatsFor('LAST_MONTH');   console.log(`${performanceMaxCampaign.getName()}, ${stats.getImpressions()} impressions, ` +       `${stats.getViews()} views`);   return stats; }

실적 최대화 캠페인 일시중지하기

function pausePerformanceMaxCampaign(campaignName) {   const performanceMaxCampaignIterator = AdsApp.performanceMaxCampaigns()       .withCondition(`campaign.name = "${campaignName}"`)       .get();   if (performanceMaxCampaignIterator.hasNext()) {     const performanceMaxCampaign = performanceMaxCampaignIterator.next();     performanceMaxCampaign.pause();   } }

이름으로 애셋 그룹 검색

function getAssetGroupByName(campaignName, assetGroupName) {   // Defined above   const performanceMaxCampaign = getPerformanceMaxCampaignByName(campaignName);   if (performanceMaxCampaign == null) {     return null;   }   const assetGroupIterator = performanceMaxCampaign.assetGroups()       .withCondition(`asset_group.name = "${assetGroupName}"`)       .get();   if (!assetGroupIterator.hasNext()) {     throw new Error(`No asset group found with name ${assetGroupName}.`);   }   return assetGroupIterator.next(); }

애셋 그룹 일시중지

function pausePerformanceMaxAssetGroup(campaignName, assetGroupName) {   // Defined above   const assetGroup = getAssetGroupByName(campaignName, assetGroupName);   assetGroup.pause();   console.log(`AssetGroup with name: ${assetGroup.getName()} ` +       `has paused status: ${assetGroup.isPaused()}`); }

애셋 그룹에 사용할 특정 동영상 검색

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 addVideoToAssetGroup(youTubeVideoId, campaignName, assetGroupName) {   // Defined above   const video = getVideoByYouTubeId(youTubeVideoId);   const assetGroup = getAssetGroupByName(campaignName, assetGroupName);   assetGroup.addAsset(video, 'YOUTUBE_VIDEO'); }

애셋 그룹에서 특정 동영상 삭제하기

function removeVideoFromAssetGroup(youTubeVideoId, campaignName, assetGroupName) {   // Defined above   const video = getVideoByYouTubeId(youTubeVideoId);   const assetGroup = getAssetGroupByName(campaignName, assetGroupName);   assetGroup.removeAsset(video, 'YOUTUBE_VIDEO'); }