【Google広告】MCCのすべてのアカウントから運用データを取得する

2021年12月24日

Google広告のデータをMCC内のすべてのアカウントから取得する方法です。
定期実行の設定ができるので毎日スプレッドシートに取得することが可能です。

アカウントごとにスクリプトを実行する方法はこちらになります。

MCCで多くのアカウントを管理している場合、アカウントごとに実行するのは大変なので、MCCで取得することをおすすめします。

Google広告のMCCでスクリプトを準備する

新しいスクリプトを作成します。

スクリプト

アカウント情報の取得

    //レポート出力対象MCC-ID
    var MANAGER_CUSTOMER_ID = '1234567890';

    // MCC-IDを指定してアカウント情報を取得
    var accountIterator = MccApp.accounts().withCondition("ManagerCustomerId = '" + MANAGER_CUSTOMER_ID + "'").get();
    //var accountIterator = MccApp.accounts().get();
    Logger.log('アカウント件数 : ' + accountIterator.totalNumEntities());

こちらを実行してアカウント件数が取得できれば成功です。

各アカウントからキャンペーン情報を取得する

campaignSelector()で取得するキャンペーンを指定します。
詳細はこちらから確認してください。
AdsApp.​CampaignSelector

var account = accountIterator.next();

AdsManagerApp.select(account);

var campaignSelector = AdsApp
    .videoCampaigns()
    .forDateRange("TODAY")
    .withCondition("Name CONTAINS '広告名' ")
    .withCondition("Cost > 1")

var campaignIterator = campaignSelector.get();

各キャンペーンからデータを取得する

var campaign = campaignIterator.next();
var stats = campaign.getStatsFor('TODAY');

Logger.log(campaign.getName() + ', ' + stats.getClicks() + 'clicks, ' +
        stats.getImpressions() + ' impressions');

全スクリプト

function main() {
    //MCC-ID
    var MANAGER_CUSTOMER_ID = '1234567890';

    // 日付取得
    var now = new Date();

    // スプレッドシート
    var spreadsheet = SpreadsheetApp.openById("1SO***********************")
    // シートを取得 
    var sheet = spreadsheet.getSheetByName('シート名設定');

    // MCC-IDを指定してアカウント情報を取得
    var accountIterator = MccApp.accounts().withCondition("ManagerCustomerId = '" + MANAGER_CUSTOMER_ID + "'").get();
    //var accountIterator = MccApp.accounts().get();
    Logger.log('アカウント件数 : ' + accountIterator.totalNumEntities());
    var data = []
    while (accountIterator.hasNext()) {
        var account = accountIterator.next();
        AdsManagerApp.select(account);
        var campaignSelector = AdsApp
            .videoCampaigns()
            .forDateRange("TODAY")
            .withCondition("Name CONTAINS 'キャンペーン名' ")
            .withCondition("Cost > 1")

        var campaignIterator = campaignSelector.get();

        while (campaignIterator.hasNext()) {
            var temp_data = []
  
            var campaign = campaignIterator.next();
            
            var stats = campaign.getStatsFor('TODAY');
            Logger.log(campaign.getName() + ', ' + stats.getClicks() + 'clicks, ' +
                stats.getImpressions() + ' impressions');

            MccApp.select(account);

            temp_data.push(now )
            temp_data.push(account.getCustomerId())
            temp_data.push(account.getName())
            temp_data.push(campaign.getName())
            temp_data.push(stats.getClicks())
            temp_data.push(stats.getImpressions())
            temp_data.push(stats.getCost())
            temp_data.push(stats.getConversions())
            data.push(temp_data)

        }
    }

    sheet.getRange(sheet.getLastRow()+1, 1, data.length, data[0].length).setValues(data)
  
}

ぜひお試し下さい。

AdsApp.report()を使用したい場合はこちらから

【Google広告】MCCのすべてのアカウントから運用レポートを取得する

参考サイト

Google広告スクリプト

https://developers.google.com/google-ads/scripts

GAS,広告運用

Posted by Next-k