2023年11月23日木曜日

Outlook.com のメールをGmailで受信するためには(Gmailify 編)

 以前、POP3版を投稿しましたが、Gmailify編は試していないことに気がついたのでやってみました。

なお利用した @outlook.com は2段階認証を有効にしていて、スマートフォンにおいて Microsoft Authenticator アプリでの認証を追加しています。

1. PCのブラウザより、 https://gmail.com (PC版Gmail)にログインして、Gmailの設定→アカウントとインポートの「他のアカウントのメールを確認」にある、「メールアカウントを追加する」を選択



2. メールアカウント追加で、*** @outlook.com のメールアドレスを入力して「次へ」

3. 「Gmailify でアカウントをリンクする」を選択して「次へ」

3. Microsoftへのログイン画面が出てくるので「通知の送信」(2段階認証有効時)

4. スマートフォンなどの2段階認証確認を完了すれば、画面は下記のように出てくるので、「はい」をクリックします。

5. うまくいけば、下記のようにGmailify によるリンクが完了します。

6. 設定に追加されていることを確認します。そして「メールを今すぐ確認する」を1回クリックしておきましょう。実際には無反応にみえますが、確認はされています。

7. Gmailの最初の画面に移動し、左サイドメニューの「ラベル」に @outlook.com が追加されていることを確認してみてください。こちらにも、@outlook.com のほうで受信されているメールが表示されることになります。 

8. またあとでGmail設定のアカウントとインポートをチェックすると、下記のように同期されていることがわかります。これが少し時間がかかるかもしれません。

2023年11月23日 @kimipooh

2023年8月24日木曜日

コマンドラインツール exiftool を使ったダウンロードしたGoogleフォト写真・動画のファイル更新日時の修正方法(Mac編)

Googleフォトにアップロードされたデータをダウンロードして利用したいと思うとき、ファイルの更新日時がダウンロードした日時になってしまうため、いつ撮影されたのかを調べるの画面です。

そこでコマンドラインツールを使った一括変更の方法がうまくいったので備忘録として残します。

*2023年8月24日の時点で macOS 13.5 で検証しています。

exiftool のインストール


1. 「ターミナル」アプリより、Howbrew のインストール

参考:https://brew.sh/index_ja

2. 「ターミナル」アプリより、brew install exiftool をタイプして exiftool をインストール。

これが最も簡単です。

それ以外には、https://exiftool.org/ よりバイナリーデータ(exiftool)をダウンロードして、 PATHの設定しているフォルダへ配置するという手もあります。PATHはなに?という場合には、Howbrewのような様々なコマンドラインツールを手軽にインストールできるツールをつかうのがよいでしょう。

変換方法


1. オリジナル写真はバックアップしておきます(上書きするので)。

2. 「ターミナル」アプリを起動

3. cd 画像や動画が置いているフォルダ(フォルダを「ターミナル」アプリへドラッグ&ドロップしてもいい)

4. 変換する

一旦、ファイル更新日時を撮影日時へ変更してみます。

exiftool "-FileModifyDate<DateTimeOriginal"  *

これでunchanged など変更されない場合には、写真や動画のEXIFに撮影日情報がないということになります。

そのような場合には、ファイルの更新日時をファイル作成日へ変更します。

撮影するファイル形式は JPEGや HEICなどだろうと思います。

PNG(スクリーンショットなど)で撮影データは保存しないと思いますから、CreatedDateというEXIF情報内の作成日をファイル変更日へ変更する指定をしてみてください。

exiftool "-FileModifyDate<CreateDate"  *.png

exiftool "-FileModifyDate<CreateDate"  *.PNG

などPNGファイルを指定してみてください。

動画に関しては、下記のDateCreated がEXIF情報内の作成日となります。

exiftool "-FileModifyDate<DateCreated" *.mp4

exiftool "-FileModifyDate<DateCreated" *.MOV

EXIF情報のどれが使えるのか調べる方法


