共有予算の管理に関するスクリプト例

以下のセクションでは、 共有予算に対してさまざまなアクションを実行するスクリプトの例を示します。

共有予算を追加する

共有予算を追加するには、Microsoft 広告 Web アプリケーションを使用する必要があります。 詳しくは、「複数のキャンペーンで予算を共有する操作方法」をご覧ください。

キャンペーンを共有予算に関連付ける

キャンペーンを共有予算に関連付けるには、Microsoft Advertising Web アプリケーションを使用する必要があります。 詳しくは、「複数のキャンペーンで予算を共有する操作方法」をご覧ください。

すべての共有予算を取得する

アカウント内のすべての共有予算を取得するには、まず AdsApp オブジェクトの budgets メソッドを呼び出して セレクターを取得します。 次に、セレクターの get メソッドを呼び出して、共有予算のリストを反復処理するために使用する 反復子 を取得します。 この例ではフィルターを指定していないため、セレクターはアカウント内のすべての共有予算を返します。 反復子内の共有予算の数を確認するには、反復子の totalNumEntities メソッドを呼び出します。

注:

共有予算には、非共有予算 (個々のキャンペーン) は含まれません。

function main() {
    // Gets all shared budgets in the account.
    var iterator = AdsApp.budgets().get();
    
    // Iterates through the list of shared budgets and logs 
    // each budgets's name and amount.
    while (iterator.hasNext()) {
        var budget = iterator.next();
    }
}

名前で共有予算を取得する

共有予算を名前で取得するには、まず AdsApp オブジェクトの budgets メソッドを呼び出して セレクターを取得します。 セレクターには、予算のリストをフィルター処理するために使用する多くのフィルター メソッドが含まれています。 withCondition メソッドを使用して、予算を名前でフィルター処理します。 たとえば、特定の名前でリストをフィルター処理するには、 withCondition("BudgetName = '<budgetnamegoeshere>'") を使用します。 部分的な名前で一覧をフィルター処理するには、 withCondition("BudgetName CONTAINS_IGNORE_CASE '<partialnamegoeshere>'") を使用します。 オペランドと演算子では大文字と小文字が区別されることに注意してください。

次に、セレクターの get メソッドを呼び出して 反復子を取得します。

function main() {
    // Partial name of the shared budget to get.
    var budgetName = 'PARTIAL NAME GOES HERE';

    // Get the budgets that contain the partial name.
    var iterator = AdsApp.budgets()
          .withCondition(`BudgetName CONTAINS_IGNORE_CASE '${budgetName}'`)
          .get();

    // Iterates through the list of shared budgets and logs 
    // each budget's name and amount.
    while (iterator.hasNext()) {
        var budget = iterator.next();
    }
}

ID によって共有予算を取得する

共有予算の ID にアクセスできる場合は、代わりに使用します。 ID を使用してエンティティを取得すると、パフォーマンスが向上します。 withCondition フィルター メソッドを使用する代わりに、withIds メソッドを使用します。 たとえば、「 withIds(['12345']) 」のように入力します。

function main() {
    var sharedBudgetId = '12345';

    var iterator = AdsApp.budgets()
        .withIds([sharedBudgetId])
        .get();

    while (iterator.hasNext()) {
        var budget = iterator.next();
    }
}

予算を共有するすべてのキャンペーンを取得する

予算を共有するすべてのキャンペーンを取得するには、budget の campaigns メソッドを呼び出します。 このメソッドは、BudgetSelector から取得した Budget オブジェクトからのみ呼び出すことができます。予算のソースがキャンペーンの getBudget メソッドである場合は呼び出すことができません。

function main() {
    var sharedBudgetId = '12345';

    var budgets = AdsApp.budgets()
        .withIds([sharedBudgetId])
        .get();

    while (budgets.hasNext()) {
        var budget = budgets.next();

        var campaigns = budget.campaigns().get();

        while (campaigns.hasNext()) {
            var campaign = campaigns.next();
        }
    }
}

共有予算のパフォーマンス データを取得する

共有予算のパフォーマンス メトリックを取得するには、予算の getStats メソッドを呼び出します 。 共有予算のリストを取得したら、必要なメトリック データの日付範囲を指定する必要があります。 日付範囲は、LAST_MONTH や TODAY などの定義済みリテラル、または開始日と終了日を使用して指定できます。 日付範囲を指定するには、予算を選択するときに forDateRange 方法のいずれかを使用します ( 「BudgetSelector」を参照)。

アクセスできるメトリックのリストについては、 Stats オブジェクトを参照してください。 メトリックは、予算を共有するすべてのキャンペーンの集計です。

function main() {
    var sharedBudgetId = '12345';

    // Get the shared budget. You need to specify the date range of the
    // performance data you want to get.
    var budgets = AdsApp.budgets()
        .forDateRange('LAST_WEEK')
        .withIds([sharedBudgetId])
        .get();
    
    // If the budget is found, log some metrics.
    while (budgets.hasNext()) {
        var budget = budgets.next();
        var metrics = budget.getStats(); // Gets the performance metrics.
    }
}