2022年6月14日火曜日

【GAS】Google Analytics 4 のデータを Googleスプレットシートに集約し、PDFでメール添付する方法

Google Analytics (UA) については、以前やり方について書き出していました。

また新たに下記ではなくアドオンなしの実装版を 2023年4月6日に公開しました。

ここで利用したGoogle スプレットシートに「Google Analytics」アドオン が Google Analytics 4 に非対応のため、別のアドオンを使ったやり方を紹介します。

2023年11月20日現在、下記で紹介されているように GA4 Reports Builder for Google Analytics というアドオンが Googleから出ているようです(未検証)
【GA4】GA4用のGoogleスプレッドシートアドオンが公開されました
https://www.analytics.cci.co.jp/column/post/ga4-reports-builder


*下記で紹介する「Google Analytics™ connector by SyncWith」は無料版の場合、35回/月の更新しかサポートされていません。20サイトを毎日1回更新した場合、月に1度しか更新できないことになります。1サイトなら1日1度で問題ないが、それ以上は https://syncwith.com/pricing にあるように Business 以上が必要だということですね。

流れは次の通り
  1. Google Analytics 4 からデータを取得し、Googleスプレットシートに挿入
  2. Googleスプレットシートにまとめページ「TOTAL Summary」シートを作成
  3. Googleスプレットシートに送信先「Send-Emails」シートを作成
  4. Google Apps Script で「TOTAL Summary」シートを、メール本文(HTML)とPDF添付で「Send-Emails」に入力したメールアドレス宛に送信
「3」「4」は Google Analytics (UA) 用のものを流用するので、ここでの説明は割愛します。

STEP 1. Google Analytics 4 からデータを取得し、Googleスプレットシートに挿入

Googleスプレットシートにアドオン「Google Analytics™ connector by SyncWith」をインストールします。


こちらは、従来の Google Analytics 3(UA)に対応しています。

詳しくは、下記のブログ先が参考になると思います。
  1. 拡張機能 > Google Analytics™ connector by SyncWith > Manage connections を開く
  2. Google Analytics 4 を選択
  3. Connect an account ボタンをクリックして、 Google Analytics 4 の管理をしているGoogleアカウントでログインします。
    *もし複数アカウントの Google Analytics 4 からデータを取得したいなら、あとでアカウントを追加できます。
  4. 次の設定あたりで十分でしょう。また下記の設定をしているものとして先に進みます。
    - タイトル:Googleスプレットシートの「シート名」になるので短い名前がよいです
    - Select a login: Googleアカウントを選択
    - Select a Google Analytics account: Google Analytics 4で設定したアカウント
    - Loading properties: Google Analytics 4 のプロパティ
    - 日時:下記は、Between を選択し、2022年度を指定しています。
    - Dimensions: Country のみ(今回は国別アクセス数が必要なため)
    - Metrics: Active users, New users, Views
         New users: 新規訪問者数
       Views: アクセス数
    - Scheduling: Automatically refresh daily (1日に1度更新)
  5. 入力し終わったら Insert ボタンを押すことで、「タイトル」シートが生成され、下図のような国別アクセス数が記録されます。
もし複数ページあるなら、
拡張機能 > Google Analytics™ connector by SyncWith > Manage connections
を開いて「Browse」ボタンを押すことで、サイトを追加していくことができます。

STEP 2. Googleスプレットシートにまとめページ「TOTAL Summary」シートを作成

Total Summary シートを作成します。

シートの2行目まではメモとなります。ただしメールで送付されることになるので、ログの取得期間などの情報をいれておくと便利かと思います。


上記で重要なのは、次の4つです。

Sheet Name: Google Analytics™ connector by SyncWithで設定したタイトル(シート名)

Access Log: 関数「=SUM(INDIRECT(B5 & "!D:D"))」を入れる
*Sheet Name!D:D(Viewsの欄)の合計値となります。

Visitors: 関数「=SUM(INDIRECT(B5 & "!C:C"))」を入れる
*Sheet Name!C:C(Viewsの欄)の合計値となります。

Countries: 関数「=COUNTIF(INDIRECT(B5 & "!A:A"), ">=A")」をいれる
*Sheet Name!A:A(Countryの欄)が空欄でない場合
*COUNTA や COUNTIFの "<>" 条件の場合、空欄にみえてデータが入っているのかうまくいきません。そのため、C言語でよくやる文字の数値での比較「C言語における文字(文字変数char)・文字列の表現(ASCIIコード表つき)」が使えるんじゃないかーと思ってやってみたら上手く言った程度です。ここは改良の余地ありですね。

