ラベル

ラベルを使うとアカウントの要素を意味別に分類できるため、必要なデータだけを簡単に抽出してレポートを作成できるようになります。Google 広告スクリプトは、アカウントキャンペーン広告グループ広告キーワードの各レベルでラベルをサポートしています。

ユースケース

Google 広告アカウント内では、ラベルを使用して任意のデータを Google 広告エンティティに関連付けることができます。クライアント センター(MCC)アカウント内では、ラベルを使用して類似したクライアント アカウントをグループ化できます。ラベルは、次のようなユースケースで役立ちます。

  • アカウントのリストを処理する
    • 代理店の場合は、配管業者のすべてのアカウントに plumber_accounts ラベルを適用すると、スクリプトによって配管業者に関連するキーワード(「シャワーの緊急修理」など)がそれらのアカウントのすべてのキャンペーンにプッシュされます。
  • エンティティのリストを処理する
    • 週末のみ有効にしたいキーワードのセットがある場合は、それらに weekend_keywords ラベルを適用できます。スクリプトで、金曜日の夜に weekend_keywords を使用してすべてのキーワードを有効にし、月曜日の朝に一時停止することができます。
  • 複数の実行にわたってエンティティを処理する
    • 30 分以内に処理できないエンティティが多数ある場合は、スクリプトで processed ラベルを作成し、すでに処理されたエンティティに適用できます。スクリプトを 1 時間ごとに実行するようにスケジュールし、processed ラベルが適用されていないエンティティのみを処理します。
  • 2 段階の変更
    • スクリプトで多数のキーワードの入札単価を一括で変更する代わりに、キーワードに increase_bid_by_10% のラベルを付け、Google 広告の管理画面にログインして、ラベルに一致するキーワードをフィルタで除外し、それらを確認します。結果に問題がなければ、一括編集を使用して入札単価を変更します。
  • 柔軟な単価設定
    • スクリプトでラベルを使用することで、入札単価の変更履歴を維持することができます。たとえば、スクリプトでキーワードの入札単価を 20% 引き上げた場合、アカウントにラベル increased_20% を付けることができます。翌日、スクリプトがラベルを横断して実行され、以前に入札単価が引き上げられていることに気づくと、入札単価は 10% しか引き上げられません。
  • 品質スコアのトラッキング
    • スクリプトで重要なキーワードに品質スコアのラベルを付け、品質スコアがラベルと一致しなくなったキーワードを定期的にチェックしてレポートを作成できます。

アカウント単位のラベル

Google 広告スクリプトを使用すると、MCC アカウント内でラベルを作成したり、その MCC アカウントの Google 広告アカウントにラベルを適用したりできます。

const labelName = 'High spending accounts';
AdsManagerApp.createAccountLabel(labelName);

applyLabel メソッドを使用して、選択したアカウントにラベルを適用できます。

const accountIds = ['123-456-7890', '345-6789-2100'];
const labelName = 'High spending accounts';

const accounts = AdsManagerApp.accounts().withIds(accountIds).get();
for (const account of accounts) {
  account.applyLabel(labelName);
}

同様に、removeLabel メソッドを使用して、アカウントからラベルを削除できます。

const accountIds = ['123-456-7890', '345-6789-2100'];
const labelName = 'High spending accounts';

const accounts = AdsManagerApp.accounts().withIds(accountIds).get();
for (const account of accounts) {
  account.removeLabel(labelName);
}

アカウント ラベルの最も一般的な用途は、同じアカウント ラベルを共有するアカウントのグループを処理することです。

const labelName = 'High spending accounts';

const accounts = AdsManagerApp.accounts()
    .withCondition(`LabelNames CONTAINS "${labelName}"`)
    .get();

1 回のスクリプト実行で複数のアカウントを処理する方法については、MCC アカウントのスクリプトガイドをご覧ください。

アカウント内のラベル

アカウントのキャンペーン広告グループ広告キーワードにラベルを作成して適用できます。キャンペーンにラベルを適用する手順は次のとおりです。

const campaign = AdsApp.campaigns()
    .withCondition('campaign.name = "My first campaign"').get().next();
campaign.applyLabel('High performing campaign');

同様に、removeLabel メソッドを使用してラベルを削除できます。

const campaign = AdsApp.campaigns()
    .withCondition('campaign.name = "My first campaign"').get().next();
campaign.removeLabel('High performing campaign');

ラベルは、ラベルでグループ化された類似エンティティのセットを処理するために最もよく使用されます。次のコード スニペットは、共通のラベルを共有するキャンペーンのグループを一時停止する方法を示しています。

const label = AdsApp.labels()
    .withCondition('label.name = "Christmas promotions"')
    .get().next();
var campaignIterator = label.campaigns().get();
for (const campaign of campaignIterator) {
  campaign.pause();
}

レポート

ラベル リソース名を使用すると、Google 広告アカウントのパフォーマンス レポートを実行する際にエンティティをフィルタできます。リソース名は Google Ads API の概念であり、GAQL でレポートを実行するときに使用されることがあります。ラベル リソース名は常に次の形式です。

customers/[customer id]/labels/[label id]

ラベルのリソース名は、getResourceName メソッドを使用して取得できます。

次のコード スニペットは、「クリスマス プロモーション」というラベルが付いているすべてのキャンペーンのキャンペーン レポートを実行する方法を示しています。

const label = AdsApp.labels()
    .withCondition("label.name = 'Christmas promotions'")
    .get().next();
const query = `SELECT campaign.name, metrics.clicks, metrics.impressions, metrics.cost ` +
    `FROM campaign WHERE campaign.labels CONTAINS ANY ` +
    `["${label.getResourceName()}"] AND segments.date DURING THIS_MONTH`;
const result = AdsApp.search(query);

ラベル リソース名でフィルタリングできるのは、CONTAINS_ALLCONTAINS_ANYCONTAINS_NONE 演算子のみです。