15分で
現在、
設定内容を
カスタムディメンションに ついて
現状、
カスタムディメンション | インデックス | 範囲 | 取得元 |
---|---|---|---|
記事Id | 1 | ヒット | データレイヤ変数 |
記事Description | 2 | ヒット | データレイヤ変数 |
記事作成日 | 3 | ヒット | データレイヤ変数 |
記事投稿者 | 4 | ヒット | データレイヤ変数 |
記事更新日 | 5 | ヒット | データレイヤ変数 |
記事カテゴリ | 6 | ヒット | データレイヤ変数 |
句読点数 | 7 | ヒット | JSON-LD |
クライアントID | 8 | ユーザー | カスタムJavaScript |
ユーザーエージェント | 9 | ヒット | JavaScirpt変数 |
Timestamp | 10 | ヒット | カスタムJavaScript |
記事文字数 | 11 | ヒット | JSON-LD |
データレイヤ変数 と
して 取得している 項目に ついて
過去、以下の 記事を 作成した。
Django/Mezzanine Template内でGoogle Tag Manager の タグ設定、 データレイヤー変数を 設定する | Monotalk
上記の記事に 記載が あるが、 以下の 通り Django Template 内に 記載していて、 これらを GTM で データレイヤ変数と して 取得している。 window.dataLayer = window.dataLayer || []; dataLayer.push({ 'blogPostId': '{{ blog_post.id|escapejs }}', 'blogPostUserName': '{{ blog_post.user.username|escapejs }}', 'blogPostDescription': '{{ blog_post.description|escapejs }}', 'blogPostCreated': '{{ blog_post.created|escapejs }}', 'blogPostUpdated': '{{ blog_post.updated|escapejs }}', {% with blog_post.categories.all as categories %} 'blogPostCategories': '{% for category in categories %}{{ category|escapejs }}{% if not forloop.last %};{% endif %}{% endfor %}' {% endwith %} });
JSON-LD から
取得している 項目に ついて
ブログ記事には、以下のような JSON-LD を 設定している。 <script type="application/ld+json"> { "@context":"http://schema.org", "@type":"BlogPosting", "headline":"Django/Mezzanine Template内で Google Tag Manager のタグ設定、データレイヤー変数を設定する", "author":{ "@type":"Person", "name":"kem" }, "publisher":{ "@type":"Organization", "url":"https://www.monotalk.xyz", "name":"kem", "logo":{ "@type":"ImageObject", "url":"https://drive.google.com/uc?export=view&id=0By5O5w7iwOMOVE5pTEcyeE40WlE" } }, "image":{ "@type":"ImageObject", "url":"https://drive.google.com/uc?export=view&id=0By5O5w7iwOMOMDdhaDhHdXBVTHc", "height":450, "width":800 }, "mainEntityOfPage":{ "@type":"WebPage", "@id":"https://www.monotalk.xyz/blog/djangomezzanine-template%E5%86%85%E3%81%A7-google-tag-manager-%E3%81%AE%E3%82%BF%E3%82%B0%E8%A8%AD%E5%AE%9A%E3%83%87%E3%83%BC%E3%82%BF%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%E5%A4%89%E6%95%B0%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B/" }, "genre":"Google Tag Manager django mezzanine", "wordcount":"8491", "numberOfPunctuation":"112", "datePublished":"2017-09-18 21:00:00+00:00", "dateCreated":"2017-09-18 06:47:38.425171+00:00", "dateModified":"2017-09-18 21:23:03.441865+00:00", "description":"先日 Mezzanine で構築したブログのコンテンツのメタデータ を Google Analytics にインポートしてみる(失敗) | Monotalk でデータインポート機能で、カスタムディメンションを送信しようとしたところ、原因不明でうまくいきませんでした。 \nこの代替方法として、ページビュー計測時に、\nDjango の Template 内で、Google Tag Manager のデータレイヤー変数を設定してみます。 \n設定したデータレイヤー変数は、カスタムディメンションとして、Google Analytics に送信します。" } </script>
JSON-LD から
記事の 句読点数、 記事の 文字数の 取得
JSON-LDで定義された メタデータを GTMから 読み取る 方法 | SEM Technology を 参考に、 GTM で カスタムJavaScript を 作成し、 それぞれ 該当する 項目を 取得するようにした。 - 記事の
句読点数 function() { var numberOfPunctuation = [].slice.call( document.querySelectorAll('script[type="application/ld+json"]') ).map(function(script) { return JSON.parse(script.text); }).filter(function(json) { return json["@type"] == "BlogPosting"; })[0].numberOfPunctuation; return numberOfPunctuation; }
記事の
文字数 データレイヤ変数でfunction() { var wordcount = [].slice.call( document.querySelectorAll('script[type="application/ld+json"]') ).map(function(script) { return JSON.parse(script.text); }).filter(function(json) { return json["@type"] == "BlogPosting"; })[0].wordcount; return wordcount; }
設定しても よかったが、 若干実装が 手間だったので、 JSON-LD で 設定を した。 一律 JSON-LD からの 取得も できるので、 データレイヤ変数は 削除して JSON-LD での 設定する ことを 今後検討する。 クライアントID
GTMでGoogleアナリティクスの Client IDを 取得する 一番確実で 楽な 方法(2018年版) - 清水誠メモ を 参考に 設定している。 ユーザーエージェント
window.navigator.userAgent
で設定している。 Timestamp
AMP GTM経由でのGoogle Analytics の 設定方法 に 記載した カスタム JavaScript で 設定している。
送付イベントに ついて
現在、
CSPReport
django-csp-reports report-uri へのリクエストを、 Google Analytics で 記録する。 | Monotalk で 作成した ものを 記載した。 CSPReport を Mesurement Protocol で Google Analytics に 送付している。
以前、Content Security Policy (CSP) の report を 10 日くらい 集計して、 ポリシーを 見直す(の 途中) | Monotalk で、 MongoDB に 記録していたが VPS サーバ上に 置いていて、 リソースを 消費していたので、 Google Analytics の イベント送付に 切り替えた。 JS Error
JavaScript エラーの発生を トリガーに、 エラー内容を Google Analytics の カスタムイベントと して 送付している。
カスタムイベントとして 送付する 方法と、 例外と して 送付する 方法が あり、 #GTMTips: Track JavaScript Errors As Events | Simo Ahava’s blog のような、 カスタムイベントでの 送付方式を 採用した。 PWA の
ホームスクリーンに 追加
PWA のアプリの ホーム画面への 追加 バナーの OK Cancel の 結果を カスタムイベントと して 送付している。
PWA アプリのホーム画面への 追加 の OK Cancel 結果を Google Analytics に 送信する | Monotalk Link クリック
記事ページのリンククリックを カスタムイベントと して 送付している。
実装は以下の 記事の 雰囲気で 作成。
Googleタグマネージャ基礎:クリック計測する設定<完全版>
カスタム速度の 送付
- FP FCP の
送付
FP FCP をGoogle Analytics に カスタム速度と して 設定する | Monotalk で カスタム速度を 送付するようにした。
考えた こと
Web解析の
統計情報 と セイバーメトリクス
野球の打率
を、Google Analytics の ページ直帰率
とすると、 初月率
は、セイバーメトリクスの IsoP
のように思えた。
IsoP
等セイバーメトリクスの指標は 以下が 参考に なった。 セイバーメトリクス一覧 : なんj~swallow tail~ Web 解析
Google Analytics で、直接参照が 可能な データを 1次統計データと すると、 2次統計データに 該当する。
Web 解析における セイバーメトリクスの 指標リストのような ものが あって、 計算式と、 R、 Python、 Excel 等での 導出方法が 体系化されてまと まっているとうれしい。 サイト特性で
設定したい 指標、 ディメンション、 イベントは 異なる
当たり前だが、BtoC、 BtoB、 個人の ブログで 取得すべき 指標、 ディメンション、 イベントは 異なる。 そのため、 業務を 通してしか 身に つかない スキルは ある。
個人のブログの 知見は、 オウンドメディア運営、 Howto サイト運営等、 生きる 業界も あるように 思う。
ツールの設定、 スクリプトの 実装に 関しては、 基本スキルなので そこは どこでも 変わらない。 記事の
文字数と、 記事の 句読点数を 設定する 理由
記事の文字数は、 アクセス数との 相関関係を 確認したかったので 設定した。
記事の句読点数は、 個人的に 文書構成ツールを かけていない 場合に 多くなりがち。
記事文字数と句読点数の 相関を みて、 外れる ものは 品質が 悪い気が するので、 そこを 確かめたかった。
今後
個人の
データを
コメント