ブラウザ JavaScript API で
現在ステータスはDraft
で、
回線の
本筋から
設定内容を
Chrome での API 実行、 他ブラウザでの サポート状況に ついて
Network Information API Sample に
console.log('type: ' + navigator.connection.type); console.log('downlink: ' + navigator.connection.downlink + 'Mb/s'); console.log('rtt: ' + navigator.connection.rtt + 'ms'); console.log('downlinkMax: ' + navigator.connection.downlinkMax + 'Mb/s'); console.log('effectiveType: ' + navigator.connection.effectiveType); console.log('saveData: ' + navigator.connection.saveData); ------------------------------------- VM157:1 type: undefined VM157:2 downlink: 7.25Mb/s VM157:3 rtt: 100ms VM157:4 downlinkMax: undefinedMb/s VM157:5 effectiveType: 4g VM157:6 saveData: false -------------------------------------
Network Information API - Web APIs | MDN に
var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection; console.log('type: ' + connection.type); console.log('downlink: ' + connection.downlink + 'Mb/s'); console.log('rtt: ' + connection.rtt + 'ms'); console.log('downlinkMax: ' + connection.downlinkMax + 'Mb/s'); console.log('effectiveType: ' + connection.effectiveType); console.log('saveData: ' + connection.saveData); -------------------------------------- VM114:3 type: undefined VM114:4 downlink: 5.6Mb/s VM114:5 rtt: 100ms VM114:6 downlinkMax: undefinedMb/s VM114:7 effectiveType: 4g VM114:8 saveData: false --------------------------------------
ProductName: Mac OS X ProductVersion: 10.13.6 BuildVersion: 17G65
で、Safari バージョン11.1.2 (13605.3.8)
、Firefox 62.0
ですが、
現状だと、
カスタムディメンションの 設定
GTM
と、
GTM カスタム JavaScript 変数の 作成
以下のnavigator.connection
を
navigator.connection
function() { var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection; return connection; }
connection.downlink
function () { var connection = {{navigator.connection}}; if (! connection) { return "UNSUPPORTED"; } if (!connection.downlink) { return "UNSUPPORTED"; } return connection.downlink; }
connection.downlinkMax
function () { var connection = {{navigator.connection}} if (!connection) { return "UNSUPPORTED"; } if(!connection.downlinkMax) { return "UNSUPPORTED"; } return connection.downlinkMax; }
connection.effectiveType
function () { var connection = {{navigator.connection}} if (!connection) { return "UNSUPPORTED"; } if(!connection.effectiveType) { return "UNSUPPORTED"; } return connection.effectiveType; }
connection.rtt
function () { var connection = {{navigator.connection}} if (!connection) { return "UNSUPPORTED"; } if(!connection.rtt) { return "UNSUPPORTED"; } return connection.rtt; }
connection.saveData
戻り値が、 Boolean なので、 未定義の 判定は、 typeof
を使います。 function () { var connection = {{navigator.connection}} if (!connection) { return "UNSUPPORTED"; } if (typeof connection.saveData === "undefined") { return "UNSUPPORTED"; } return connection.saveData; }
connection.type
function () { var connection = {{navigator.connection}} if (!connection) { return "UNSUPPORTED"; } if(!connection.type) { return "UNSUPPORTED"; } return connection.type; }
Google Analytics 上で カスタムディメンションを 作成する
以下、
無料版の
カスタムディメンション名 | INDEX番号 | 範囲 | 状態 |
---|---|---|---|
connection.downlink | 14 | ヒット | アクティブ |
connection.downlinkMax | 15 | ヒット | アクティブ |
connection.effectiveType | 16 | ヒット | アクティブ |
connection.rtt | 17 | ヒット | アクティブ |
connection.saveData | 18 | ヒット | アクティブ |
connection.type | 19 | ヒット | アクティブ |
GTM Google Analytics タグの 設定
以下、
AMP での タグの 設定
現在 (2018/09/08) は、
実行結果、 使用用途
GTM デバッグした
実行結果
Chrome で
開発コンソールでのdownlink
、rtt
、effectiveType
、saveData
に
使用用途
Google Analytics の
設定した
Network Information API 自体の
使用用途
JavaScript でnavigator.connection を 使って ネットワーク情報を 取得する に 記載されている 説明が わかりやすいです。
以下が使用用途と して 考えられます。 - 接続速度で
コンテンツを 切り替える。 - 従量課金の
アラートに 使用する。 - saveData が
true
であれば、回線速度問わず、 軽い コンテンツへ 切り替える。
- 接続速度で
Google Analytics 上で
Network Information API の 値を 確認する 意味 - Network Infomation API に
よる 判定実装の 要否を 判断する、 統計情報と して 設定する。 - 回線速度と、
ページ滞在時間、 直帰率の 関係を 見る。
これも、実装要否の 判断材料に なるのかなと 思います。 - 接続地域と
回線速度の 関係を 見る。
Push したい地域の 回線が 遅い 場合、 CDN 導入 や 遅い 地域向けの リージョンで サーバを 契約する 材料に 使えるかと 思います。
- Network Infomation API に
現状は、
connection.downlinkMax
、connection.type
は取得できないので 設定不要
一律 カスタムディメンションに設定しましたが、 現状取得できないので、 ディメンションの 無駄です。
実際仕事で使う 場合には、 無料版を 使っている 場合は 設定しない ほうが いいかと 思います。
参考
以下、
コメント