LANG SELRCT

Apps Script Reference  (Create: Create new Spreadsheet | Create new Apps Script

2020年6月30日火曜日

データポータルのビューで別のGoogle Analyticsデータを読み込みたい


MISSION
作成したレポートのビュー画面で、別のGoogle Analyticsデータを表示できるようにする



STEP1
データ管理アイコンをクリックします。



STEP2
任意の位置に配置します。



STEP3
ビュー画面を開いてクリックします。



STEP4
アクセス可能なGoogle Analyticsデータが表示されます。
複数ある場合は複数のデータが選択肢に現れます。



これを利用すると
ユーザAが作った「レポートX」をユーザBに共有した際、
ユーザBは自分のGoogle Analyticsデータを「レポートX」に読み込んで表現できる。
つまりユーザBはレポートを自作せずに、ユーザAが作ったレポートを利用できる。


参考

レポートで使用するデータセットを閲覧者が選択できるようにします

2020年6月28日日曜日

データポータルでフィルタを設定する3つの方法(フィルタを追加/フィルタの適用/フィルタオプション)


データポータルでは用途に応じて複数のフィルタの設定ができる。
現在把握できているフィルタは以下の3つ。
それぞれ理解して使い分けられると操作性の良いレポートが作れそう。



その1

フィルタを追加
グラフに対して予め設定しておくフィルタで、閲覧ユーザはフィルタを操作できない。

試した方法



その2

フィルタを適用
閲覧ユーザはグラフ上のデータをクリックしてフィルタ操作できるが、共有はできない。

試した方法



その3

フィルタオプション
閲覧ユーザがレポート上でフィルタを操作できて、その状態のURLを共有できる。

試した方法
閲覧者がフィルタした結果を共有したい を設定する必要がある)



関連記事



参考

フィルタを作成、編集、管理する

データポータルでドリルダウンを有効にしたい


MISSION
データポータルで日付をドリルダウンできるようにする
(data source: Google Analytics)


BEFORE 
月・週・日付それぞれの列が表示される


AFTER 
日付 > 週 > 月 にドリルアップ(⇔ドリルダウン)して表示できるようになる


KEY
データ > ディメンション > ドリルダウン



STEPS


STEP1

ディメンションで月・週・日付を設定します。



STEP2
並べ替えを日付の降順に設定します。


STEP3
ドリルダウンを有効にします。


STEP4
デフォルトのドリルダウン を日付に変更します。



参考 

閲覧者がデータにドリルダウンできるようにする

大量のGmailをスクリプトでアーカイブしたい


コードを書いた背景
  • Gmailの受信トレイに数万件溜まっていた
  • 画面上でぽちぽちアーカイブするには大変な量だった
  • コードで自動化する方法を考えて試した


一発でアーカイブしたかったけれど、以下の制約にぶつかり、トリガーで実行しました。


ぶつかった制約
  • スレッドの取得はMaxで500件まで
  • moveThreadsToArchiveできるのはMaxで100件まで

これを踏まえて、以下のコード.gsの archiveGmail() をトリガーに設定して自動アーカイブを試みました。


試運転してみて、500件処理するのに300秒くらいかかったため、5分おきのトリガーで実行しました。


補足:
途中で1日の実行制限を超えてしまったのか他の原因か、「Gmail の操作を行うことはできません。」というエラーが出てしまい、それ以上処理ができなくなりました。
残りが5000件くらいだったので、画面上でアーカイブして、受信トレイを空にすることができました。



コード.gs
/************************************
これを5分おきのトリガーに設定して実行して
thredsがなくなるとdeleteTriggerでトリガー自動削除

作業時間外で実行しないと、受信したメールが全てアーカイブされるので注意
************************************/
function archiveGmail() {
  var start = 0;
  var end = 100;
  var add = 100;
  
  var query = 'in:inbox';// ここで対象を絞れる
  var threads = GmailApp.search(query);
  if(threads.length > 0) {// threadsがあれば
    for(var j = 0; j < 5; j++) {// maxで500件まで取得できるGmailAppの仕様らしい
      console.log(j);
      var threads100 = [];// 100threadsを入れる配列
      if(threads.length < end) {// threadsがendの数より小さければ
        end = threads.length;// endの数値を入れ換える
      }
      
      for(var i = start; i < end; i++) {// maxで100件まで処理できるGmailAppの仕様らしい
        console.log([i, threads[i].getFirstMessageSubject()]);
        threads100.push(threads[i]);
      }
      GmailApp.moveThreadsToArchive(threads100);// 100threadsをアーカイブする
      start = start + add;
      end = end + add;
    }
  } else {// 処理が完了して全てのスレッドがアーカイブできた
    deleteTrigger("archiveGmail");// トリガーを削除する
    console.log("trigger deleted");
  }
}

/************************************
トリガーをfunctionNameを指定して削除する
************************************/
function deleteTrigger(functionName) {
  var allTriggers = ScriptApp.getProjectTriggers();
  for (var i = 0; i < allTriggers.length; i++) {
    if (allTriggers[i].getHandlerFunction() == functionName) {
      ScriptApp.deleteTrigger(allTriggers[i]);
      break;
    }
  }
}



参考

Gmail Service

