SITECORE MANIA 開発者向け技術ブログ

DMS

新藤

新藤

PDF等のメディアのアクセス取得方法

PDF等のメディアのアクセスを取得する方法を説明します。

まず、メディアライブラリのアクセスを取得したいアイテムを選択し、「解析」タブの「属性」コマンドをクリックします。
その中から、「イベント」タブの「ダウンロード」にチェックを入れて「OK」をクリックします。
そしてパブリッシュをすればメディアのアクセス情報を取得することができます。

また、すべてのPDFのアクセス情報を取得したい場合は、PDFデータテンプレートのスタンダードバリューに上記イベントを設定すればすべてのPDFのアクセス情報を取得することができます。

※PDFのアクセス情報を取得する場合の注意点
クライアントが PDF ファイルをWebサーバーからダウンロードする際、ダウンロード効率を向上させるためにファイルを自動的に分割してダウンロードするようにWebサーバーに要求を出します。この挙動により、1つのPDFファイルダウンロードに対し、Webサーバー側には複数のアクセス履歴が残ります。

PDFのダウンロード数を取得する場合、以下のどちらかの方法を選択する必要があります。
 a.分割ダウンロードを無効にする
 b.PageEvents テーブルから重複レコードを省いてカウントを取る

a の方法をとる場合、Web.config ファイルの以下の設定を false に設定します。
(※この場合、PDFダウンロード時のパフォーマンスに影響が出る場合があります)

<!--  MEDIA - ENABLE RANGE RETRIEVAL REQUEST
      Enables or disables range retrieval requests (see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2)
-->
<setting name="Media.EnableRangeRetrievalRequest" value="false"/>

b の方法をとる場合は、PageEventsテーブルからPDFの「ダウンロード」イベントだけを抜き出し、重複を除いた VisitId の数をカウントすることでアクセス数を取得できます。
「ダウンロード」イベントだけを抜き出す際は 「PageEventDefinitionId」 の値で判断します。ID の種類については、 PageEventDefinitionsテーブルに定義があります。
PDFのダウンロードかどうかを判断するには、PDF専用のダウンロードイベントを用意するか、メディアライブラリにPDFを登録する際にPDF専用のフォルダを用意することでファイルパスから判断が可能になります。

以上、メディアライブラリのアクセスを取得する方法でした。



※エントリーの内容・画像等は、公開時点での情報に基づきます。
※Sitecoreのバージョンによって実装されている機能が異なります。

この記事を読んだ人はこちらの記事も読んでます

Sitecore導入に関するご相談・資料ダウンロード

導入をご検討・ご依頼の方や、サービスについてご不明点がございましたらお気軽にお問い合わせください。

Sitecoreの運用問題を解決する

既にSitecoreを導入しているお客様向けサービス