ログイン

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」を使用して発信元ノードを参照します。