スポンサーリンク
過去にAdSense Management APIを使ってGASからアドセンスのデータを取得する処理を作ったのだけど、AdSenseのAPIがv1.4からv2になった事によってエラーになって動かなくなっていた。
バージョンアップに伴いデータの渡し方とか戻り値とか色々と変わっているのが原因みたい。
なので公式ドキュメントを元に丸っと作り直してみたのでメモ…
Contents
ソースコード
/*
* GoogleAdSenseの情報取得
*
* @param {string} id - AdSenseパブリッシャーIDの数字
* @param {string} start - データ取得開始日(2021/10/01)
* @param {string} end - データ取得終了日(2021/10/31)
* @returns {Array|Object} - スプシ書き出し用データ
*
*/
function getAdSenseData(id,start,end) {
const adClientReportingDimensionId='ca-pub-'+id;
const accountName="accounts/pub-"+id;
const end_date = new Date(end);
const start_date = new Date(start);
const report = AdSense.Accounts.Reports.generate(accountName, {
filters: ['AD_CLIENT_ID=='+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', start_date),
...dateToJson('endDate', end_date),
orderBy: ['+DATE']
});
//スプシ吐き出し用に整形
let array =[[report.headers[0].name,report.headers
.name,report.headers
.name,report.headers
.name,report.headers
.name,report.headers[5].name,report.headers[6].name,report.headers[7].name,report.headers[8].name]];
for (let i = 0; i < report.rows.length; i++) {
array.push([report.rows[i].cells[0].value,report.rows[i].cells
.value,report.rows[i].cells
.value,report.rows[i].cells
.value,report.rows[i].cells
.value,report.rows[i].cells[5].value,report.rows[i].cells[6].value,report.rows[i].cells[7].value,report.rows[i].cells[8].value]);
}
return array;
}
function dateToJson (paramName, value) {
return {
[paramName + '.year']: value.getFullYear(),
[paramName + '.month']: value.getMonth() + 1,
[paramName + '.day']: value.getDate()
};
}
補足情報
AdSenseのパブリッシャーID確認方法
AdSenseページのアカウントから確認可能

スポンサーリンク