Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Practice! Let's experience more comfortable Google services with Google Apps Script!

Kimiya Kitani
February 10, 2019

Practice! Let's experience more comfortable Google services with Google Apps Script!

The presentation aims to experience more comfortable Google services with Google Apps Script.

The first theme is to automatically save as Gmail attached documents to Google Drive on senders under a specific condition (Gmail search). The folder name is "From" information (Display Name ) and the file name is "From" information and the attached file name (Display Name _the attached file name). When you receive several hundreds documents for offering, you will expect that it spends so many times to open the attached documents. In this case, this Google Apps Script will reduce the operation cost.

The second theme is to automatically send access log of multiple Google Analytics to the e-mail as HTML and PDF. When you need to report so many Google Analytics data, this Google Apps Script will reduce the operation cost.

===
このプレゼンテーションは、Google Apps Scriptを使ってGoogleサービスの利便性を向上する体験をするためのものです。基本的にドキュメントに沿って作業すれば簡単に使えます。

一つ目のテーマは、特定条件(Gmail検索)でGmailに添付されたメールを送信者ごとにGoogle Driveに自動保存するスクリプトです。もし、募集のためのデータを数百添付ファイルとして受け取る場合、添付ファイルを開くのに時間がかかってしまうと思います。そういった場合、本ツールを使えばその運用コストを大幅に軽減できます。

二つ目のテーマは、複数のGoogle Analytics データをまとめてHTMLとPDF形式で自動メール送信する機能です。もし沢山のGoogle Analytics を管理しデータを報告する必要がある場合には、本ツールは役立つと思います。

Kimiya Kitani

February 10, 2019
Tweet

More Decks by Kimiya Kitani

Other Decks in Technology

