技術情報

Matomoオフライントラッキングの設定方法を教えてください。

Matomo JS tracker は、オフラインのユーザーをトラッキングし、オンラインになるとすぐにトラッキングリクエストを実行します。これは、例えばプログレッシブWebアプリ(PWA)で役立ちます。この機能を利用するには、以下の手順に従ってください。(注意: 「オフライン売上をトラッキングする方法」をお探しの場合は、オフラインコンバージョン(実店舗やイベントからのコンバージョン).)をトラッキングする方法をご覧ください。

ステップ 1.サービスワーカー用のファイルを作成する

まだサービスワーカーを持っていない場合は、ウェブサイトのルートディレクトリにサービスワーカー用のファイルを作成する必要があります。以下の例ではservice-worker.js.という名前のファイルを想定しています。

ステップ2.サービスワーカーの登録

まだサービスワーカーを登録していない場合は、このようにサービスワーカーをウェブサイトに登録してください:

if ('serviceWorker' in navigator) {
    window.addEventListener('load', function() {
       // adjust `service-worker.js` to match the file name of your worker
        navigator.serviceWorker.register('/service-worker.js'); 
    });
}

オフライントラッキングを利用したいすべてのページには、このスニペットを含める必要があります。

ステップ3.オフライントラッキングを初期化する

サービスワーカー内に(例えばservice-worker.jsn内に) 以下のコードを追加してください:

// replace `https://your.matomo.domain` with the domain and path to your Matomo installation
self.importScripts('https://your.matomo.domain/offline-service-worker.js');
matomoAnalytics.initialize();

initializemメソッドは現在、これらのオプションをサポートしています:

  • queueLimit:デフォルト50で、ユーザがオフラインの間、最大いくつのリクエストが キューに入れられるかを定義します。設定された制限を越える数のリクエストがキューに入れられた場合、 最も古いリクエストが削除されます。
  • timeLimit:デフォルト86400秒(1日)を指定し、何秒後にユーザがオンラインにならなかった場合にトラッキング要求を無視するかを指定します。これは、Matomo tracker API が、1日以上前のトラッキングリクエストを記録しようとすると認証を要求するためです。もし1日以上リクエストを保持したい場合は、この設定を変更し、Matomo トラッキングリクエストに認証が必要になるまでの時間を設定する必要があります。

matomoAnalytics.initialize({queueLimit: 100, timeLimit: 86400*2});

既知の制限

今のところ、我々の標準的なトラッキング・エンドポイントのみがサポートされています:matomo.js,piwik.js,matomo.phpそしてpiwik.php.tracker.jsそしてtracker.phpのようなカスタムパスを使用している場合はまだサポートされていません。

この機能には Matomo 4 が必要です。現在、最新のMatomo 4ベータリリースの一部として利用可能です。Matomoを最新のベータリリースにアップデートする方法についてはFAQを参照してください。

ご意見をお聞かせください

何か問題はありますか?

この機能がうまく機能しているかどうか、ぜひご意見をお聞かせください。オフライントラッキングの件にコメントを残してください。

この機能を使って何か問題が発生した場合は、GitHub issues tracker.でお知らせください。

あなたはサービスワーカーですか、それともIndexedDBのプロですか?

私たちの実装のレビューにご協力いただけると幸いです。オフライン追跡プルリクエストでコードをチェックできます。この機能を改善するためのフィードバックに感謝します!