TOP 10 of Countries: 関数「=INDIRECT(B5 & "!A3:A13")」を入れる
実際には11ヵ国にしてます。Japan がトップになることも多くて、日本以外の TOP 10が知りたいなと思ったためです。このあたりは、A3:A13をA3:A12に変えたりいろいろ調整してください。

ここまで出来たら下記の、
(後半)一括取得した Googleスプレットシートの特定シートデータをメール本文(HTML)と PDF にして添付したメール送信
を参考にしてください。

Googleドライブの共有アイテムで削除できない共有ファイルがある場合の対処方法

下図のように、共有アイテムのファイルを右クリックして「削除」がグレーアウトしている場合があります。その場合の対処方法についてです。

こちらについては、 Google Workspace 提供の 共有フォルダが関連するため、Google Workspace サポートに問い合わせた結果、回答を得ましたので共有します。

重要:削除権限を有している場合、データ元が削除されてしまう

今回の問題は、Google Workspace の「共有フォルダ」においているファイルを、閲覧専用権限で共有した場合、編集権限を持たないユーザーがアクセスすることで、「削除」権限がないためグレーアウトになるということです。

下図のように共有アイテム内にある、共有フォルダデータは、赤丸のアイコンになります。それ以外は人形のアイコンです。


裏を返せば、「共有アイテム」にあるデータのうち「共有フォルダ」にいれたファイルやフォルダについて編集権限(削除権限)がある場合、共有アイテムから削除すると「共有フォルダ」にいれたオリジナルのデータも消えるということです。ですので必ず削除権限のない「グレーアウト」したファイルのみを削除してください。

== Google Workspace サポートからの回答の一部抜粋 ==

共有アイテムから削除権限のない共有フォルダ内データを削除する方法

  1. 共有アイテムを開く
  2. 共有ドライブから共有されているアイテムを右クリックし、”ゴミ箱に移動” がグレーアウトしていることを確認する *(1)
  3. 対象のアイテムをゴミ箱に、ドラッグ・アンド・ドロップで移動する
  4. メッセージを確認し操作を承認する

*(1) "ゴミ箱に移動" がグレーアウトしている = そのアイテムを実際に削除する権限を所持していない状況となります。実アイテムを削除できないため、共有アイテム内でゴミ箱に移動を行っても、共有ドライブ泡のアイテムが削除されることはございません。

なお、共有ドライブ内のアイテムを削除する権限を保つ場合 (ゴミ箱に移動や削除のオプションを選択できる場合)、本操作に操作によって共有ドライブ側のアイテムが削除されますこと、予めご留意ください。

※ 通常では自身がメンバーとなっている共有ドライブ内のアイテムは、共有アイテム上に表示されないものの、ファイル単位でデータを共有された後に、共有ドライブのメンバーとなった場合、自身が削除できるアイテムが、共有アイテム上に表示される恐れがございます。

=== ここまで ===

共有アイテムは、あくまで共有しているだけのため、整理不要という考え方もあります。ただし整理しすぎると、データを消してしまう恐れがあるので注意が必要です。

2022年6月14日 @kimipooh


2022年6月9日木曜日

電子メールソフトやアプリで突然メールが受信できなくなった

2022年6月以降、そうした質問が Gmail ヘルプコミュニティに急増しています。

下記にある通り、2022年5月30日より Google認証システムに対応していない電子メールアプリやソフト類についてサポートが終了したことが原因になっています。


Google OAuth2 対応状況

手持ちの Outlook 2019 と 2021は Google OAuth2に対応していることを確認しました。サードパーティ製のメール クライアントで Gmail を設定する(Google Workspace管理者ヘルプ)をみると、Outlookは 2016は一部対応しているようです。ただ手持ちのものが対応していませんでした。


試してみると、設定し直しが必要でした。

Thunderbird は Google メールアカウントの OAuth 2.0 認証への自動変換

Mozillaのサポートサイト情報によれば、91.8.0 以降 Gmailが設定されている場合 OAuth2 へ設定を自動切り替えしたようです。設定のサーバー設定より、受信と送信について認証方式が OAuth2 となっていれば問題ありません。

非対応の場合

利用されている Gmailについて、2段階認証を有効にした上で、アプリ固有のパスワードを設定すれば利用できるようになるはずです。

2022年6月9日 @kimipooh



どうしてもPOP形式を使いたいのであれば、利用されている Gmailについて、2段階認証を有効にした上で、アプリ固有のパスワードを設定すれば利用できる可能性はあります。