Задать вопрос

Google-analytics для PHP, как засчитать хит средствами PHP?

Здравствуйте, google-аналитический хабрапользователь.

Условие:
Есть файл, site.ru/file.zip, файл относительно маленький — это важно для решения. Надо посчитать количество скачек. Решение очевидное, подложить под файл скрипт, он отдает файл и работает со счетчиком.
UPD: Важно понимать, скачивание идет прямой ссылкой, то есть перехватить его JS невозможно в данном случае, а если человек кликнет на ссылку на site.ru, то это понятное дело перехватывается, но мы не этот вариант рассматриваем.

Задача:
Неплохо бы строить счетчик не во внутреннюю БД или файл, а на что-нибудь более глобальное, вроде Google или Yandex, там же это и отображать как хит по обычному URL. Если у Яндекса с готовыми либами явно все тухло, а есть только документация, то в Гугле я чета накопал: интерфейс PHP для Google Analytics.

Вопрос:
Господа, либо я явно к вечеру устал, либо я один не нахожу там ничего похожено на метод:
gapi::sentHitToGoogle($_SERVER);
Это метод, который собирает всю полученную сервером информацию и отправляет гуглоаналитике.

Если я не нахожу, то есть ли какие-нибудь адекватные либы, что бы не только через JS это можно было делать. Очень не хочется самому тратить время на вдупление в документацию и писать адаптеры для интерфейсов google api на PHP, если они все же есть.

Спасибо за внимание.
  • Вопрос задан
  • 4639 просмотров
Подписаться 8 Оценить Комментировать
Решения вопроса 1
homm
@homm
Настройки счетчика, код отслеживания, дополнительно: «Сайт, созданный для мобильных телефонов
Выберите серверный язык своего сайта для мобильных устройств».

Там будет код и файл ga.php, разобравшись в которых вы сможете сделать свой запрос к Аналитиксу.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
@himik
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-12345678-9']);
_gaq.push(['_trackPageview']);

(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>

<a href="http://site.ru/file.zip" onclick="_gaq.push(['_link', 'http://site.ru/file.zip'])">Скачать</a>


или я чего-то не понимаю?
Ответ написан
@vedmaka
а почему не рассматриваете вариант с прокладкой из meta=refresh и js'ом?
Ответ написан
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
В яндексе точно можно назначить «цель» и прописать обработчик на ссылку скачивания файла, чтобы по клику эта цель засчитывалась. Думаю, что аналогично можно в аналитиксе.
Ответ написан
@jrip
Можно посмотреть какие запросы шлет Google Analytics к себе на сервер, а потом посылать такие же запросы. Только, по-моему, это довольно странная затея. Весь плюс подобной аналитики в том что мы знаем что за человек откуда он и т.п., а если с помощью php — то в статистике по сути мы увидим как сервер сам с себя скачивал файлы.
Ответ написан
@Silver_Clash
Немного извращенный вариант, но:

1. По адресу www.example.com/файл_качать_здесь.php кладем php скрипт выполняющий запрос к гугл аналитикс, а затем отдающий заголовки header('Location: www.example.com/путь_к_файлу.zip');
2. По адресу www.example.com/путь_к_файлу.zip само собой лежит файл, но что бы его не качали по прямой ссылке нам нужен mod_rewrite
3. В .htaccess пишем что то вроде:

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http://www\.example\.com [NC]
RewriteRule \имя_файла.zip www.example.com/файл_качать_здесь.php [R]


Таким образом узнать прямой путь к файлу несколько сложнее. Но даже если кто то и выложит прямую ссылку на файл, все пользователи пришедшие не с example.com будут отправлены в аналитику. Осталось только позаботиться что бы на example.com все ссылки вели на www.example.com/файл_качать_здесь.php
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы