Slide 1

Slide 1 text

実践!Google Apps Script を 使ってより便利な Google サー ビスを体験してみよう! 第1回 ローカル Meetup in Okayama 2019年2月10日 @kimipooh (Google Product Expert: Gmail, Chrome, G Suite)

Slide 2

Slide 2 text

自己紹介(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

Slide 3

Slide 3 text

自己紹介(2) WordPress 関連の活動 WordCamp Kansai 2016 実行委員&スピーカー WordCamp Kyoto 2017 実行委員 WordPress Meetup (2017) 登壇(ハンズオン) WordCamp Osaka 2018 実行委員& スピーカー プラグイン開発 &翻訳 & コミュニティ https://profiles.wordpress.org/kimipooh

Slide 4

Slide 4 text

本日のトピック ① 特定条件に一致した Gmail の添付ファイルを Googleドライブへ保存する方法 ② Google Analytics データを Googleスプレットシート に集約し、PDFでメール添付する方法

Slide 5

Slide 5 text

① 特定条件に一致した Gmail の添付ファイルを Googleドライブへ保存する方法 STEP 1. Google Apps Script 環境を整えよう!(1 スライド) STEP 2. Google Apps Script コードを作成しよう!(6 スライド) STEP 3. 動作確認しよう!(2 スライド) STEP 4. スケジュールで自動実行しよう!(2 スライド)

Slide 6

Slide 6 text

目次 1. 対象の絞り込み  「スターがついていない AND 検索演算子」(Gmailの検索機能)で該当メールを絞り込む 2. 添付ファイルがあれば Googleドライブに保存  指定したフォルダに「差出人_ファイル名」で保存 3. 処理したメールにスターをつける 処理の概要

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

STEP 2. Google Apps Script コードを作成しよう!(① / 6) Google ドライブで、Google Apps Script 新規作成 ① 新規 > その他 > アプリの追加を選択

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

STEP 1. 対象の絞り込み(⑤ / 6) Gmail検索で添付ファイルのあるメールがいくつかヒットする 条件を見つけよう! -is:starred has:attachment after:2019/02/01 スターがついていない 添付ファイルがある 2019年2月1日以降 あまり多いと時間がかかる ので、テストでは絞り込む

Slide 13

Slide 13 text

STEP 2. Google Apps Script コードを作成しよう!(⑥ / 6) 検索キーワードを Google Apps Script に設定しよう! var SEARCH_TERM = '-is:starred has:attachment after:2019/02/01'; 最後に保存してくだ さい。

Slide 14

Slide 14 text

STEP 3. 動作確認しよう!(① / 2) Google Apps Script を実行してみよう! ① ▶ マークをクリックします。 ② 最初の一度は、自作スクリプトは安全性が不明のため、 警告がでます。ので警告を無視して実行します。

Slide 15

Slide 15 text

STEP 3. 動作確認しよう!(② / 2) 差出人ごとのフォルダに保存されている 表示名 <メールアドレス> “表示名” <メールアドレス> 表示名 アイコン 差出人:○○メールアドレスから 4通添付ファイル

Slide 16

Slide 16 text

STEP 4. スケジュールで自動実行しよう!(①/ 2) スケジュールの設定 ① 編集 > 現在のプロジェクトのトリガーを選択 ② 次ページの注意点を参考に間隔を設定するとよいです。

Slide 17

Slide 17 text

注意点 サンプルコードは、一度のヒット数を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)

Slide 18

Slide 18 text

② Google Analytics データを Googleスプレットシート に集約し、PDFでメール添付する方法 要 Google Analytics で管理しているウェブサイト

Slide 19

Slide 19 text

(前半)複数の 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 スライド) 目次

Slide 20

Slide 20 text

完成図 ① 複数の Google Analyticsデータから 2018年度のアクセスログを国別に収集する ②それをPDFにしてメール添付する

Slide 21

Slide 21 text

STEP 1. Google Analytics データを取得するまで(① / 5) Google Analytics の ビュー IDを確認 Googleアカウントで 管理している Google Analytics があること を確認

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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 ごとの データ取得設定が追加されていく。 ※コピー&ペーストで追加してもよい

Slide 24

Slide 24 text

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 ユーザー数 ページビュー数 新規ユーザー数 セッション数 直帰率 平均セッション時間 検索キーワード数 国別 ページビューを降順

Slide 25

Slide 25 text

STEP 1. Google Analytics データを取得するまで(⑤/ 5) 設定条件に基づいたデータの取得 データ1 データ2 設定 国別データ トータル データ2 データ1 設定 ① Run reports を選択

Slide 26

Slide 26 text

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")

Slide 27

Slide 27 text

STEP 2. 纏めページの作成(② / 2) 複数の Google Analyticsデータがある場合 ③ 赤い枠を選択してコピーし、緑の部分へペーストする ④体裁を整える

Slide 28

Slide 28 text

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)

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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ボタンをクリックし、表示されたデータをすべて選択してコピーしま す。

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

STEP 5. メール送信の動作確認をしよう!(① / 2) Google Apps Script を実行してみよう! ① スクリプトエディタの「関数を選択」から 「sendArticleCountEmails」を選択します。 ② 最初の一度は、自作スクリプトは安全性が不明のため、 警告がでます。ので警告を無視して実行します。

Slide 35

Slide 35 text

STEP 5. メール送信の動作確認をしよう!(② / 2) メール送信されたデータを確認しよう! メール本文はHTML形式(tableタグ)、添付は PDFがついて下記のようなデータになっていた ら成功です!

Slide 36

Slide 36 text

STEP 6. スケジュールで自動実行しよう!(①/ 1) スケジュールの設定 ① 編集 > 現在のプロジェクトのトリガーを選択 ② 「+ トリガーを追加」ボタンを押し、1日に1度、STEP3 でスケジュー ル設定した、データ取得タイミング(3時-4時)以降のタイミングでスケ ジュールを設定しましょう。

Slide 37

Slide 37 text

Google Apps Script は奥が深い https://kitaney-google.blogspot.com/2019/01/b-google-apps-script-gmail.html 特定フォルダ以下(階層あり)に保存されたファイルの更新日時を取り出し、 Googleスプレットシートに保存  *Googleフォーム経由で提出された資料( Googleドライブに保存)について、いつ誰が提出し たかの把握をしたい!とか・・・( IT管理者が調べなくていい) JavaScript はデザイナーでも学ぶ手軽なウェブ用プログラミングなのでこれ を機会に勉強するのもありかも! その他にやってみたこと