2021年10月13日から、AdSenseのAPIがv1.4からv2になったようで、GAS(GoogleAppsScript)でAdSense.Accounts.Reports.generateがエラーになって動いてなかったようです。
引数が変更になって、返り値も変わったようです。
リファレンス(https://developers.google.com/apps-script/advanced/adsense)を読んだときに、accountNameの値が分からなかったので書いてみようと思います。
AdSense.Accounts.Reports.generateの第1引数accountNameには何を入れるか
AdSense Service | Apps Script | Google for Developers
/** * Generates a spreadsheet report for a specific ad client in an account. * @param {string} accountName The resource name of the account. * @param {string} adClientName The reporting dimension ID of the ad client. */ function generateReport (accountName, adClientReportingDimensionId) { // Prepare report. const today = new Date(); const oneWeekAgo = new Date(today.getTime() - 7 * 24 * 60 * 60 * 1000); const report = AdSense.Accounts.Reports.generate(accountName, { // Specify the desired ad client using a filter. filters: ['AD_CLIENT_ID==' + escapeFilterParameter(adClientReportingDimensionId)], metrics: ['PAGE_VIEWS', 'AD_REQUESTS', 'AD_REQUESTS_COVERAGE', 'CLICKS', 'AD_REQUESTS_CTR', 'COST_PER_CLICK', 'AD_REQUESTS_RPM', 'ESTIMATED_EARNINGS'], dimensions: ['DATE'], ...dateToJson('startDate', oneWeekAgo), ...dateToJson('endDate', today), // Sort by ascending date. orderBy: ['+DATE'] });
説明では
@param {string} accountName The resource name of the account.
とありますが、じゃあ、結局なに?って
Method: accounts.reports.generate | AdSense Management API | Google for Developers
リファレンスの説明には
The account which owns the collection of reports. Format: accounts/{account}
とあります。
いろいろリファレンスをあさると、文字列で’accounts/{account}’という形式になるらしい。
でも、今度は{account}が分からない。
具体的になんなのか?
結果的に、
accountName = ‘accounts/’ + publisherId;
(publisherIdはアドセンスのパブリッシャーIDです。)
でうまくいきました。
accountName = ‘accounts/’ + publisherId;
(publisherIdはアドセンスのパブリッシャーIDです。)
でうまくいきました。
このpublisherIdの調べ方はAdSenseのページの「設定」-「アカウント情報」にあるパブリッシャーIDです。
pub-で始まって残りが数字になっているIDのこと。
という訳で解決。
まとめ
AdSense.Accounts.Reports.generateの第1引数accountNameは’accounts/パブリッシャーID’
コメント