Googleサービス PR

【ログイン不要】Google Adsense ~自動通知にしてみた~

記事内に商品プロモーションを含む場合があります

Adsebse 収益確認の自動化

アドセンス合格してから半年が経過しました。せっかく情報発信するなら、ためになった分収益も出るといいなぁと願いながら毎日確認してないですか?



気になる度にアドセンスにログインすることに疲れたので、学んでいるGASを駆使して、確認作業を自動化してみました。

  • メールで通知
    ⇒その日の収益を夜にメールで送ってもらう
  • スプレッドシートで管理
    ⇒分析材料に過去の実績を蓄積

自動化するための事前準備

準備はそんなに難しいものはありません。毎日、大金が発生しているワケでもないのにすごく気にしてしまいます。設定ひとつでストレス解消となりますよ。

共通の設定(トリガー)

毎日の通知が来るようにトリガーの設定をしておくと便利です。設定しておくと、組み込んだスクリプトを定期的に実行してくれるので、確認のためにわざわざ、アドセンスのマイページのログインする必要はなくなります。

\トリガー設定についてはこちらから/

【コピペでOK】Googleスライド テンプレート自動コピーする方法 スマートに会議資料の準備をしよう 仕事のなかで、業務時間をかなり消費してしまうのが会議資料の準備。以前はPowerPointを利...

その日の実績をメールで通知

はじめにメールで自動通知してもらう方法です。
Apps Scriptのリファレンスページも参考にしました。

  • STEP1
    Googleドライブをひらく
    STEP5にあるスクリプトを貼るためのファイルをつくります。
  • STEP2
    GASを選択
    『その他』⇒『Google Apps Script』をクリック

  • STEP3
    タイトルの変更
    自分で管理がしやすい名前にしてください

  • STEP4
    サービスの選択・追加
    『Adsense Manegement API』を選択して、バージョンは【v2】、IDはこだわりなければ【AdSense】にして『追加』をクリック

  • STEP5
    スクリプトの貼りつけ
    冒頭伝えた、ご自身のパブリッシャーIDと通知を送りたいアドレスの設定だけ変更してください。

    function Get_AdSenseData() {
      
      // ご自身の設定
      const pubId ='pub-*********************'      // パブリッシャーID
      const mailTo = '******************@gmail.com'  // 送信先メールアドレス 
      const subject = 'AdSense Report';              // 件名
      
      // 変数を設定
      let adsenseAccount = 'accounts/' + pubId;
      let adsenseDimensionId = 'ca-' + pubId;
      let today = new Date();
    
      let metrics = ['ESTIMATED_EARNINGS', 'PAGE_VIEWS', 'INDIVIDUAL_AD_IMPRESSIONS', 'CLICKS']
      let report = AdSense.Accounts.Reports.generate(adsenseAccount, {
        filters: ['AD_CLIENT_ID==' + adsenseDimensionId],
        metrics:  metrics,
        dimensions: ['DATE'],
        ...dateToJson('startDate', today),
        ...dateToJson('endDate', today),
        orderBy: ['+DATE']
      })
    
      if (report.rows) {
        let estimatedEarnings = Number(report.rows[0].cells[1].value);
        let pageViews = Number(report.rows[0].cells[2].value);
        let impressions = Number(report.rows[0].cells[3].value);
        let clicks = Number(report.rows[0].cells[4].value);
    
        let body = "\n【本日のAdSense Report】\n\n";
        body = body + "推定収益額:" + estimatedEarnings.toLocaleString() + "円\n\n";
        body = body + "ページビュー数:" + pageViews.toLocaleString() + "\n\n";
        body = body + "広告表示回数:" + impressions.toLocaleString() + "\n\n";
        body = body + "クリック数:" + clicks.toLocaleString();
    
        // 件名に日付が表示されるように設定
        let formatDate = Utilities.formatDate(today,"JST", "yyyy/MM/dd");
        let title = subject + "(" + formatDate + ")";
    
        GmailApp.sendEmail(mailTo, title, body);
      }
    }
    
    function dateToJson(param, value) {
      return {
        [param + '.year']: value.getFullYear(),
        [param + '.month']: value.getMonth() + 1,
        [param + '.day']: value.getDate()
      };
    }
    
  • STEP6
    『実効』をクリック
    準備したスクリプトに問題が無いかチェックをおこないます。

  • STEP7
    『権限を確認』をクリック
    最初に実効するときに表示される画面です。

  • STEP8
    『詳細』をクリック
    少し不安になってしまうような画面ですが心配ありません。

  • STEP9
    『”スクリプト名”(安全ではないページ)に移動』をクリック
    ここにテキストここにテキストここにテキスト

  • STEP10
    『許可』をクリック
    許可をクリックしてもらえればスクリプト実行が可能となります。

  • STEP10
    メールが届くかチェック
    実行してメールが届けば完了です。

トリガーの設定で自動通知

スクリプトの準備ができたら、冒頭で伝えたトリガーの設定をおこなえば、アドセンスの管理ページにわざわざログインせずに日々の売上の確認が可能になります。

私のトリガー設定:午後11時~午前0時
⇒毎日23時30分ごろに通知が届きます。
 実際の金額と異なる日があります。

あくまで概算で、ということです。


正確に把握したい、という場合に利用しているのが次のスプレッドシートでの収益管理です。2つ設定して管理すると非常にラクです!!

