共用方式為


管理廣告群組的腳本範例

下列各節顯示針對廣告群組執行各種動作的腳本範例。

新增廣告群組

若要新增廣告群組,請先取得要新增廣告群組的行銷活動。 使用 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 方法。 若要判斷廣告群組的狀態,請呼叫廣告群組的 isEnabledisPausedisRemoved 方法。

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