Adsenseの本日の収益をメールで通知してくれるGoogle Apps Scriptです。Adsenseってついつい見てしまうので、自動化してみました。
特にありませんが、GASの置き場としてスプレッドシートを利用しています。
Adsenseの本日の収益をメールで通知することが出来ます。
エディタにコードをコピペした後、下記コメントの部分をご自身の環境に変えてください。
「AdsenseのURL」は、Adsenseのホーム画面のURLを入れてください。
このスクリプトは「Adsense API v2」を利用します。
デフォルトでは使えませんので追加します。
左にある「サービス」のプラスアイコンを押します。
「Adsense Management API」を選択して、「追加」を押します。
バージョンが選択可能であれば「v2」を選択してください。
このように「Adsense」が表示されていればOKです。
準備が終わったら関数「onOpen」を一度実行しておきます。
スプレッドシートのメニューに「Adsenseの収益をメールで通知する」が増えているはずです。
テストのため、ここから一度実行してみましょう。メールが届けば成功です。
うまく動いていれば、トリガーをセットして自動的にメールが来るようにします。
トリガーは1時間おきですが、スクリプト内で9時〜23時の間だけメールを飛ばすようにしています。
トリガーで毎時メールが届くようになりました!
このメールをスマホで通知するように設定すれば、AdsenseのWEBを見に行かなくても収益が確認できますね。
なお、収益が1円も発生していない場合は「本日はまだ1円も稼げていません・・・」という残念なメールが届きます。
/**
* このスクリプトの説明、使い方はこちら。
* https://myfunc.jp/items/00054/index.html
*/
function onOpen() {
// スプレッドシートを開いたときに実行される関数
// UIの取得
const ui = SpreadsheetApp.getUi()
// メニューの表示名
const menu = ui.createMenu('スクリプト実行');
// メニューに追加するボタン
menu.addItem('Adsenseの収益をメールで通知する', 'notify_adsense_today_revenue');
// メニューを画面に追加する
menu.addToUi();
}
function notify_adsense_today_revenue() {
// AdsenseのURLをセットしてください
const adsense_url = '';
// メールの送信先を定義してください
const mail_to = '';
// 夜間の通知はいらない。朝9時〜23時以外は何もせず終了する。
const current_hour = new Date().getHours();
if(current_hour < 9){
return;
}
// URLからIDを取り出し、アカウントやIDを組み立てる
const adsense_id = adsense_url.match(/^.*pub-([0-9]+)\/.*$/)[1];
const adsense_account = 'accounts/pub-' + adsense_id;
const adsense_dimension_id = 'ca-pub-' + adsense_id;
// 本日の収益が知りたいので、開始も終了も今日を指定する
const date_start = new Date();
const date_end = new Date();
// Adsense API v2 からレポートを取得する
const report = AdSense.Accounts.Reports.generate(adsense_account, {
filters: ['AD_CLIENT_ID==' + adsense_dimension_id],
metrics: ['ESTIMATED_EARNINGS'],
dimensions: ['DATE'],
'startDate.day': date_start.getDate(),
'startDate.month': date_start.getMonth() + 1,
'startDate.year': date_start.getFullYear(),
'endDate.day': date_end.getDate(),
'endDate.month': date_end.getMonth() + 1,
'endDate.year': date_end.getFullYear()
});
// メールの件名に使う変数
let mail_subject = '';
// key 'totals' が未定義の場合=1円も収益が発生していない状態(らしい)
if (typeof report['totals'] === 'undefined') {
mail_subject = '本日はまだ1円も稼げていません・・・';
} else {
// 値が存在すれば、取り出してメール件名を組み立てる
mail_subject = '現在の稼ぎは' + report['totals']['cells'][1]['value'] + '円です!';
}
// メールを送信
GmailApp.sendEmail(mail_to, mail_subject, '');
}