データポータルでデフォルトの日付範囲を変更したい


MISSION
データポータルでデフォルトの日付範囲を変更する
(data source: Google Analytics)


BEFORE 
デフォルトでは過去28日間(今日を除く)になっている


AFTER 
日付の範囲を「今年」にして1月から今日までの結果が表示される
(BEFOREでは28日→180日)



KEY
データ > デフォルトの日付範囲



STEPS


STEP1
データ > デフォルトの日付範囲 > カスタムを選択します。


STEP2 
過去 28 日間(今日... をクリックします。


STEP3
過去 28 日間 ▼ をクリックします。


STEP4
今年 を選択します。


STEP5
適用 します。



データポータルで並び替えの昇順・降順を切り替えたい


MISSION
データポータルで日付の並び替えの昇順・降順を切り替える
(data source: Google Analytics)


BEFORE 
デフォルトでは指標の降順で並び替えられている



AFTER 
日付の降順で並べ替えた結果が表示される


KEY
データ > 並べ替え



STEPS 


STEP1
ディメンション > 日付 で検索して「日付」を選択します。


日付ごとのページビュー数の表を作ります。


STEP2
並べ替えをクリックします。


STEP3
日付を選択します。



APPENDIX

ディメンションが複数ある時はサブの並び替えの設定もできます。


参考 

データを並べ替える

データポータルでページあたりの行数を設定したい


MISSION
データポータルでページあたりの行数を設定する
(data source: Google Analytics)


BEFORE 
デフォルトでは1ページ100行の表示になっている


AFTER 
1ページあたり500行の表示に変わる


KEY
データ > ページあたりの行数



STEPS 


STEP1
データ > ページあたりの行数 を選択します


STEP2
500 に変更します。



STEP3
ページあたりの行数が変更されます。




データポータルでフィルタオプションを配置したい(挿入 > フィルタオプション)


MISSION
データポータルでフィルタオプションを配置してフィルタをかける
(data source: Google Analytics)


BEFORE 
フィルタオプション配置前


AFTER 
ブラウザのフィルタオプションが配置される

ブラウザを選択してフィルタをかけることができるようになる


KEY
挿入 > フィルタオプション



STEPS


STEP1
フィルタオプションアイコンをクリックします。

(挿入 > フィルタオプションからも追加できます)


STEP2
任意の位置でクリックすると配置されます。


STEP3
ディメンションでブラウザを検索して選択します。


ブラウザのフィルタオプションが配置されました。


STEP4
ビュー画面でブラウザをChromeだけ選択してみます。


APPENDIX


フィルタオプションのデータ項目


フィルタオプションのスタイル項目



参考

フィルタ オプションについて

フィルタ オプションの追加と設定





コード.gs
function doGet() {
  return HtmlService.createHtmlOutputFromFile("index");
}
意訳
この機能がやること
指定したHTMLファイルを表示する




index.html
<!DOCTYPE html>
<html>
  <body>
    <input type="date">
  </body>
</html>
意訳
これはHTML5文書です


日付けの入力ボックスを置く





データポータルでフィルタの適用を使ってみる(データ > フィルタを適用)


MISSION
データポータルでフィルタの適用を有効にする
(data source: Google Analytics)


BEFORE
ブラウザの種類を選択しても表にフィルタは適用されない


AFTER
ブラウザの行をクリックすると選択されたブラウザでフィルタした結果が表示される


KEY
データ > フィルタの適用



STEPS


STEP1
ページタイトルの表でフィルタを適用をチェックします。



STEP2
ブラウザの表でもフィルタを適用をチェックします。


これで2つの表にフィルタが適用されるようになりました。


STEP3
ビュー画面でブラウザのChromeの行をクリックしてみます。
Chromeでフィルタした結果が表示されるようになります。



APPENDIX


複数のフィルタを同時に適用したい場合は⌘を押しながら選択します。
e.g. ChromeとEdgeでフィルタする


戻したい時はフィルタした表の左上の矢印をクリックします。


参考

フィルタについて

データポータルのフィルタを追加・編集・削除したい(データ > フィルタを追加)



MISSION
データポータルでフィルタを追加してブラウザをChromeに絞る
(data source: Google Analytics)


BEFORE
すべてのブラウザの結果が表示されている


AFTER
ブラウザをChromeでフィルタした結果が表示される


KEY
データ > フィルタを追加



STEPS

STEP1
データ > フィルタ > フィルタを追加


STEP2
フィルタを保存する
① 名前
② 一致条件
③ ブラウザ
④ 次に等しい(=)
⑤ Chrome
⑥ 保存


フィルタが追加されます




APPENDIX


鉛筆アイコンをクリックすると編集できます。


右端のバツアイコンをクリックすると対象のデータから削除できます。


レポートから削除したい時は リソース > フィルタの管理 をクリックします。

ゴミ箱アイコンで削除できます。


参考

フィルタを作成、編集、管理する

Latest post

Googleドライブのファイルを指定フォルダに移動したい - Move a file to a specific folder in Google Drive via Apps Script

Googleドライブのファイル移動を簡単にしたくて書いたコードです。 I wrote this code to make it easier to move files in Google Drive. 移動したいファイルURLと移動先のフォルダURLを入力して移動するWebアプ...