exiftool -time:all -s  ファイル名

で調べることができます。

exiftool -time:all -s  *.png

たとえば、iPhoneでのスクリーンショットだと下記のようになります。ここで使えそうなのは、DateCreatedであるとわかるでしょう。

FileModifyDate                  : 2023:08:23 17:46:38+09:00
FileAccessDate                  : 2023:08:24 09:55:50+09:00
FileInodeChangeDate         : 2023:08:24 09:55:46+09:00
DateCreated                     : 2023:07:02 09:16:30
ProfileDateTime                 : 2022:01:01 00:00:00

MP4やMOVなど動画の場合には、下記のようにCreateDateが使えることがわかります。

FileModifyDate                  : 2023:08:23 17:46:40+09:00
FileAccessDate                  : 2023:08:24 10:14:59+09:00
FileInodeChangeDate             : 2023:08:24 09:55:46+09:00
CreateDate                      : 2023:05:21 09:39:02
ModifyDate                      : 0000:00:00 00:00:00
TrackCreateDate                 : 0000:00:00 00:00:00
TrackModifyDate                 : 0000:00:00 00:00:00
MediaCreateDate                 : 0000:00:00 00:00:00
MediaModifyDate                 : 0000:00:00 00:00:00

もし撮影日情報が入っている場合には、DateTimeOriginal にデータが入っています。

FileModifyDate                  : 2023:07:20 10:36:43+09:00
FileAccessDate                  : 2023:08:24 10:18:12+09:00
FileInodeChangeDate             : 2023:08:24 10:18:10+09:00
DateTimeOriginal                : 2023:07:20 10:36:43
SubSecTimeOriginal              : 637
OffsetTimeOriginal              : +09:00
ProfileDateTime                 : 0000:00:00 00:00:00
SubSecDateTimeOriginal          : 2023:07:20 10:36:43.637+09:00

2023年8月24日 @kimipooh

2023年7月3日月曜日

Web版Gmailに設定した他の「差出人メールアドレス」について、その差出人メールアドレスで送信するとエラーになる

Web版Gmailには、他のメールアドレスを差出人として送信できる機能があります。

その機能を使った場合、Gmailからメール送信はできますが、相手に届かず設定した「他のメールアドレス」宛に、Gmailからエラー返信される場合があります。少なくても手持ちの独自ドメインレベルでの検証では、Gmailからのエラー返信としては、SPF or DKIM設定をされていないことが原因というものでした。

いつからかは分かりませんが、手持ちの独自ドメインメールアドレスを使って検証してみると、下記の影響を受けているようだということがわかりました。

  • Gmail ユーザーへのメールがブロックされたり迷惑メール扱いされたりしないようにするhttps://support.google.com/mail/answer/81126?hl=ja
    ==一部抜粋==
    2022年11月から、「Google Gmail アカウントにメールを送信する新規の送信者は SPF または DKIM の設定が必須になりました」とあり、この影響はかなり大きいだろうと思います。
    ==========


下記のようなメールを受け取った場合、次の対策をしてみてください。

件名: Undelivered Mail Returned to Sender

<***@gmail.com>: host gmail-smtp-in.l.google.com[142.251.170.26] said:
550-5.7.26 This mail is unauthenticated, which poses a security risk to the
550-5.7.26 sender and Gmail users, and has been blocked. The sender must
550-5.7.26 authenticate with at least one of SPF or DKIM. For this message,
550-5.7.26 DKIM checks did not pass and SPF check for [cseas.org] did not
pass 550-5.7.26 with ip: [163.44.185.92]. The sender should visit
550-5.7.26 https://support.google.com/mail/answer/81126#authentication

対処方法


Web版Gmailに追加したメールアドレスについて、SPFかDKIM設定を行う。
SPF設定については、「Gmailから送信する」ことを許可するために、include:_spf.google.com を追加する。

SPFやDKIM設定については、メールアドレスの管理運用元に相談してみてください。

