📧
GAS使ってアドセンスの今日の記録をメールに自動送信する
学生時代に書いたアドセンスのAPIを使用したGoogleAppScript(以下GAS)のコードです.
需要は殆どないと思いますけど.
対象者
アドセンス使っている人で,GASのトリガー諸々の使い方をわかっている人(もしくは自力で調べる気力がある人)
ついでに言えばアドセンス公式アプリを使っていた人
できること
グーグルアドセンスを利用している人が,GASを使って定期的に本日の収益の簡易的な内容をメールで受け取ることができます.
スクリプトを書いた理由
学生時代にアドセンスをを利用していたんですが[1]
- 公式アプリが使用できなくなったため
- 公式アプリが使えていた時は,頻繁に収益を確認しており無駄に感じていたため(確認したところで収益は増えないですもんね…)
メリット
- 定期的にメールが来るため,公式アプリ(もう無いが)やブラウザを1日に何度も確認しなくても良く無駄が省けること
- メールに自動送信ならアプリと同じく,ブラウザから開く面倒さを解消できる(はず)
補足
- アドセンス使っているGoogleアカウントのGASを使う必要があると思います.(もしかしたら認証さえ設定すれば別アカウントで分けることも出来るかもしれません.)
- 今回は設定上,今日のデータのみ取得しています.dataRangeの箇所
- metricsもクリック数と表示回数,収益のみに絞っております.(昨日の収益のような他のデータ使用したい方は適宜追加してください[2])
- 送信先=データを受信するメールアドレスは,アドセンスを登録しているアカウント,つまり自分から自分宛にメールを送信するのが良いかと(セキュリティ的に?)
- 以下コードでは色々と直打ちしていますが,スプレッドシートにあらかじめメールアドレス等を入力し,取り出す方法もあると思います.
function myFunction() {
var SS = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SS.getSheets()[0];
var endday = new Date();
endday.setDate(endday.getDate());
endday = Utilities.formatDate(endday,"JST","yyyy-MM-dd");
//クリック数,広告表示回数,収益
var metrics = ["CLICKS","IMPRESSIONS","ESTIMATED_EARNINGS"]
var args = {
dimensions : ["DATE"],
metrics : metrics,
dateRange : "TODAY",
reportingTimeZone : "ACCOUNT_TIME_ZONE"
};
//pub-XXXXXXX....はあなたのadsenseID
var repo = AdSense.Accounts.Reports.generate("accounts/pub-XXXXXXXXXXXX",args).getRows();
var SUBJECT_ = endday + " 本日の成果報告";
//送信先(データの受信者)
var RECIPIENT_ = "~@gmail.com";
if (repo == null){
//エラー吐いてたから2年ぶりにコード見直したけど,この処理なぜ書いたのか…
var CONTENT_ = "クリック数 : " + " 0 回\n" + "表示回数 : " + " 0 回\n" + "収益 : " + " 0 円\n";
}
else{
for (i = 0;i<repo[0]["cells"].length;i++){
sheet.getRange(2,i+1).setValue(repo[0]["cells"][i]["value"]);
}
var CONTENT_ = "クリック数 : " + sheet.getRange(2,2).getValue() + "回\n" + "表示回数 : " + sheet.getRange(2,3).getValue() + "回\n" + "収益 : " + sheet.getRange(2,4).getValue() + "円\n";
}
GmailApp.sendEmail(RECIPIENT_,SUBJECT_,CONTENT_);
}
-
バイトせずに暮らしたかった,ビジネスっぽいことをしてみたかったからやってました. ↩︎
-
https://developers.google.com/adsense/management/metrics-dimensions?hl=ja ↩︎
Discussion