1

Webアプリケーションの1つでさまざまな分析タグを使用しています。それらのほとんどは、追跡のためにjavascriptコードを呼び出します。

一部のタグには、クエリ文字列を含むgif画像のURLがあります。

例:http ://www.google-analytics.com/__utm.gif?utmwv = 45.542

このURLは正確に何をしますか?クエリ文字列から値を取得するにはどうすればよいですか?

更新:(いくつかの回答を読んだ後)私はすべてのブラウザが1x1ピクセルのgifをロードすることを知っています。しかし、どのようにしてクエリ文字列から値を取得しているのでしょうか。上記の場合、どのようにしてutmwvの値を取得できますか?コードサンプルはありますか?

4

7 に答える 7

4

基本的に、好みの言語でスクリプトを作成し、そのスクリプトをyourtrackingscript.gifにマップします。..jpg、pngでも。

httpハンドラーを使用してasp.netでこれを実行しました。

スクリプトは、他の動的ページ(aspnet、asp、php、実際には何でも)と同じようにクエリ文字列を読み取り、それをデータベースまたはログファイルに書き込むか、その他の必要な処理を行います。

次に、content-typeヘッダー(「image / gif」など)を適切に設定し、1ピクセルの画像またはその他の任意のサイズの画像を送り返します。

1ピクセルの画像の場合、1ピクセルのspacer.gifタイプの画像を16進エディターで開き、応答として送信するバイト配列としてハードコーディングしました。これにより、ヒットした場合のIOオーバーヘッドを少し節約できます。多くの場合、代わりに、ディスクまたはDBからファイルを読み取り、代わりにそれを送り返すことができます。

これは、メールマガジンで開封率などを追跡するためによく使用されるトリックです。
共有マシンのスクリプトにURLをマッピングするための十分な権限がない場合に最も難しいことがよくありますが、通常どおりに開発できます。スクリプト/プログラムを作成し、機能するようになったらマッピングを整理します。

最近のほとんどのブラウザは、適切なヘッダーを送信する場合、aspxまたはphp(.etc ...)urlに画像として応答します。古いブラウザ、ブラウザの乳母プラグイン、および電子メールクライアントが最も厄介です。

于 2009-02-24T07:38:24.197 に答える
1

クエリ文字列をASP.NETページに渡すことができるのと同じように、実際にはクエリ文字列を任意のURLに渡すことができます。ASP.NET MVCやRailsなどのMVCベースのフレームワークを使用している場合、このようなURLからパラメーターをキャプチャするのは簡単です。次に、GIF画像を返すだけです。

于 2009-02-24T06:50:18.757 に答える
1

JavaScriptがなくても、どのブラウザも自分のURLに画像をロードします。その場合、クライアントからのクエリ文字列パラメータとリクエストヘッダーをキャプチャして分析できます。そのため、JavaScriptをまったく使用せずに分析をキャプチャできます。

于 2009-02-24T06:54:39.060 に答える
1

それはGIFではなく、宇宙ステーション(ベータ版)です!

つまり、URL は画像を指しているように見えますが、www.google-analytics.com の Web サーバーはこのリクエストを何らかの処理スクリプトに渡し、そこでデータを抽出して 1x1 の GIF 画像コンテンツをブラウザに送り返します。

以下は、Apache Web サーバーと mod_rewrite を使用した例です。

# in .htaccess
RewriteEngine On
RewriteRule ^__utm\.gif /someprocessingscript.php [QSA]

<?php // in someprocessingscript.php
do_some_tracking($_GET); // this would probably analyze and log data
header('Content-Type: image/gif');
readfile('1x1.gif');
exit;
?>

別のオプション: 実際の G​​IF を提供し (おそらく を使用Cache-Control: no-cache)、すべてのアクセスをログに記録し、後でログを分析します。これは、アクセスごとに内部的な書き換えやスクリプト作成を必要としないため、高速になる可能性があります。

于 2009-02-24T08:21:55.950 に答える
0

画像をリクエストすると、クエリ文字列は引き続きサーバーに送信されます。

もちろん、サーバー上のデータをどのように処理しているかの正確な詳細はわかりませんが、分析目的でデータを送り返すためのかなり一般的な方法は.gifです。

于 2009-02-24T06:49:54.030 に答える
0

よく..__utm.gifは、Googleがアクセスをログに記録する必要がある1x1ピクセルの画像です。つまり、ログにもクエリ文字列値を収集しています。それについては本当にトリッキーなことは何もありません。utmwvはバージョン番号でしたが、その番号の意味が明確ではありません

于 2009-02-24T06:52:45.600 に答える
0

しかし、クエリ文字列からどのように値を取得しているのでしょうか? 上記の場合、どのように utmwv の値を取得できますか? コードサンプルはありますか?

呼び出しページが必要な場合はリファラーがあり、パラメーターが必要な場合はリクエスト URI があります。

print($_SERVER['HTTP_REFERER']);
print($_SERVER['REQUEST_URI']);
于 2009-02-24T08:36:31.950 に答える