Contents
Googleアナリティクス
毎度忘れてはググって調べている。時間の無駄を省くためにメモ。随時更新。
分析するサイトを追加するにはプロパティを作成
Googleアナリティクスには、アカウント > プロパティ > ビュー の階層構造がある。
分析するサイトを追加するには、アカウントの下に新規プロパティを作成する。
Googleアナリティクスホーム→管理→プロパティを作成→トラッキングIDを取得→トラッキングコードを、分析するサイトのhead要素のなかに埋め込む。
自分のアクセスを分析結果に含めたくないとき
は、トラッキングコードを以下のPHPコードで囲むといい。
1 2 3 4 |
<?php if (!preg_match('/自分のホスト名(の一部)/', gethostbyaddr($_SERVER['REMOTE_ADDR']))) : //アクセス解析にカウントしたくないホストを弾く?> ここにトラッキングコードを埋め込む <?php endif; ?> |
Search Consoleとの連携
Search Consoleホーム→プロパティを追加→おすすめの方法でGoogleアナリティクスを選択→確認
Googleアナリティクスホーム→集客→Search Console→検索クエリ→Search Consoleのデータ共有を設定→Search Consoleを調整→追加→連携するサイトを選択
なお、Search Consoleのデータが見れるようになるまで数日かかるらしい。
Googleアナリティクスのコードを埋め込むことでサイトがGoogleにインデックスされやすくなるっぽい
Googleにまったくインデックスされていなかったサイトが、アナリティクスのコードを埋め込み、サーチコンソールとの連携をしたらすぐにインデックスされるということがあった。
サイトをつくったら、とりあえずアナリティクス導入&サーチコンソールとの連携はやっておいたほうがいい。
google charts
日付データは連続データのままにしておいたほうがいい
参考にしたサイトのサンプルのgoogle.visualization.ChartWrapperのオプションを指定する部分に、以下が含まれていた。
1 2 3 4 5 6 7 8 9 10 |
// Convert the first column from 'date' to 'string'. 'view': { 'columns': [ { 'calc': function(dataTable, rowIndex) { return dataTable.getFormattedValue(rowIndex, 0); }, 'type': 'string' }, 1, 2, 3, 4] } |
オプションで日付データを文字列に変換している。これをすると連続データ→離散データに変換されてしまい、利用できるオプションが少なくなる。たとえばformatで日付の形式を変えたり、グリッドラインを引いたりできなくなる。エラーや警告も吐いてくれないので、かなりはまった。7、8時間ははまったんじゃないか?orz
PythonからGmailを送信する
Pythonのサンプルは以下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import smtplib from email.mime.text import MIMEText account = 'xxx@gmail.com' password = 'パスワード' to = 'xxx@xxxxx.co.jp' title = 'テストメール' body = 'テスト本文' msg = MIMEText(body) msg['Subject'] = title msg['from'] = account msg['to'] = to server = smtplib.SMTP_SSL('smtp.gmail.com', 465) server.login(account, password) server.send_message(msg) print('完了') |
参考:https://news.mynavi.jp/article/zeropython-51/
サンプルをただ実行しても認証エラーとなる。Googleのセキュリティ設定を変更しなくてはならない。
Googleトップ→自分のアイコン→Googleアカウントを管理→セキュリティ→安全性の低いアプリのアクセスをオンにする。注意するべきは、表示はすぐにオンになるが実際にはしばらくたたないとオンにならない。質が悪いことに、実際にオンになったかどうかは確認する術がないようである。少なくとも1分間は待つのが無難である。
待たずにプログラムを実行すると「smtplib.SMTPAuthenticationError: (535, b’5.7.8 Username and Password not accepted.」という例外となる。正しいアカウントとパスワードであっても、安全性の低いアプリのアクセスが実際にオンになるまえなので認証エラーとなる。認証エラーを検知するとGoogleは安全性の低いアプリのアクセスをオフにしてしまう。
正しいアカウント・パスワードであっても、安全性の低いアプリのアクセスが実際にオンになるまえにプログラムを実行すると認証エラーとなり安全性の低いアプリのアクセスがオフにされてしまう。気づきにくいトラブルだった。。。
ちなみに安全性の低いアプリのアクセスがオフにされてしまうのは、アカウント・パスワードが正しい場合だけだ。わざとパスワードを間違えてみたがオフにならなかった。不思議な挙動だなw
アプリパスワードを発行する、という方法もあるようだが面倒なのでスルー。