スプレッドシートで収益確認・分析

一つ目に紹介した、メールでの確認について、いかがだったでしょうか。日々のチェックはだいぶラクになるはずです!!




次に、スプレッドシートでの確認です。こちらの管理の利点としては、データが蓄積されていくので、一定期間の合計金額だったり、サイトの集客状況など分析も可能になります。こちらもスクリプトをコピーして利用できますので、すぐに設定をおこなってください。

◇ Adesense Manegement API
https://developers.google.com/adsense/management/metrics-dimensions?hl=ja#metrics

スプレッドシートの1行目は、上記ページの指標の項目を参照して

  • STEP1
    拡張機能から『Apps Script』をクリック
    スプレッドシートを準備してもらい、スクリプトを組み込みます。

  • STEP2
    メール通知同様、サービス追加
    メール通知設定のSTEP4と同じです。
  • STEP3
    スクリプトの貼り付け
    下記コードをコピーしてください。

    function ad_writeReport() {
    
    // ご自身の設定
      const pubId ='pub-*******************'      // パブリッシャーID
      const sheetname = "report"; // 出力先のシート名
    
      const ss = SpreadsheetApp.getActive();
      const sheet = ss.getSheetByName(sheetname);
      const adsenseAccount = "accounts/" + pubId;
      const adsenseDimensionId = "ca-" + pubId;
      const metrics = getMetrics();
    
      const report = AdSense.Accounts.Reports.generate(adsenseAccount, {
        filters: ["AD_CLIENT_ID==" + adsenseDimensionId],
        metrics: metrics,
        dimensions: ["DATE"],
        dateRange: "YESTERDAY", // 昨日の結果取得 
        orderBy: ["+DATE"],
    
        //抽出例(参考にしてください)
        // TODAY,YESTERDAY,MONTH_TO_DATE,YEAR_TO_DATE,LAST_7_DAYS,LAST_30_DAYS,CUSTOM
        // "startDate.year": 2023,
        // "startDate.month": 4,
        // "startDate.day": 1,
        // "endDate.year": 2023,
        // "endDate.month": 4,
        // "endDate.day": 30,
      });
    
    if (report.rows) {
        // 新しい日付のデータをシートの最終行に出力
        sheet
          .getRange(
            sheet.getLastRow() + 1,
            1,
            report.rows.length,
            report.headers.length
          )
          .setValues(report.rows.map((row) => row.cells.map((cell) => cell.value)));
    
        // 日付が同じデータは削除
        sheet.getDataRange().removeDuplicates([1]);
      }
    }
    
    function getMetrics(){
      return [
        "ACTIVE_VIEW_MEASURABILITY",
        "ACTIVE_VIEW_TIME",
        "ACTIVE_VIEW_VIEWABILITY",
        "ADS_PER_IMPRESSION",
        "AD_REQUESTS",
        "AD_REQUESTS_COVERAGE",
        "AD_REQUESTS_CTR",
        "AD_REQUESTS_RPM",
        "CLICKS",
        "COST_PER_CLICK",
        "ESTIMATED_EARNINGS",
        "IMPRESSIONS",
        "IMPRESSIONS_CTR",
        "IMPRESSIONS_RPM",
        "INDIVIDUAL_AD_IMPRESSIONS",
        "INDIVIDUAL_AD_IMPRESSIONS_CTR",
        "INDIVIDUAL_AD_IMPRESSIONS_RPM",
        "MATCHED_AD_REQUESTS",
        "MATCHED_AD_REQUESTS_CTR",
        "MATCHED_AD_REQUESTS_RPM",
        "PAGE_VIEWS",
        "PAGE_VIEWS_CTR",
        "PAGE_VIEWS_RPM",
        "TOTAL_EARNINGS",
        "TOTAL_IMPRESSIONS",
        "WEBSEARCH_RESULT_PAGES",
      ];
    }

トリガーの設定

こちらでのチェックでは、正確に1日分のデータを抽出したいので、昨日分のデータを早朝に反映させるようにトリガーの設定をおこなっています。

期間の変更

期間の設定についてはさまざまな設定方法が可能です。お好みに変えてください。

私の設定

dateRange: "YESTERDAY",

任意で期間設定(例:2023/1/1~2023/4/10)

 dateRange: "CUSTOM", 
    "startDate.year": 2023,
    "startDate.month": 1,
    "startDate.day": 1,
    "endDate.year": 2023,
    "endDate.month": 4,
    "endDate.day": 30,

まとめ

  1. メールで自動通知
  2. リスト化で分析

以上、アドセンスの収益確認について少し手間のかかるログイン作業をなくすための方法でした。『今日は収益あがっているかなぁ?』と私のように実績がでていない人ほど毎日状況を気にしがちです。


その日の確認をざっくりするためのメール通知、過去の実績をまとめて集計・分析をおこなうためのスプレッドシート管理。


この2刀流で小さなストレスともおさらばです。収益の前に役に立つ情報を発信できる力を身につけることを優先しています。

\小さな作業はGASで自動化!!/

【保存版】スプレッドシートを活用した住所録の入力自動化 年賀状シーズン必見! 住所録管理方法 2023年、今年もよろしくお願いいたします。本当は昨年の12月の上旬ごろにアップしたかった...