無料版Gmailはともあれ、プロバイダメール等自分が保有する独自ドメインでなければ SPF設定などをさせてもらえない可能性があるかもしれませんね。あるいは DKIMの設定をされていたら大丈夫なのかもしれません。そこは個人的に検証できるドメインをもっていないので分かりません。

ただし、以前からWeb版Gmailの差出人として登録していた @outlook.com、@yahoo.co.jp、@yahoo.com については SPFも DKIMも pass していました。また @outlook.com は削除して登録しなおしても同じ結果になりました。

となると主要クラウドサービスは特に制限が設けられていないのかもしれません。あるいは、ムームードメインでしか試していないので、一部ドメインだけの話かもしれません。

検証


ムームーメール:***@独自ドメイン
DNS:ムームーDNS



独自ドメインに対して、SPF設定(DNSのTXT)を設定するとき、次の3つのパターンで検証した。
  1. v=spf1 include:_spf.muumuu-mail.com  ~all
     *設定前と同じ、SPF or DKIM設定出来ていないというエラー返信がされる
  2. v=spf1 include:_spf.google.com ~all
     *SPFが passし、相手先にメールが届いた。
  3. v=spf1 include:_spf.muumuu-mail.com include:_spf.google.com ~all
     *SPFが passし、相手先にメールが届いた
このことから、SPF設定に関しては、***@独自ドメイン、すなわち独自ドメインに対して GoogleのSMTPからの送信を許可する設定が必須になったとも言える結果となりました。

2023年7月3日 @kimipooh

2023年6月21日水曜日

Google アルバムアーカイブの終了(2023年7月19日)に伴う事前作業について

 ネットニュース(ITMedia)などで知ったのですが、改めて自分のメールをみると、たしかに「アルバム アーカイブに関するお知らせ」という件名で 6月17日にメールが来ていました。

そのメールにある詳細情報へのリンクは下記の通りです。


対象となるデータは?


すでにサービス終了している Picasa ウェブアルバムであり、Picasa、Picasa ウェブ アルバム、Picasa ウェブ アルバム用 API の現状 をみると、
  • Google+(すでにサービス終了)
  • Google Blogger
  • ハングアウト(すでに廃止、Chatへサービス移行)
が対象のようです。

実際にどのような写真が保存されているか確認してみる


下記にアクセスしてみてください。


私の場合には、 Google Blogger 上でアップロードした写真がありました。

Google Blogger 上の写真は大丈夫?


Google アルバム アーカイブからコンテンツをダウンロードする のBlogger リンク先である下記より、各Bloggerのアルバムをチェックしてみると、 Picasaサービスが終了した2015年5月1日以前の写真もあります。(私のブログは 2014年作成であり、そこからの写真もある)。


こちらに表示されているなら消えないのではないかと思います。
Googleフォトコミュニティ「アルバムアーカイブのサポートが無くなるとブロガー上の画像は無くなる?」においても、同じ見解を示すエキスパートもいます。

Blogger の画像ストレージの更新(Google Blogger)のヘルプをみる限り、従来のアルバムアーカイブから Blogger 専用のストレージへ更新されているように見て取れます。ですので下記に入っていれば大丈夫そうだと思います。


いずれにせよ、下記を参考に一度バックアップ(*後述)は取っておくほうがよさそうには思います。

