GASでAdSenseのAPIがv2になり「AdSense.Accounts.Reports.generate」の引数が変わった。

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 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

リファレンスの説明には
The account which owns the collection of reports. Format: accounts/{account}
とあります。

いろいろリファレンスをあさると、文字列で’accounts/{account}’という形式になるらしい。

でも、今度は{account}が分からない。
具体的になんなのか?

結果的に、
accountName = ‘accounts/’ + publisherId;
(publisherIdはアドセンスのパブリッシャーIDです。)
でうまくいきました。

このpublisherIdの調べ方はAdSenseのページの「設定」-「アカウント情報」にあるパブリッシャーIDです。
pub-で始まって残りが数字になっているIDのこと。

という訳で解決。


まとめ

AdSense.Accounts.Reports.generateの第1引数accountNameは’accounts/パブリッシャーID’



コメント

タイトルとURLをコピーしました