Chiến dịch Tối đa hoá hiệu suất
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
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;
}
Cách sử dụng
const performanceMaxCampaigns = getAllPerformanceMaxCampaigns();
for (const performanceMaxCampaign of performanceMaxCampaigns) {
// Process your campaign.
}
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();
}
}
Truy xuất nhóm thành phần theo tên
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();
}
Tạm dừng nhóm thành phần
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()}`);
}
Truy xuất một video cụ thể để sử dụng trong nhóm thành phần
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;
}
Thêm một video cụ thể vào nhóm thành phần
function addVideoToAssetGroup(youTubeVideoId, campaignName, assetGroupName) {
// Defined above
const video = getVideoByYouTubeId(youTubeVideoId);
const assetGroup = getAssetGroupByName(campaignName, assetGroupName);
assetGroup.addAsset(video, 'YOUTUBE_VIDEO');
}
Xoá một video cụ thể khỏi nhóm thành phần
function removeVideoFromAssetGroup(youTubeVideoId, campaignName, assetGroupName) {
// Defined above
const video = getVideoByYouTubeId(youTubeVideoId);
const assetGroup = getAssetGroupByName(campaignName, assetGroupName);
assetGroup.removeAsset(video, 'YOUTUBE_VIDEO');
}