共用方式為


管理標籤的腳本範例

下列各節顯示針對標籤執行各種動作的腳本範例。

將標籤新增至帳戶

若要使用標籤,請先將標籤新增至您的帳戶。 您最多可以將 100,000 個標籤新增至帳戶。 若要新增標籤,請使用 createLabel 方法。 方法會將標籤的名稱、描述和背景色彩作為輸入。

名稱是必要的,但描述和色彩是選擇性的。 名稱區分大小寫、不能超過 80 個字元,而且在帳戶內必須是唯一的。 雖然色彩是選擇性的,但如果您未指定,服務會為您選擇隨機色彩。 您可以在表單中使用三位元組十六進位數位來指定色彩 #RRGGBB (,例如,CB0400) 或 16 個已知色彩名稱之一,例如紅色、黃色和青色。 如果您指定色彩,則必須指定描述,但可能是空字串。

下列範例顯示呼叫 方法的 createLabel 三種方式。

function main() {

    AdsApp.createLabel("foo");
    AdsApp.createLabel("bar", "a descriptive description", "aqua");
    AdsApp.createLabel("foo foo", "", "#FF0000");

}

列出帳戶的標籤

若要取得帳戶中的標籤清單,請使用 labels 方法。 您可以使用 =、CONTAINS 和 STARTS_WITH 等標準字串運算子,依標籤的名稱篩選清單。

function main() {

    // Gets all the labels in the account
    var accountLabels = AdsApp.labels()
        .get();  
    
    Logger.log(`selector returned ${accountLabels.totalNumEntities()} labels that matched the selector's conditions`);

    // Gets all the labels in the account that contain foo in the name
    accountLabels = AdsApp.labels()
        .withCondition("Name CONTAINS 'foo'")
        .get();
    
    Logger.log(`selector returned ${accountLabels.totalNumEntities()} labels that matched the selector's conditions`);

    // Gets the first 15 labels in the account
    accountLabels = AdsApp.labels()
        .withLimit(15)
        .get();
    
    Logger.log(`selector returned ${accountLabels.totalNumEntities()} labels that matched the selector's conditions`);

    // Gets the first 15 labels in the account that contain foo in the name
    accountLabels = AdsApp.labels()
        .withCondition("Name CONTAINS 'foo'")
        .withLimit(15)
        .get();

    Logger.log(`selector returned ${accountLabels.totalNumEntities()} labels that matched the selector's conditions`);

    while (accountLabels.hasNext()){
        var label = accountLabels.next();
    }

}

將標籤套用至關鍵字

只有當您將標籤套用至關鍵字等實體時,標籤才有用。 若要將標籤套用至關鍵字,請使用 關鍵字的 applyLabel 方法。 您最多可以將 50 個標籤套用至關鍵字。 方法會接受 作為標籤名稱的輸入。 標籤的名稱會區分大小寫、必須存在於帳戶中,而且在 關鍵字內必須是唯一的。

下列範例示範如何將標籤新增至關鍵字、列出關鍵字的標籤,以及從關鍵字移除標籤。

function main() {

    // Get a keyword to add labels to
    var keyword = AdsApp.keywords().withIds(["12345"]).get().next();

    // Print the keyword's existing labels
    var labels = keyword.labels().get();
    printLabels(labels);

    // Add labels to the keyword
    keyword.applyLabel("foo");
    keyword.applyLabel("foo foo");
    keyword.applyLabel("bar");

    // Print the new list of labels
    labels = keyword.labels().get();
    printLabels(labels);

    // Remove labels from the keyword
    keyword.removeLabel("foo");
    keyword.removeLabel("bar");

    // Print the new list of labels
    labels = keyword.labels().get();
    printLabels(labels);

}

function printLabels(labels) {
    Logger.log(`keyword has ${labels.totalNumEntities()} labels`);
    
    while (labels.hasNext()){
        var label = labels.next();

        Logger.log(`name: ${label.getName()}
            description: ${label.getDescription()}
            color: ${label.getColor()}\n\n`);
    }
}

取得包含任何指定標籤的關鍵字

若要取得包含特定標籤名稱的關鍵字,請使用 KeywordSelector 物件的 withCondition () 方法。 使用 LabelNames 資料行名稱,依標籤名稱進行篩選。 您可以指定一或多個名稱的陣列。 名稱會區分大小寫、必須完全相符,而且必須存在於帳戶中。 您可以套用下列運算子:

  • CONTAINS_ALL - 如果關鍵字包含所有指定的標籤,則選取關鍵字
  • CONTAINS_ANY - 如果關鍵字包含任何指定的標籤,則選取關鍵字
  • CONTAINS_NONE - 如果關鍵字未包含任何指定的標籤,則選取關鍵字

請注意,如果標籤不存在於帳戶中,選取器會失敗並傳回錯誤。

function main() {

    var keywords = AdsApp.keywords()
        .withCondition('LabelNames CONTAINS_ANY ["foo", "bar"]')
        .get();
    
    while (keywords.hasNext()){
        var keyword = keywords.next();

        var labels = keyword.labels().get();

        while (labels.hasNext()) {
            var label = labels.next();
        }
    }

}