管理廣告群組的腳本範例
下列各節顯示針對廣告群組執行各種動作的腳本範例。
新增廣告群組
若要新增廣告群組,請先取得要新增廣告群組的行銷活動。 使用 CampaignSelector 物件來選取行銷活動。 使用 方法 withIds
可提供比在 方法中 withCondition
傳遞行銷活動名稱更好的效能。
接下來,呼叫行銷活動的 newAdGroupBuilder 方法,以取得您用來指定廣告群組屬性的產生器。 唯一必要的屬性是廣告群組的名稱, (查看 withName
方法) ,這在行銷活動中必須是唯一的。 如果您未指定一個[檢索] 值,它會預設為您帳戶貨幣的最低約定金額。 只有在行銷活動未指定語言時,才需要指定語言;否則,它會繼承行銷活動的語言值。 根據預設,廣告群組的狀態會暫停。
呼叫產生器的 build
方法會以非同步方式建立廣告群組;腳本會在腳本終止之前的某個時間點新增廣告群組,或者如果您呼叫其中一個建置作業的方法。 如需此程式的相關資訊,請 參閱什麼是產生器?
function main() {
// The ID of the campaign to add the ad groups to.
// IDs in Scripts are string integers.
var campaignId = 'CAMPAIGN ID GOES HERE';
var campaign = getCampaign(campaignId);
// Ad groups to add.
var adGroups = [];
adGroups.push({
name : 'AD GROUP NAME GOES HERE',
cpc : 2.25,
language : 'English' // Required if the campaign doesn't specify a language
});
adGroups.push({
name : 'AD GROUP NAME GOES HERE',
cpc : 1.25,
language : 'English' // Required if the campaign doesn't specify a language
});
var operations = [];
if (campaign != null)
{
for (var adGroup of adGroups) {
var operation = addAdGroup(
campaign,
adGroup.name,
adGroup.cpc,
adGroup.language);
operations.push(operation);
}
}
else {
Logger.log("Unable to retrieve campaign, " + campaignId);
}
checkBuildStatus(operations, adGroups);
}
// Get the campaign using its ID.
function getCampaign(id) {
var iterator = AdsApp.campaigns()
.withIds([id])
.get();
// Return the campaign if it exists; otherwise, null.
if (iterator.hasNext()) {
return iterator.next();
}
else {
return null;
}
}
// Add the ad group to the specified campaign.
// Returns the builder's operation object, which you use to
// check the status of the add operation.
function addAdGroup(campaign, name, cpc, language) {
return campaign.newAdGroupBuilder()
.withName(name)
.withCpc(cpc)
.withLanguage(language)
.build();
}
// Check the ad group's build status.
function checkBuildStatus(operations, adGroups) {
for (var i = 0; i < operations.length; i++) {
if (!operations[i].isSuccessful()) {
for (var error of operations[i].getErrors()) {
Logger.log(`Failed to add, ${adGroups[i].name}. Error: ${error}`);
}
}
}
}
取得所有廣告群組
若要取得帳戶中的所有廣告群組,請先呼叫 AdsApp 物件的 adGroups
方法來取得 選取器。 然後,呼叫選取器 get
的 方法,以取得您用來逐一查看廣告群組清單的 反覆運算器 。 由於此範例未指定任何篩選準則,因此選取器會傳回帳戶中的所有廣告群組。 若要判斷反覆運算器中的廣告群組數目,請呼叫反覆運算器的 totalNumEntities
方法。
function main() {
// Gets all ad groups in the account.
var iterator = AdsApp.adGroups().get();
// Iterates through the list of ad groups and logs
// each ad group's name.
while (iterator.hasNext()) {
var adGroup = iterator.next();
}
}
依名稱取得廣告群組
若要依名稱取得廣告群組,請先呼叫 AdsApp 物件的 adGroups
方法來取得 選取器。 選取器包含一些您用來篩選廣告群組清單的篩選方法。
withCondition
使用 方法來篩選特定廣告組名的廣告群組。 請注意,運算元和運算子會區分大小寫。
接下來,呼叫選取器的 get
方法以取得 反覆運算器。 行銷活動內的廣告組名是唯一的,但多個行銷活動可能會有相同名稱的廣告群組。 因此,如果您只依名稱篩選,反覆運算器可能會包含多個廣告群組。
如果您想要依名稱從特定行銷活動取得廣告群組,請包含指定 withCondition
行銷活動名稱的方法 (CampaignName = '<campaignnamegoeshere>'
) 。
function main() {
// The name of the ad group to get.
var adGroupName = 'AD GROUP NAME GOES HERE';
// Get the ad groups with the specified name.
var iterator = AdsApp.adGroups()
.withCondition(`Name = '${adGroupName}'`)
.get();
// Need a loop because multiple campaigns can have
// an ad group with the same name.
while (iterator.hasNext()) {
var adGroup = iterator.next();
}
}
依識別碼取得廣告群組
如果您可以存取廣告群組的識別碼,請改用它。 使用識別碼取得實體可提供更好的效能。 請使用 方法, withIds
而不是使用 withCondition
篩選方法。 例如,withIds(['12345'])
。
function main() {
var adGroupId = '12345';
var iterator = AdsApp.adGroups()
.withIds([adGroupId])
.get();
if (iterator.hasNext()) {
var adGroup = iterator.next();
}
}
依名稱從特定行銷活動取得廣告群組
function main() {
var adGroupName = 'AD GROUP NAME GOES HERE';
var campaignName = "CAMPAIGN NAME GOES HERE";
var iterator = AdsApp.adGroups()
.withCondition(`Name = '${adGroupName}'`)
.withCondition(`CampaignName = '${campaignName}'`)
.get();
if (iterator.hasNext()) {
var adGroup = iterator.next();
}
}
取得廣告群組的效能資料
若要取得廣告群組的效能計量,請呼叫廣告群組的 getStats 方法。 當您取得廣告群組時,您必須指定所要計量資料的日期範圍。 您可以使用預先定義的常值來指定日期範圍,例如LAST_MONTH或 TODAY,或是開始和結束日期。 若要指定日期範圍,請在選取廣告群組時使用其中一 forDateRange
種方法 (請參閱 AdGroupSelector) 。
如需您可以存取的計量清單,請參閱 Stats 物件。
function main() {
var campaignName = 'CAMPAIGN NAME GOES HERE';
var adGroupName = 'AD GROUP NAME GOES HERE';
// Get the ad group. You need to specify the date range of the
// performance data you want to get.
var iterator = AdsApp.adGroups()
.forDateRange('LAST_WEEK')
.withCondition(`Name = '${adGroupName}'`)
.withCondition(`CampaignName = '${campaignName}'`)
.get();
// If the ad group is found, log some metrics.
if (iterator.hasNext()) {
var adGroup = iterator.next();
var metrics = adGroup.getStats(); // Gets the performance metrics.
}
}
暫停廣告群組
當您新增廣告群組時,其狀態預設為 [已暫停]。 若要啟用廣告群組,請呼叫廣告群組的 enable
方法。 若要將廣告群組的狀態變更為 Paused,請呼叫廣告群組的 pause
方法。 若要判斷廣告群組的狀態,請呼叫廣告群組的 isEnabled
、 isPaused
和 isRemoved
方法。
function main() {
var campaignName = 'CAMPAIGN NAME GOES HERE';
var adGroupName = 'AD GROUP NAME GOES HERE';
// Get the ad group.
var iterator = AdsApp.adGroups()
.withCondition(`Name = '${adGroupName}'`)
.withCondition(`CampaignName = '${campaignName}'`)
.get();
if (iterator.hasNext()) {
var adGroup = iterator.next();
adGroup.pause();
}
}