Adsebse 収益確認の自動化
アドセンス合格してから半年が経過しました。せっかく情報発信するなら、ためになった分収益も出るといいなぁと願いながら毎日確認してないですか?
気になる度にアドセンスにログインすることに疲れたので、学んでいるGASを駆使して、確認作業を自動化してみました。
- メールで通知
⇒その日の収益を夜にメールで送ってもらう - スプレッドシートで管理
⇒分析材料に過去の実績を蓄積
自動化するための事前準備
準備はそんなに難しいものはありません。毎日、大金が発生しているワケでもないのにすごく気にしてしまいます。設定ひとつでストレス解消となりますよ。
- パブリッシャーIDの確認
⇒それぞれに割り当てられた個人のID - 収益管理用のスプレッドシートの作成
共通の設定(トリガー)
毎日の通知が来るようにトリガーの設定をしておくと便利です。設定しておくと、組み込んだスクリプトを定期的に実行してくれるので、確認のためにわざわざ、アドセンスのマイページのログインする必要はなくなります。
\トリガー設定についてはこちらから/
その日の実績をメールで通知
はじめにメールで自動通知してもらう方法です。
Apps Scriptのリファレンスページも参考にしました。
- STEP1GoogleドライブをひらくSTEP5にあるスクリプトを貼るためのファイルをつくります。
- STEP2GASを選択『その他』⇒『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,
まとめ
- メールで自動通知
- リスト化で分析
以上、アドセンスの収益確認について少し手間のかかるログイン作業をなくすための方法でした。『今日は収益あがっているかなぁ?』と私のように実績がでていない人ほど毎日状況を気にしがちです。
その日の確認をざっくりするためのメール通知、過去の実績をまとめて集計・分析をおこなうためのスプレッドシート管理。
この2刀流で小さなストレスともおさらばです。収益の前に役に立つ情報を発信できる力を身につけることを優先しています。
\小さな作業はGASで自動化!!/