Googleアルバムアーカイブのデータを手動削除するとどうなる?


 Googleアルバムアーカイブ( https://get.google.com/albumarchive )にある写真を削除しようとすると、下記のような警告が出てきます。この写真をバックアップしておいて、警告を無視して「削除」を押してみます!


削除してすぐには反映されていませんでしたが、しばらくすると Blogger上での画像が消えていました。Blogger の写真管理場所 https://www.blogger.com/mediamanager/ からも消えていました。

このように明示的に消すと連動して消えるようです。
これで手動で削除すると消えることはわかりました。

Googleアルバムアーカイブのバックアップはどうする?


膨大なバックアップがない(数万とか数十万写真とか)のであれば、バックアップ先としてGoogleドライブに一旦保存しておくのが無難かなと思います。

まずは下記を参考に容量が5GBぐらいは開いていることを確認してみてはと思います。

そして、下記のデータダウンロードへアクセスし(下記のURLだと、 AlbumArchive のみ選択された状態になっている)、


から「次のステップ」。エクスポート先は、可能なら「Googleドライブに追加」を選択します。容量に余裕がなければ、「ダウンロードリンクをメールで送信」ということになります。その場合、端末にダウンロードすることになるので、そこから Googleドライブやフォト(フォトの場合には、一旦 ZIPファイルを展開してアップロードしなおす必要あり)等別の媒体にバックアップし直すことをおすすめします。そうしておかないとその端末を機種変更した際などにデータが失われてしまうおそれがあるためです。


あとは、https://takeout.google.com/ に出ている「エクスポート中」が、「最新のエクスポート」に変更されれば、「Googleドライブへの追加」の場合にはバックアップ完了になります。「ダウンロードリンクをメールで送信」の場合には、下記の「エクスポートを管理」からダウンロードします。

Googleドライブの場合には、マイドライブ( https://drive.google.com )直下に、「Takeout」というフォルダができており、その中にデータ(takeout-日時.zip )が入っています。



2023年6月21日 @kimipooh

2023年5月30日火曜日

突然エラーになってログインできなくなったアカウントは「停止されたGoogle Workspaceアカウント」と関連はあるのか

5月か6月ぐらいのこの時期ぐらいに、アカウントに突然ログインできなくなったという話が時々でてきます。その場合、無料版 Gmail( @gmail.com )ではなく大学等学校から貸与されたアカウントの場合もあるかもしれません。

大学では、データ移行のために卒業後(離職後)一定期間(30日だったり 90日だったり)の猶予期間が設けられている場合もあります。そうした場合には、即時使えなくなるのではなく、少したってから使えなくなります。

さてここでは、組織的に管理運用される Google Workspaceのアカウントが管理者によって「停止」された場合、利用者側からみてどのような挙動になるのか検証した結果を備忘録として残します。この検証は 2023年5月30日のものであり、将来的なアップデートなどによって変更されることがある点はご注意ください。

以下検証した結果、「突然ログインエラーになり、パスワードを入力してもエラーになる」ちう現象がこのケースでは起こるということになります。

特に学校から貸与されたアカウントで長らく Googleフォトなどデータを蓄積していた場合(そういう認識なく)、そのデータに突然アクセスできなくなるので注意が必要です。卒業を控えている場合には、自分がどのアカウントでデータにアクセスしているのか、保存しているのかを改めてチェックするとよいかと思います。


停止されたアカウントへメールした場合


無料版 Gmailから、停止されたアカウントへメールした場合、すぐに配送できなかったというエラーが返信されました。理由は、アドレスが存在しないかアクセスできないかのいずれかだということです。


停止されたアカウントで Googleへログインした場合


メールアドレスとパスワードでログインした後に、下記のように「アカウントが無効になっています」とともに、いつ利用できなくなったのか(停止されたのか)の情報も出てきます。

なおアカウントが完全に削除されてしまうと、下記のようにログインするためのメールアドレスを入力したあとに、アカウントが見つからないというエラーになります。


次にスマートフォン上ではどのようになるかを検証してみます。

iPhoneの場合


標準メールアプリ


設定 > メール > アカウント > [Google アカウント] をみると、「アカウントにアクセスできませんでした。」というエラーともに、「パスワードを再入力」画面がでます。そしてパスワードをいれてもエラーのままです(アカウントが停止されているから)。


また、停止されている状態で、設定 > メール > アカウント > アカウントを追加 よりアカウントを追加しようとすると、メールアドレスとパスワードを入力後に下記のように「アカウントが無効になっています」とともに、いつ利用できなくなったのか(停止されたのか)の情報も出てきます。



Gmailアプリの場合


Gmailアプリに追加した、 Google Workspaceアカウントが停止された場合、Gmailアプリを同期(読み込み直す、起動しなおす)するとGoogle Workspaceアカウントの設定そのものが消えます

下記のように追加されていても、アカウントが停止されるとGmailアプリから設定そのものが消えるということです。


また再度 Gmailアプリから追加しようとしても、パスワードが正しくないとエラーになります。


Android 13(Google Pixel)の場合

アカウントが停止されると、設定 > パスワードとアカウント > [Google アカウント] > アカウントの同期 において「現在同期で問題が発生しています。しばらくお持ちください。」とでます。


またその状態で、Gmailアプリからメールを送信すると、送信したメールは「送信済み」に入らず、「送信トレイ」に「キューに追加しました」として残ります。同期できないので、アカウント停止された場合には、送信されずにそのままの状態になるということです。


なおデバイスからアカウントを削除して追加し直そうとすると、メールアドレスとパスワードを入力した後に、「アカウントが無効になっています」とともに、いつ利用できなくなったのか(停止されたのか)が表示されます。


以上のように、会社、学校等が保有する独自ドメインで Google Workspaceを契約された場合、そのアカウントが組織側で停止されると、上記の振る舞いになるということになります。

2023年5月30日 @kimipooh

2023年5月28日日曜日

【備忘録】Android における Gmailアプリのキャッシュ削除、ストレージ削除方法

割と Gmailヘルプコミュニティで回答することがあるので、まとめておきます。

Pixel7a (Android 13) でテストしました。

設定(アプリ) > アプリ > すべて表示 > Gmail > ストレージとキャッシュ

を開くと右図のような画面になります。これはどのアプリも共通です。

Gmailで表示がおかしいなと思ったら、キャッシュを削除。データがおかしい場合には同期がうまくいっていない可能性もあるので、「ストレージを消去」してみてください。

ただしストレージを消去すると、再度ログインする必要があるかもしれません。

再度ログインしようとしてパスワードを忘れていたなどの事態が起こったことを想定して、電話番号等復旧オプションを確認しておくと良いともいます。

参考:Google アカウントを強化する:https://support.google.com/accounts/answer/46526?hl=ja






2023年5月11日木曜日

Google Bard の試用(Google I/O 2023の日本語対応発表をみて)

 Google I/O 2023 において Google Bard 日本語対応(日本語と韓国語)したという発表があったので早速使ってみました。

無料版 Gmailを持っているなら、Bardへのアクセスすると試用に関して同意画面が出てきて同意すると使える画面が出てきます。Google Workspaceの場合には、管理者による Early Access Apps サービスを有効化する必要があります。

まだ試用版ということで、間違った情報が結構でてきている感じはします。そこは、「他の回答案を表示」をクリックして、そちらをチェックする。Good、Badボタンを押して評価することでより良くしていくというのも大事かなと思います。

またGoogleドキュメントや Gmailへのエクスポート機能もありますね。こちらはコピー&ペーストでも代用できそうな感じはします。いずれにせよ、これで ChatGPTなど競争が激化していって、5年、10年後にはどうなっているのかワクワクしますね!

2023年5月11日 @kimipooh

2023年5月4日木曜日

パスキーを使って Googleアカウントにログイン

 2023年5月4日現在、パスワードを使わずに指紋認証、顔認証、画面ロック等を使ってログインするパスキーが実装されたようです。現時点では Google Workspaceは非対応。2段階認証の確認もこのパスキーをつかうことで、2段階認証を有効にしながら確認不要にできるようです。注意点は共用端末では使わない、とのことです。

パソコンの場合には、パスキーは端末に保存されます。その端末のロックを解除できる誰もがログインできてしまうため、共用端末では設定しないでということでしょう。

情報源


MacとiPhoneでパスキーの作成


Android OSは古すぎるOSなら分かりませんが、下記の様に自動的にパスキーとして Googleアカウントに登録されるようです。それ以外の端末は手動でパスキーを作成する必要があるのだと思います。

下記にアクセスして、指示に従います。

初めての場合には、パスキー作成の画面が出てきて、認証として他の端末でQRコードスキャン(Android OS系が必要?)するか、別の方法を試して認証して作成します。
別の方法を選択せずに、手持ちの Android 端末のカメラで QRコードをスキャンして認証しました。ここ別の方法としてなにが試せるかまでは分かりません(最初に1度しか出てこないので確認できず)。

うまく作成できれば、下記のパスキーの「手動で作成したパスキー」に追加されます。


手動登録したのは、 Macの ChromeiPhoneのChromeです。 iPhoneのほうは Macと判断されているみたいですね。

実際に使ってみる


ログインしていない、Cookie をすべて無効にした プライベートウィンドウ(Chrome)場合、QRコードをスキャンせよ(すでにパスキーを保存した端末のカメラでスキャンしてURLにアクセスした後「許可」ボタンを押す)という画面がでてきます。




Macのほうは iPhone のカメラでスキャンして許可したことで、ログインできました。

プライベートウィンドウだとそうなりますが、通常だと端末に保存したパスキーをつかうかどうか聞いてきます。Macの場合には下記のように Touch IDを使ってログインできました。


iPhoneでは、iPhoneで認証できる方式(手持ちの iPhone13では顔認証)でログインできました。

ということでパスワード不要でログインできるようになったのはかなり便利ですね!ただしうっかり共用端末でパスキー作成してしまうと大変なことになるのでそこは注意です!

2023年5月4日 @kimipooh

2023年4月6日木曜日

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

 以前やり方について書き出していたのは、アドオン「Google Analytics™ connector by SyncWith」を活用したものでした。

この方法についてはアドオンが無料でできる範囲が限られてしまうため、今回はアドオンなしでの方法を紹介します。

今回は Google Analytics 4 限定の方法なります。

STEP 1. Googleスプレットシートの準備


Googleスプレットシートを作成し、「Configuration」シートを作成。
そのシートに下記の情報を入力します。


1行目:タイトル等、なんでもよい
2行目:
 A2:Report Name(名称は何でも良い)
 B2, C2, D4 と2列目から各列に生成するシート名を入力
3行目:
 A3:Property ID(名称は何でも良い)
 B3, C3, D3 と2列目から各列に Google Analytics 4 のプロパティIDを入れる
4行目:
 A4:Start Date
 B4, C4, D4 と2列目から各列に取得したい範囲(開始日)を入力(日付形式 2022/04/01 や 2022-04-01等)
5行目:
 A5:End Date
 B5, C5, D5 と2列目から各列に取得したい範囲(終了日)を入力(日付形式 2023/03/31 や 2023-03-31等)

STEP 2. Google Apps Script の挿入と初期設定


Googleスプレットシートの拡張機能 > Apps Script を選択して Google Apps Script エディタを起動します。


Google Apps Scriptエディタが開いたら、すでに入力されているサンプルコードを削除して、下記のURLにあるコードをコピーして、ペーストしてください。

- get_GA4_with-GAS.gs (GitHubに置いています)


すると下図のようにコードが入っているはずです。


一旦これでコードを保存してください。
名前は好きなもので構いません。ここでは get_GA4という名前にしたとして話を進めます。


コードはそのままでも動作しますが、いくつか設定を変更することで取得データの変更が可能です。

STEP 1で作成した「Configuration」シートの名前を変更した

下記の赤文字部分も変更してください。

const Configu_sheet = 'Configuration';

Dimension の変更や追加をしたい

下記の Dimensions 配列に追加してください。
標準では国別のアクセスログ集計になります。
const Dimensions = [
  {name: 'country'},
//  {name:'eventName'},
];

Metirics を追加したい

下記の Metrics 配列に追加してください。
標準は、アクティブユーザー(訪問者数)と表示回数(アクセスログ)になります。
const Metrics = [
  {name: 'activeUsers'},
  {name: 'screenPageViews'},
//  {name:'eventCount'},
];
Dimensions に対してフィルタを使いたい

下記の Dimensions_filters を有効にして条件をいれてください。
現在は /* と */ でくくることで無効化しています。これを外すと、 Dimensions で eventName を取得したときに page_view に 限定にできます。
/*
const Dimension_filters = {
filter: {
fieldName: 'eventName',
stringFilter: {
value: 'page_view'
}
}
}
*/

STEP 3. Google Apps Script のサービス追加と実行

左サイドメニューの「サービス」の「+」をクリックしてください。


そして、Google Analytics Data API を選択して追加してください。



次に下図の「実行ログ」の左側にある関数が「runReport」になっているのを確認して、「実行」をクリックしてください。

すると最初に実行するときに、権限に関する承認・許可画面がでてきます。

下記の表示がでてくれば「権限の確認」に進んでください。

無料版 Googleアカウントの場合、「このアプリが確認されていません」という警告がでてくるかもしれません。その場合には「詳細」より、「安全でないページ」への移動をしてください。スクリプトの安全性が不明だということで出ます。


あとは実行するアカウントを選択し、


アカウントに対してこのスクリプトの実行許可を与えてください。



そうすることでスクリプトの実行が可能です。
うまく実行されれば Configuration シートの  Report Nameで設定したシート名ができているはずです。そこにGoogle Analytics 4 のデータが入っているはずです。


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

個別の Google Analytics 4 のデータはこれで取得できたので、次は一覧ページを作成します。

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


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

Sheet Name: Google Apps Scriptで生成したシート名

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

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

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

TOP 10 of Countries: 関数「=INDIRECT(B5 & "!A2:A11")」を入れる
このあたりは、A2:A21すると TOP 20なども可能です。

STEP 5. トリガー(スケジュール)の設定


手動での実行がうまくいったなら、次は定期的に実行するトリガーの設定をしてみましょう。トリガーを使って定期実行するということは、まず Google Analytics 4 で取得する開始日と終了日が自動的に変更にならないと意味がありません。毎回同じ期間を取得してもいみがないということです。

そこでいくつかの例を紹介しておきます。

1日前のみ取得
Start Date: =TODAY()-1
End Date: =TODAY()-1

前月のみ取得
Start Date: =DATE(YEAR(TODAY()),MONTH(TODAY())-1,1)
End Date: =EOMONTH(TODAY(),-1)
*EOMONTH の代わりは、=DATE(YEAR(TODAY()), MONTH(TODAY()) + 0, 0) でも構いません。

今年度のみ取得
Start Date: 年度開始日
End Date: =EOMONTH(TODAY(),-1)

Google App Script エディタの左サイドメニューにある「時計」マークを選択します。



下図のように「トリガーを追加」ボタンがあるのでクリックします。

下図のように、実行する関数を runReport にして、毎月実行するようにスケジュールを設定してから保存します。保存後、Google Apps Scriptを初めて実行したときのように、アカウント指定と権限付与の許可を求めてくるので許可を与えてください。


設定できれば下図のようにトリガーが設定されています。
指定した日時に実行された場合、下図に成功したのか失敗したのか記録されます。

STEP 6. 一括取得した Googleスプレットシートの特定シートデータをメール本文(HTML)と PDF にして添付したメール送信


基本的には下記の後半「(後半)一括取得した Googleスプレットシートの特定シートデータをメール本文(HTML)と PDF にして添付したメール送信」を参照してください。
の部分です。こちらは、実際に 「TOTAL Summary」シートで処理したい(メール本文やPDF添付)範囲を指定してください。こちらは作り込みが面倒なので手動設定にしています。