クライアント ログ (Windows Media Format 11 SDK)
リーダー オブジェクトは、サーバーからデータを読み取ると、ログ情報をサーバーに送信します。 通常、コンテンツ プロバイダーはこの情報を使用して、サービスの品質の測定、課金情報の生成、広告の追跡を行います。 ログ情報には個人データは含まれない。
アプリケーションでは、リーダー オブジェクトで IWMReaderAdvanced::SetClientInfo メソッドを呼び出すことによって、ログに記録される情報の一部を指定できます。 たとえば、ユーザー エージェント文字列、プレーヤー アプリケーションの名前、またはプレーヤーをホストする Web ページを指定できます。
ログ情報には、セッションを識別する GUID が含まれます。 既定では、リーダーは匿名セッション ID を生成します。 必要に応じて、リーダーは現在のユーザーを一意に識別する ID を送信できます。 この機能を有効にするには、値 TRUE を指定して IWMReaderAdvanced2::SetLogClientID メソッドを呼び出します。
リーダー オブジェクトは、元のサーバーに加えて、別のサーバーにログ情報を送信するように構成できます。 これを行うには、サーバーの URL を指定して IWMReaderNetworkConfig::AddLoggingUrl メソッドを呼び出します。 この URL は、HTTP GET 要求と POST 要求を処理できるスクリプトまたは実行可能ファイルを指している必要があります。 マルチキャストおよびログ アドバタイズ エージェント (wmsiislog.dll) を使用することも、カスタム ASP または CGI スクリプトを記述してログ データを受信することもできます。
Note
logURL 属性を使用してサーバー側のプレイリストを作成することで、同じ機能を取得できます。
リーダー オブジェクトがログを送信すると、次の処理が行われます。
- 空の GET 要求をサーバーに送信します。
- 次のいずれかの文字列のサーバー応答を解析します。
<body><h1>NetShow ISAPI Log Dll</h1>
-
<body><h1>WMS ISAPI Log Dll/0.0.0.0</h1>
ここで、"0.0.0.0" は任意の有効なバージョン番号です。
- ログ情報を含む POST 要求を送信します。
次のコードは、ログ情報を受け取ってファイルに書き込む ASP スクリプトの例を示しています。
<html>
<body>
<h1>WMS ISAPI Log Dll/9.00.00.00.00</h1>
<%@ Language=VBScript %>
<%
Dim temp, i, post, file, fso
' Convert the binary data to a string.
For i = 1 To Request.TotalBytes
temp = Request.BinaryRead(1)
pose = pose & Chr(AscB(temp))
Next
Set fso = createobject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\log.txt", 8, TRUE)
file.writeline Now
file.writeline post
file.writeBlankLines 2
%>
</body>
</html>
ログ情報を受信する複数のサーバーを指定できます。各 URL で AddLoggingUrl を 1 回呼び出すだけです。 ログを受信するサーバーの一覧をクリアするには、 IWMReaderNetworkConfig::ResetLoggingUrlList メソッドを呼び出します。
関連トピック