2010-10-07 4 views
10

У меня есть this ASP.NET web site, что позволяет пользователям загружать установочные пакеты программы (только обычные файлы). Я хочу иметь возможность отслеживать, когда загрузка завершена (т. Е. Файл был полностью загружен на компьютер пользователя), а затем вызвать сценарий Google Analytics, который сообщает о завершенной загрузке в качестве «цели» (очевидно, что одна из моих целей - для увеличения загрузки файлов).Как отслеживать завершенную загрузку файла в ASP.NET

Проблема в том, что мне необходимо поддерживать прямые URL-адреса файлов, в отличие от решения «страницы переадресации». Это связано с тем, что большой объем трафика поступает с сайтов загрузки программного обеспечения, которые явно запрашивают прямой URL-адрес файла при отправке продукта. Возможно, они проводят собственный анализ файлов (например, проверку вирусов). Но с этим набором ограничений, типичный сценарий:

  1. Пользователь посещает мой список продуктов на программное обеспечение загрузки сайта
  2. Пользователь нажимает на кнопку «Загрузить» на этом сайте
  3. «Скачать» страница, как правило, редирект, что в итоге приводит пользователя к моему файлу через прямой URL я первоначально представленный, т.е. http://www.ko-sw.com/somefile.exe

Если в этих условиях, точное решение для мониторинга не представляется возможным, может быть, существует обходной путь ? То, что приходит мне на ум, временно хранит количество выполненных загрузок на сервере, а затем обращается к административной странице, которая каким-то образом сообщает этот номер в Google Analytics и, наконец, возвращает его к нулю. С этим обходным решением, по крайней мере, нет необходимости пытаться присоединить обработчик javascript к ресурсу, отличному от HTML. Но даже тогда есть проблемы:

  1. Как отслеживать, завершена ли загрузка?
  2. Как отслеживать возможности геолокации пользователей и браузера, чтобы сделать их более заметными в отчетах?

Спасибо всем заранее

+0

Удалось ли вам решить эту проблему? Вам все еще нужна помощь? – jcolebrand

ответ

0

Можно отслеживать ссылки в качестве цели, которая может быть полезна для вас. Однако это не будет отслеживать, когда загрузка будет завершена. http://www.google.com/support/analytics/bin/answer.py?answer=55529

Надеюсь, что это поможет. Cheers Tigger

+0

Спасибо за это. Да, я прочитал. Если ничего не будет сделано, мне придется отслеживать только ссылки. Посмотрим, произойдет ли что-то еще. – Kerido

+0

Из интереса, почему важно, чтобы вы знали, что загрузка завершена, а не начали загрузку? – WooHoo

8

Лучшая альтернатива: пусть ваш установщик откроет веб-страницу, как только пользователь установит веб-программное обеспечение. Пример: см. Инсталлятор Keepass.

Вы можете отслеживать эту скорость открытия в GA и получать номера установок.

0

Я думаю, что решение @SamMeiers очень хорошее, но вы можете оптимизировать его, вызвав веб-службы после завершения установки, но вы можете найти небольшую проблему, если вы используете установку приложения в среде без Интернета, но вы можете заставить проверьте, есть ли интернет или нет. Вы можете создать любой триггер при установке в качестве стартового флага, а затем, если закончить проверку, существует ли флаг начала, приложение также было загружено и установлено.

4

Согласно awstats, прерванная загрузка имеет код состояния 206 http, поэтому, если вы анализируете журнал сервера для такого кода, вы можете получить те загрузки, которые не были выполнены.

1

Эта ссылка может быть в состоянии помочь вам:

http://www.devx.com/dotnet/Article/22533/1954

Я использовал его в качестве ссылки, прежде чем на некоторые из моих работ.

2

@ Kerido ~ Мне любопытно, что такое бизнес-кейс. Вы пытаетесь отслеживать установки или загрузки? Если вы устанавливаете, перейдите к решению @SamMeiers.

Однако, если вы пытаетесь отслеживать загрузки, тогда возникает вопрос, что вы используете на базе веб-сервера? IIS? Apache? Что-то другое?

В IIS, предполагая, что вы используете 7 (или более поздней версии), вы могли бы (легко?) Написать HttpHandler, который проверяет последние байты отправляемого файла и при этом записывать журнал где-нибудь.

На Apache просто настройте протоколирование, чтобы рассказать вам, сколько байтов было передано (тривиальное изменение в httpd.conf), а затем каждый раз анализировать журналы (awstats [среди других] неплохо для этого, но вам может потребоваться напишите сценарий sed/awk) и узнайте, сколько полных переводов было завершено. Просто зависит от того, насколько тщательно вы пытаетесь быть.

Но я возвращаюсь к тому, что это за бизнес? Какое это имеет значение, если есть незавершенные загрузки?

Смежные вопросы