2022/03/08に更新

【GASで便利に】Adsenseの本日の収益をメールで通知する

AdsenseメールAPI

Adsenseの本日の収益をメールで通知してくれるGoogle Apps Scriptです。Adsenseってついつい見てしまうので、自動化してみました。

こんな悩みを解決します


  • Adsenseの収益が気になってしかたない・・・でも見ても増えてるわけでもない・・・・見に行って損した・・・

用意するもの


特にありませんが、GASの置き場としてスプレッドシートを利用しています。

このスクリプトで出来ること


Adsenseの本日の収益をメールで通知することが出来ます。

使い方


1.準備

エディタにコードをコピペした後、下記コメントの部分をご自身の環境に変えてください。
「AdsenseのURL」は、Adsenseのホーム画面のURLを入れてください。

  • // AdsenseのURLをセットしてください
  • // メールの送信先を定義してください

このスクリプトは「Adsense API v2」を利用します。
デフォルトでは使えませんので追加します。

左にある「サービス」のプラスアイコンを押します。

「Adsense Management API」を選択して、「追加」を押します。
バージョンが選択可能であれば「v2」を選択してください。

このように「Adsense」が表示されていればOKです。

準備が終わったら関数「onOpen」を一度実行しておきます。

2.スクリプトを実行する

スプレッドシートのメニューに「Adsenseの収益をメールで通知する」が増えているはずです。
テストのため、ここから一度実行してみましょう。メールが届けば成功です。

3.トリガーをセットする

うまく動いていれば、トリガーをセットして自動的にメールが来るようにします。

  • 実行する関数: notify_adsense_today_revenue
  • デプロイ時に実行: HEAD
  • イベントのソースを選択: 時間主導型
  • 時間ベースのトリガーのタイプ: 時間ベースのタイマー
  • 時間の間隔を選択: 1時間おき

トリガーは1時間おきですが、スクリプト内で9時〜23時の間だけメールを飛ばすようにしています。

4.結果の確認

トリガーで毎時メールが届くようになりました!
このメールをスマホで通知するように設定すれば、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, '');

}

関連するアプリ


関連するアプリはまだありません

タグ一覧

最新のアプリ

人気のアプリ

ページトップに戻る
myfunc.jp