В cms sitecore есть система онлайн маркетинга и анализа поведения пользователей на сайте под название oms, в которой, в частности, есть возможность отслеживать скачивания файлов пользователями. К сожалению, по умолчанию, в силу разных причин отслеживание скачиваний файлов не работает. Как его включить - читайте далее...
Итак, рецепт довольно таки прост, хоть и не очевиден.
Каждый логический элемент в Sitecore опирается на темплейт, который, собственно и описывает поведение искомого логического элемента. У темплейта можно задать дополнительный элемент под названием standard values, который будет содержать в себе некие общие значения, характерные для данного типа элементов.
В Sitecore OMS есть функция отслеживания количества скачиваний, которая является достижимой целью для пользователя. Цель считается выполненной в том случае, если выполнено действие, ассоциированное с ней. То есть, для того, чтобы отслеживать скачивание некоего файла - его необходимо ассоциировать с этой целью при помощи вкладки Analyze в content editor Sitecore'a выбрать Attributes, вкладку Events, и отметить Download (там есть множество достижимых целей, но на данный момент я описываю лишь эту).
Как Вы понимаете, назначать вручную эту цель на каждй файл, скачивание которого мы хотим отследить - задача небладарная, да и не нужная. Тут нам помогут Standard Values темплейта, на которую можно и навесить эту цель. Создать Standard Values для темлейта можно следующим образом: выбрать в дереве нужный темплейт, в риббоне Builder Options, Standard Values.
Однако, есть еще один подводный камень: начиная с Sitecore 6.2 Update-2 был представлен фикс, позволяющий использовать ASP.net и iis кеш для медиафайлов, что имеет несомненное преимущество для высоконагруженных систем, однако имеет два минуса:
- медиафайлы не обновляются во время публикации новой версии (лишь только IIS Recycle заставит их обновить)
- OMS не отслеживает скачивания файлов, даже если цель определена для файлов
Решение этой проблема в изменении значения параметра "MediaResponse.Cacheability" в web.config на "Private", что позволит отключить IIS кеш, в то время как внутренний медиа кеш Sitecore'а и веб клиента продолжат работать.