Простенькое предисловие
Для оценки посещаемости сайтов, анализа поведения пользователей (люди от маркетинга ещё любят оценить эффективность проведения рекламных кампаний) в последнее время принято использовать сторонние сервисы (в противопоставление внутренним средствам, н.п. анализу данных из логов веб-сервера), такие как Яндекс.Метрика, Google Analytics и пр. Обычно подобные сервисы предоставляют кусок кода, который требуется вставить внутрь страниц сайта. Именно этот кусок будет собирать нужную информацию, которую можно будет анализировать при помощи специальных инструментов на сайте сервиса.
Требования
Для разработки веб-приложений используется Django. Нужно упростить работу с кодами метрик: предоставить удобный путь внедрения кодов в шаблоны страниц; предоставить инструмент для управления наборами кодов (от разных сервисов) на уровне сайтов.
Вариант решения
Приложение django-sitemetrics удовлетворяет вышеописанным требованиям. На текущий момент поддерживаются сервисы упомянутые в первом абзаце.
Использование приложения
- Добавить приложение 'sitemetrics' в список 'INSTALLED_APPS' в файле конфигураций (обычно 'settings.py')
- Добавить тэг '{% load sitemetrics %}' ближе к началу шаблона (обычно это далется в базовом шаблоне, н.п. 'base.html')
Дальше следует выбрать один из двух путей:
Добавить в нужное место шаблона тэг sitemetrics с четырмя аргументами:
{% sitemetrics by yandex for "12345" %}
Здесь: 'yandex' — короткое имя сервиса; '12345' — идентификатор нашего счётчика.
Таким образом мы разместим клиентский код Яндекс.Метрики (с идентификатором '12345') внутри всех страниц сайта (если редактировался базовый шаблон).Добавить в нужное место шаблона тэг sitemetrics без аргументов:
{% sitemetrics %}
Так мы поместим все клиентские коды, привязанные к данному сайту, активные для него.
Клиентские коды привязываются к сайтам через интерфейс администрировани Django.
* Чтобы тэг работал необходимы подключенные Django-расширения: 'Admin site' и 'Sites'.
* Перед использованием тэга в первый раз следует выполнить команду './manage.py syncdb' (она добавит в базу данных таблицу, нужную для django-sitemetrics).
Как добавить сервис метрики
- Отредактировать файл 'sitemetrics/models.py'. Добавить короткое имя сервиса и полное имя в список KEYCODE_PROVIDERS.
- Отредактировать файл 'sitemetrics/templates/si
temetrics/sitemetrics.tpl '. Добавить еще один оператор 'ifequal', в котором 'keycode.provider' будет сопоставляться с коротким именем сервиса.

ответить