Transcript

  1. 自己紹介(1) Google 関連の活動 Google Top Contributor サミット 2017 Google Product

    Experts サミット 2018 Google プロダクトエキスパート G Suite管理者 Google Top Contributor サミット 2015 Google Top Contributor サミット 2013 Google Meetup Tokyo 2014 日本・韓国合同 Photo by https://plus.google.com/+GoogleJapan/po sts/FnfpWyxAo9k
  2. 自己紹介(2) WordPress 関連の活動 WordCamp Kansai 2016 実行委員&スピーカー WordCamp Kyoto 2017

    実行委員 WordPress Meetup (2017) 登壇(ハンズオン) WordCamp Osaka 2018 実行委員& スピーカー プラグイン開発 &翻訳 & コミュニティ https://profiles.wordpress.org/kimipooh
  3. ① 特定条件に一致した Gmail の添付ファイルを Googleドライブへ保存する方法 STEP 1. Google Apps Script

    環境を整えよう!(1 スライド) STEP 2. Google Apps Script コードを作成しよう!(6 スライド) STEP 3. 動作確認しよう!(2 スライド) STEP 4. スケジュールで自動実行しよう!(2 スライド)
  4. STEP 1. Google Apps Script 環境を整えよう!(① / 1) Google ドライブで、Google

    Apps Script を有効にしよう! ① 新規 > その他 > アプリの追加を選択 ② 検索窓に「Google Apps」を入れて Enter 「Google Apps Script」について「+接続」をボタンをクリック
  5. STEP 2. Google Apps Script コードを作成しよう!(① / 6) Google ドライブで、Google

    Apps Script 新規作成 ① 新規 > その他 > アプリの追加を選択
  6. STEP 2. Google Apps Script コードを作成しよう!(② / 6) サンプルコードをコピー ②

    サンプルスクリプト(GitHUB)のサイトにアクセス https://github.com/kimipooh/getAttechedFilefromGmailtoDrive (短縮:http://bit.ly/2UMWDxm ) 「getAttechedFilefromGmailtoDrive_star2」を開く ③ Raw ボタンを押して、表示された文字をすべ て選択してコピーする。
  7. STEP 2. Google Apps Script コードを作成しよう!(③ / 6) サンプルコードを Google

    Apps Scriptにペースト ④ コードをすべて削除して、先程コピーしたサン プルコードをペーストする ⑤ 保存する(名前は自由)
  8. STEP 2. Google Apps Script コードを作成しよう!(④ / 6) 保存したい Google

    Drive のフォルダIDを設定しよう! ⑥ Google Drive上でフォルダを作成し、そのフォ ルダを開きます。そしてURLのあるフォルダIDを コピーします。 https://drive.google.com/drive/u/0/folders/◦◦◦◦◦ URLの /folders/ の次にある文字列が、フォルダーID のため、ここを選択してコピーします。 ⑦ Google Apps Script の var FONDER_ID = “フォルダID”; にフォルダIDをペーストします。 フォルダID
  9. STEP 1. 対象の絞り込み(⑤ / 6) Gmail検索で添付ファイルのあるメールがいくつかヒットする 条件を見つけよう! -is:starred has:attachment after:2019/02/01

    スターがついていない 添付ファイルがある 2019年2月1日以降 あまり多いと時間がかかる ので、テストでは絞り込む
  10. STEP 2. Google Apps Script コードを作成しよう!(⑥ / 6) 検索キーワードを Google

    Apps Script に設定しよう! var SEARCH_TERM = '-is:starred has:attachment after:2019/02/01'; 最後に保存してくだ さい。
  11. STEP 3. 動作確認しよう!(① / 2) Google Apps Script を実行してみよう! ①

    ▶ マークをクリックします。 ② 最初の一度は、自作スクリプトは安全性が不明のため、 警告がでます。ので警告を無視して実行します。
  12. 注意点 サンプルコードは、一度のヒット数を30に制限しています。 var myThreads = GmailApp.search(SEARCH_TERM, 0, 30); https://developers.google.com/apps-script/guides/services/quotas 最大500まで設定可能

    Quotas for Google Services Email read/write (excluding send) によれば、 • 無料版Gmail 20,000件/日 • G Suite    50,000件/日 です。 一回30件なら、666回まで実行できますが、最大の 500にすると わずか40回実行するだけで 20,000 回にな ります。もし5分おきに自動実行するトリガーをしかけていたなら、 1時間に12回実行されるわけなので G Suite なら耐えられますが、無料版はオーバーしちゃいますので注意。 STEP 4. スケジュールで自動実行しよう!(② / 2)
  13. (前半)複数の Google Analytics データを Googleスプレットシートに 保存 STEP 1. Google Analytics

    データを取得するまで(5 スライド) STEP 2. 纏めページの作成(2 スライド) STEP 3. スケジュールで自動実行しよう!(1 スライド) (後半)Googleスプレットシートの特定シートデータをメール本文 (HTML)と PDF にして添付したメール送信 STEP 4. Google Apps Script でメール送信設定をしよう!(3 スライド) STEP 5. メール送信の動作確認をしよう!(2 スライド) STEP 6. スケジュールで自動実行しよう!(1 スライド) 目次
  14. STEP 1. Google Analytics データを取得するまで(① / 5) Google Analytics の

    ビュー IDを確認 Googleアカウントで 管理している Google Analytics があること を確認
  15. STEP 1. Google Analytics データを取得するまで(② / 5) Google スプレットシートに Google

    Analytics アドオンを追加 ① Google スプレットシートを新 規作成(名前もつけておく) ② Google Analytics で検索 ③ + 無料 ボタンをクリック ④ アドオン導入アカウントを選択 ⑤ Google Analyticsアドオン によるアカウントへの必要なア クセスを許可する ⑥ 追加完了
  16. STEP 1. Google Analytics データを取得するまで(③ / 5) Google Analytics アドオンで取得条件設定を作成する

    ① ② 入力し終わったら Create Reportボ タンを押す 1) Name your report : タイトル名(自 由記載) 2) Select a view : Googleアカウント で管理している Google Analytics 一 覧がでるので選択 3) Choose configuration options この時点では入力しない(空欄) ③ 取得したい データが複数あるなら①、 ②を繰り返す B, C, D, .. にGoogle Analytics ごとの データ取得設定が追加されていく。 ※コピー&ペーストで追加してもよい
  17. STEP 1. Google Analytics データを取得するまで(④ / 5) データ取得条件設定の詳細を設定する Start Date:

    2018-04-01 End Date : =TODAY() - 1 Metics: ga:users ga:pageviews ga:newusers ga:sessions ga:bounceRate ga:avgSessionDuration ga:organicSearches Dimensions: ga:country Order: -ga:pageviews 今年度から昨日まで Metics 一覧 https://developers.google.com/analytics/devguides/reporting/core/dimsmets ユーザー数 ページビュー数 新規ユーザー数 セッション数 直帰率 平均セッション時間 検索キーワード数 国別 ページビューを降順
  18. STEP 2. 纏めページの作成(①/ 2) メール送信用シートの作成 ①シート1をダブルクリックして「TOTAL Summary」に名前変更(名前固定)、シートをシートを先頭に移動 ②体裁を整えて、各シートに文字や関数を入れ込む(下記なら、コピー&ペーストでOK) A1: From

    B1: ='Report Configuration'!B4 C1: To D1: ='Report Configuration'!B5 B3, C3: URLがあると分かりやすい(自由記載) A4-18: 項目名を入れる(自由記載) B4: ='Report Configuration'!2:2 B5: =INDIRECT(B4 & "!C12") B6: =INDIRECT(B5 & "!B12") B7: =COUNTA(INDIRECT(B4 & "!A16:A1000"))+IF(COUNTIF(INDIRECT(B4 & "!A16:A1000"),"(not set)"), -1,0) B9: =INDIRECT(B4 & "!A16:A25")
  19. STEP 2. 纏めページの作成(付録) 関数の意味 B5: =INDIRECT(B4 & "!C12")  「レポート名」シートの C12データを挿入

    B6: =INDIRECT(B5 & "!B12")  「レポート名」シートの B12データを挿入 B7: =COUNTA(INDIRECT(B4 & "!A16:A1000"))+IF(COUNTIF(INDIRECT(B4 & "!A16:A1000"),"(not set)"), -1,0)  「レポート名」シートのA16-1000(国別項目が存在する場合の総数をカウント、ただし (not set) があった場合には -1 する (国名がない unknown のため)) B9: =INDIRECT(B4 & "!A16:A25")  「レポート名」シートの A16-25 のデータを順に挿入(トップ10)
  20. STEP 3. スケジュールで自動実行しよう!(①/ 1) スケジュールの設定 ① Schedule reportsを選択 ② Enableをクリックし、毎日実行(下記は、4時-5時のタイミン

    グ)を設定し「Save」ボタンをクリック 毎日、4-5時のタイミングで、2018年4月1日から、一日前ま での Google Analytics のデータを再構築する
  21. STEP 3. スケジュールで自動実行しよう!(①/ 1) スケジュールの設定 ① Schedule reportsを選択 ② Enableをクリックし、毎日実行(下記は、4時-5時のタイミン

    グ)を設定し「Save」ボタンをクリック 毎日、4-5時のタイミングで、2018年4月1日から、一日前ま での Google Analytics のデータを再構築する
  22. STEP 4. Google Apps Script でメール送信設定をしよう!(①/ 3) 送信先メールアドレス用シートの作成「Send-Emails」 ① シート部分の「+」をクリックして新規シートを作成

    ② シート名を「Send-Emails」に変更 ③ 下記のようなシートを作成します。 1行目はメモ(自由記載) 2行目は項目名(自由記載) 3行目以降(送信先)   A3-100 : 表示名   B3-100 : メールアドレス  
  23. STEP 4. Google Apps Script でメール送信設定をしよう!(②/ 3) Google Apps Scriptを登録しよう

    ① GitHUBで公開している sendArticleCountEmail.js を開きます。 https://github.com/kimipooh/sendArticleCountEmails/blob/ master/sendArticleCountEmails.js (短縮:http://bit.ly/2DX4q5T ) ② Rawボタンをクリックし、表示されたデータをすべて選択してコピーしま す。
  24. STEP 4. Google Apps Script でメール送信設定をしよう!(③/ 3) Google Apps Scriptを登録しよう

    ① Googleスプレットシートの「ツール」→「スクリプトエディ タ」を選択 ② コードを全部消して、先程コピーしたものをペースト します。 ③ 名前をつけて保存します。 下記では sendArticleCountEmails という名前で保存
  25. STEP 5. メール送信の動作確認をしよう!(① / 2) Google Apps Script を実行してみよう! ①

    スクリプトエディタの「関数を選択」から 「sendArticleCountEmails」を選択します。 ② 最初の一度は、自作スクリプトは安全性が不明のため、 警告がでます。ので警告を無視して実行します。
  26. STEP 6. スケジュールで自動実行しよう!(①/ 1) スケジュールの設定 ① 編集 > 現在のプロジェクトのトリガーを選択 ②

    「+ トリガーを追加」ボタンを押し、1日に1度、STEP3 でスケジュー ル設定した、データ取得タイミング(3時-4時)以降のタイミングでスケ ジュールを設定しましょう。