非常に興味深い質問です!
中心的な問題は、インターネットが非同期の匿名の場所であるということです。
ブラウザは、これらのリクエストの1つを一度に送信することも、3つすべてを同時に送信することもできるため、ユーザーのマシンでイベントの順序を制御する方法はありません。
さらに、ブラウザはユーザーを一意に識別するために特別な努力をしません。識別システムはすべて、要求/応答サイクルにジェリーリグする必要があります。GAはCookieを使用してユーザーにタグを付け、リクエストごとにその情報を取得できます。基本的に、GAはユーザーがサイトにアクセスする前にタグを付けるため、そのサービスは「最初の」ヒットでユーザーを識別できます。
あなたの問題は、あなた自身の識別ソリューションを実装したいということです。どういうわけか、リクエストにユーザーのIDを含める必要があります。しかし、彼らがサイトにアクセスするまで、あなたはそれを行う方法がありません。また、同時リクエストごとに異なるIDが応答に埋め込まれるため、ユーザーが単一のIDでタグ付けされることを保証することはできません。
基本的に、私の知る限り、匿名ユーザーをサイトで自動的かつ一意に識別できるようにするソリューションはありません。
IPアドレスを使用したくなるかもしれませんが、それは状況によっては機能しますが、それは非常に悪い解決策です。現在、私は雇用主のファイアウォールの背後にいます。現在表示されているIPアドレスを使用して私を識別すると、私とここで1人のユーザーとして働いている5,000人の人々が表示されます。これは非常に危険なシステムです。
本当に、ユーザーごとに1つのIDが本当に必要な場合(複数の同時リクエストなどによって回避したり、誤って踏みつけたりすることはできません)、唯一の解決策は、埋め込まれた値を介して最初のリクエストでユーザーが自分自身を明示的に識別することを要求することです。 POSTまたはGETクエリ、または前回のアクセス時に作成されたCookie。
あなたのシナリオでは、3つの応答すべてが一意のIDを持つCookieを生成する可能性があります(3つのIDが連続しており、それぞれが前の値を上書きします)。ランディングページは、一般的な「私のサイトへようこそ」ページ、またはそのようなものである可能性があります。次に、ユーザーはリンクをクリックしてサイトにアクセスできます。その時点で、最後に生成されたCookie(最後に生成されたIDを含む)がリクエストに埋め込まれます。ユーザーごとに1つのIDのみが生成されることを保証することはできませんが、リクエストの最初のラウンドの後(およびサイトのメインコンテンツ部分にアクセスする前)に、少なくとも1つのIDで識別されることをかなり確信できます。
もちろん、身元不明のユーザーへの応答が基本的にコンテナー(IDなし)である複雑なAJAXソリューションを使用することもできます。次に、AJAXは、IDを取得していることを示すフラグをCookie内に設定し、最初のリクエストを送信できます。後続のAJAXコンテナは、このCookieを確認してからポーリング状態に入り、フラグがクリアされるのを待ちます。最初の応答が返されると、最初のAJAXコンテナがCookieにIDを設定し、フラグを変更する可能性があります。次に、残りのコンテナはフラグの変更を検出し、(独自のリクエストを送信するのではなく)CookieからIDを取得できます。
AJAXコンテナがIDを取得すると、一意のIDとともにコンテンツのリクエストを送信できます。その後、サイトは応答して、コンテナに適切なデータを入力します(または単に適切なページにリダイレクトします)。
このソリューションが適切に実装されていれば、ユーザーにIDが1つだけ割り当てられることが多かれ少なかれ保証されます。しかし、本当に、それは価値がありますか?Cookieとリクエストはユーザーに「属している」ことを忘れないでください。ユーザーは両方を非常に簡単に編集できます。編集されたIDを検出するための手法がありますが(ほとんどの場合、何らかの形式の暗号化が含まれます)、ユーザーが選択した場合、ユーザーが自分自身を「匿名化」するのを防ぐことはできません。中途半端な解決策で十分な場合もあります。