JavaScriptは、リダイレクトリンクを必要とせずに入り口やページ訪問者をファネリングするために使用できます。ただし、両者は併用すべきであり、そうすることができます。
つまり、シナリオに関係なく、常に私たちのJSをページに配置することが最善です。
これは、JSがページ訪問を追跡するだけでなく、追跡の信頼性を向上させる複数のヘルパー関数を持っているためです。
JavaScriptの詳細については、すでにここに文書化されており、JSからデータを取得する方法とヘルパー関数について説明しています。
ただし、以下に技術的な概要を示します。
JavaScript ビュー追跡
私たちのJSは、埋め込み属性とURLパラメータ(存在する場合は優先される)を解析し、データのペイロードをエッジ(ユーザーのカスタムドメインを介して)にPOSTします:
https://USER_DOMAIN/js/funnel
追跡が成功した場合、エッジは訪問者のID(VID)、現在のノードID、ヒットIDを含む標準的なペイロードで応答します。例:
{ "error": "", "resolvedTokens": { "{hit}": "1wj7y5680dz26p1g9p0101", "{visitor}": "afdwb7QPV6Y59aTP3fQxZ3tX2ox", "{current-node-id}": "0XJbzUwQYEWa" }, "skv": "vid" }
訪問者IDは、ユーザーのセッションレベルの識別子です。これらのセッションオブジェクトは、エッジと並んで複数のデータセンターに展開される中央キャッシュに保存されます。
VIDにはそのエッジの位置が符号化されているため、ユーザーがVID値を持っていて場所を変更する(例:VPN)場合、エッジは正しいキャッシュDBでセッションオブジェクトをチェックできます。
ヒットIDは、現在のページビューの一意のIDです。1人の訪問者が触れる各ノードに対して、一意のヒットIDが作成されます。
現在のノードIDは説明不要です。
埋め込み属性とオプション
FunnelFlux JSの動作と返されるトークンを変更するには、JS セクションの該当ドキュメントをここで参照してください。
ヘルパー関数
これらの詳細はここに記載されています。
これが、すべてのページに私たちのJSを配置することが重要である理由です。
まず、JSは自動的にメタリファラータグをページに追加し、ブラウザのデフォルト動作を上書きして、完全なリファラーを次のリンクに渡します。
これにより、前述のurlRewriteが有用になります。そうでなければ、(少なくともChromeでは)デフォルトで渡されるリファラーはホスト名のみになります。
次に、ページ上の<a>要素が*action/*
をスキャンし、見つかった場合、JSは以下を追加します:
...vid=VISITOR_ID&rn=CURRENT_NODE_ID
アクションリンクでのこの明示的な宣言により、ユーザーのセッション識別子と参照元ノードIDが宣言されるため、後続のクリックでリファラーやクッキーに依存する必要がなくなります。
ここで注意すべきは、urlRewrite関数がURLにn=CURRENT_NODE_ID
を追加するのに対し、アクションリンクには現在のノードIDが「rn」または「referring node」パラメータとして追加されることです。
これは、他の機能のために重要です:任意の<a>要素にdata-lum="action"
属性を追加すると、上記のデータも追加されます。
これは、アクション(リダイレクト)リンクなしでページ間を直接リンクする場合でも、ユーザーが確実な追跡を確保したい場合に便利です。この例は、funnelflux.comのホームページで見ることができます。ソースコードを確認し、クラウドオプションへのリンクがこれらのURLパラメータを含むように更新されることに注目してください。
このシナリオでは、n=CURRENT_NODE_ID
を渡すと次のページが読み込まれ、JSが読み込まれ、URLパラメータが現在のページのノードIDを前のノードのIDで上書きしようとし、問題が発生します。そのため、アクションリンクでは常に「rn」を使用して発信元ノードを参照します。