かずきち。の日記

サーバサイドエンジニアのつぶやき

のべ21万時間を自動化!5ヶ月でアクセス80倍!アドセンスは自動化して解決しないといけないな

アドセンス収益が伸び悩む

Googleアドセンスはアクセス数別収益の目安が一応公表されています。(非公式)

tanweb.net
引用:
https://tanweb.net/2018/03/30/20354/

何PVでどれくらいの収益が上がるかはいろんなサイトで語られています。
月100万とかは1人の力だと難しくて、何人かで力を合わせないと無理です。

1人YouTuberはすごい

収益を上げるにしても、何人で収益を上げるかは大事。

www.uuum.co.jp

基本的にYouTuberは自身の動画づくりに専念して
経費の精算などの事務方はマネジメント会社にやってもらいます。
多くのYouTuberで税務などわからないだろ?って人も動画を出しているわけです。

f:id:kazukichi_0914:20210825095206g:plain

収益の計算は自動化しないと

アドセンスだと毎日,収益が上がってくるのですが…
いちいちエクセルに転機するのもどうかなー?と思ってます。
ちなみに一般的な会社は平気で
「このエクセルを毎日〜〜時になったらデータを計算してここに移動しておいてね」
とか言ってきます。
言い換えると「たぶん、自動化していいからね?」って言ってるんだと思います。

function myFunction(){   
  //昨日の日の収益を移動
  // 現在アクティブなシートを取得
  var sheet = SpreadsheetApp.openById('*********************************');

  //先日のAdSenseデータの移動
  sheet.getRange("A2:J1000").moveTo(sheet.getRange("A3"));

  // 今日の日付を格納
  var date = new Date();
  Logger.log(Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy-MM-dd'));
  var today = Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy-MM-dd')-2;
  sheet.getRange("A2").setValue(today);

  //一週間前を取得
  var date = new Date(); //現在日時のDateオブジェクトを作る
  var today = Utilities.formatDate(date, 'JST', 'yyyy-MM-dd');
  
  //現在の「日」を取得
  var day = date.getDate();
  Logger.log(day); //5
  
  //前日日付にしたいので-1する
  date.setDate(day-7);
  Logger.log(date); //Wed Sep 04 19:33:33 GMT+09:00 2019
  
  //日付の表示形式を整形する
  var lastweek = Utilities.formatDate(date, 'JST', 'yyyy-MM-dd');
  Logger.log(lastweek); //2019/09/04
  
  var adClientId = 'ca-pub-*******************';
  var startDate = lastweek;
  var endDate = today;
  var metrics = ['PAGE_VIEWS', 'CLICKS', 'PAGE_VIEWS_CTR', 'COST_PER_CLICK', 'PAGE_VIEWS_RPM','EARNINGS'];
  var args = {'metric': metrics,
 'dimension': ['WEEK'],
 'filter': ['AD_CLIENT_ID==' + adClientId],
  };

  var report = AdSense.Reports.generate(startDate, endDate, args).getRows();
  Logger.log(report[1]);
  Logger.log(report[1][1]);
  sheet.getRange("A2").setValue(report[1][0]);
  sheet.getRange("B2").setValue(report[1][1]);
  sheet.getRange("C2").setValue(report[1][2]);
  sheet.getRange("D2").setValue(report[1][3]);
  sheet.getRange("E2").setValue(report[1][4]);
  sheet.getRange("F2").setValue(report[1][5]);
  sheet.getRange("G2").setValue(report[1][6]);

  //pv取得
  var pv =sheet.getRange("B2");
  var pv2 = pv.getValue();

  //クリック数取得
  var click =sheet.getRange("C2");
  var click2 = click.getValue();

  //CTR取得
  var ctr =sheet.getRange("D2");
  var ctr2 = ctr.getValue();+"\nCTR:"+ctr2

  //CPC取得
  var cpc =sheet.getRange("E2");
  var cpc2 = ctr.getValue();
  
  //RPM取得
  var rpm =sheet.getRange("F2");
  var rpm2 = ctr.getValue();

  //収益取得
  var earn =sheet.getRange("G2");
  var earn2 = ctr.getValue();

  //総収益
  var all =sheet.getRange("J1");
  var all2 = ctr.getValue();

  var messageText = "\n"+today+"\nPV数:"+pv2+"\nクリック数:"+click2+"\nCPC:"+cpc2+"\nRPM:"+rpm2+"\nEARN:"+earn2+"\n\n総収益"+all2;

  // LINEから取得したトークン
  let token = "***********************************"
  let options = {
   "method" : "post",
   "headers" : {
     "Authorization" : "Bearer "+ token
   },
   "payload" : {
     "message" : messageText
   }
 }

 const FValues = sheet.getRange('A:A').getValues();  //A列の値を全て取得
 var lastrow = FValues.filter(String).length;  //空白の要素を除いた長さを取得

 let url  = "https://notify-api.line.me/api/notify"
 if(sheet.getRange("C"+lastrow).getValue() !== ""){
 UrlFetchApp.fetch(url, options)
 }

  var date = new Date();
  //今日の日付を表示
  Logger.log(Utilities.formatDate( date, 'Asia/Tokyo', 'yyyyMMdd'));
  Logger.log(date);

  var calender = CalendarApp.getCalendarById("******************@group.calendar.google.com");
  
        const option = {
      description: '収益詳細\n'+messageText+'\nhttps://docs.google.com/spreadsheets/d/e/*************/pubchart?oid=1388776535&format=interactive',
      }
  
    calender.createAllDayEvent(
    "収益:¥"+earn2
  , new Date(date)
  , option
   );

}

なので、さくっと自動記録のスクリプトを書きました。
もし10分の作業を365日40年自動化すると…

10分/1日*365日*40年=21万時間の短縮になります。

スクリプトを使うに当たっての注意事項です

分かる人はこのままスクリプトを使ってもらっていいですが、プログラミングの世界にはどのサービスと連携するか?という機能がありまして…

f:id:kazukichi_0914:20210825101405g:plain

今回はSheetsとAdSenseをオンにしています。
なので使う方はこちらを忘れずに。

使い方わからん

developers.google.com
引用:
https://developers.google.com/apps-script/advanced/adsense

自分で先程のコードを改造してもいいですが、ドキュメントは提供されています。
サンプルコードもあって親切です。
強いていうと英語で書いてあるっていう問題はありますが…