【GAS】AdSense Management APIのv2を使ってデータを取得する
【GAS】AdSense Management APIのv2を使ってデータを取得する GAS 2021年11月1日
過去にAdSense Management APIを使ってGASからアドセンスのデータを取得する処理を作ったのだけど、AdSenseのAPIがv1.4からv2になった事によってエラーになって動かなくなっていた。
バージョンアップに伴いデータの渡し方とか戻り値とか色々と変わっているのが原因みたい。
なので公式ドキュメントを元に丸っと作り直してみたのでメモ…
developers.google.com
ソースコード
/*
* 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確認方法