1

まず、アドバイスや解決策を求めてインターネット全体を検索し、このブログ投稿に基づいてテスト ケースを作成しました。問題は、実際の Web サイト/セットアップが、静的テスト iFrame コンテンツを含む静的テスト ページよりもはるかに複雑であることです。

Google アナリティクス トラッキング JavaScript をヘッダーに配置できますが、使用するアナリティクス トラッキング コードを動的に選択する必要があります。

良いニュースがあります。親ページは「私たち」が所有しており、動的コンテンツは「私たち」からヘッダーを取得して取得し、それを動的コンテンツの先頭に追加します。ヘッダーは ColdFusion (.cfm) ファイルの場合もあります。問題は、ColdFusion がサードパーティに送信される前に評価されることです。サードパーティがリダイレクトを行っており、複数のサブドメインを使用して動的コンテンツを提供しているため、状況はさらに悪化しています.

以前は、ColdFusion エクストラネット Web サイトで、ColdFusion を使用してサーバー変数をチェックし、どの Google アナリティクス トラッキング コードを使用するかを決定していました。私のテストでは、これはオプションではありません。ヘッダーの取得方法と、ヘッダーがどこから取得されたかに関係なく同じサーバー上にあるという事実により、ColdFusion から有用なデータが得られないためです。

JavaScript を使用して、ホスト、ドメイン、リファラーをチェックすることもできます。悲しいことに、すべてのリダイレクトと iFrame が問題を引き起こしています。使用する分析追跡コードを決定するために使用できるデータを把握するために、「ヘッダー」で試したのは次のとおりです。

  <!--- Debugging code --->
  console.log('testing testing testing');
  var isInIframe = (parent !== window);

  if (isInIframe) 
  {
    parentUrl = document.referrer;
    console.log('JS parentURL ' + parentUrl);
    console.log('JS document.domain ' + document.domain);
    console.log('JS window.location.hostname ' + window.location.hostname);
    console.log('JS window.parent.domain ' + window.parent.domain);
    console.log('JS window.frameElement ' + window.frameElement);
  }
  else
  {   
    console.log('Not in iFrame according to JS test');
  }

  console.log('CF HTTP_REFERER ' + '<cfoutput>#CGI.HTTP_REFERER#</cfoutput>'); <!--- always blank --->
  console.log('CF HTTP_HOST ' + '<cfoutput>#CGI.HTTP_HOST#</cfoutput>'); 
  console.log('CF SERVER_NAME ' + '<cfoutput>#CGI.SERVER_NAME#</cfoutput>');
  console.log('CF REMOTE_HOST ' + '<cfoutput>#CGI.REMOTE_HOST#</cfoutput>');
  console.log('Done testing');
</script>

個別の Google アナリティクス トラッキング コードで追跡したい 3 つの主なケースがあります。つまり、UA-XXXXXXXX-1、UA-XXXXXXXX-2、UA-XXXXXXXX-3 です。これらは 3 つの異なるドメインにありますが、header.cfm ファイルは 1 つしかありません。 . document.domain または window.location.hostname のいずれかを使用して、エクストラネットとインターネットの違いを判別できます。これは、動的コンテンツが異なるソースから取得されているためです。ただし、2 つの異なるインターネット Web サイトの違いを判別できるかどうかはわかりません。動的コンテンツは B2C と B2B の使用を区別するため、複数の B2C インターネット Web サイトに同じデータが提供されます。エクストラネット サイトは常に B2B データを取得します。B2C は subdomain1.host.com にあり、B2B は subdomain2.host.com にあります。

JavaScriptでこれを行う良い方法はありますか? URL に引数を追加する必要がありますか? メタタグまたは非表示のフォームフィールドを使用して情報を渡しましたが...ヘッダーのJavaScriptにリファラー/ホストに基づいてこれを理解させたいのですが、それが原因でできるかどうかはわかりませんすべてのリダイレクトと動的 iFrame コンテンツ。document.referrer は常に同じ blah.blah/continue.asp を返します

4

0 に答える 0