Как было сказано в предыдущей статье, в силу необходимости, сотрудниками ALG Systems был разработан эффективнй способ сбора статистики посещаемости Интернет-ресурсов компании. Во второй части серии публикаций мы расскажем про особенности сбора статистики посещаемости блогов компании на платформе WordPress.
Для этого применялись следующие средства:
- WordPress API;
- руководство разработчика;
- наша программа – DataAnalyticsTool.
Мы извлекаем статистику с помощью обычных HTTP запросов. Можно запрашивать различные форматы результатов: ‘csv’, ‘xml’ или ‘json’. Для выполнения запросов необходима идентификация, где используетя название блога и секретный ключ для WordPress аккаунта. Его можно получить здесь. Возможная частота запросов – один запрос на 180 секунд.
Обратите внимание на форматы дат. Они выглядят так: (‘Y-m-d’ UTC). Наименование запрашиваемого периода выбрано неудачно. Даже если «period=week», то параметр определяющий величину все равно называется «days=». Например, «period=week?days=5» – это пять недель .
Теперь перейдем к характеристике параметров.
Название | Описание |
api_key | Секретная уникальная строка для Вашей учётной записи на WordPress.com. |
blog_id | Целое число, которое идентифицирует Ваш блог . Находится в остальных URLs, относящихся к вашему блогу. |
blog_uri | Строка полного URL корневой директории блога. Включая полный путь. |
table | Строка с одними из параметров: views, postviews, referrers, referrers_grouped, searchterms, clicks, videoplays. |
post_id | Целое число, которое используется с postviews таблицей. |
end | Строка. Последний день желаемого периода. В формате ‘Y-m-d’ (2007-05-01), UTC время по умолчанию. |
days | Целое число. Желаемый период времени. По умолчанию 30. “-1″ значит неограниченно. |
period | Строка для использования со значением «table=views» и параметром «days». Желаемый отрезок периода «week» или «month». Значение «days» используется как количество возвращаемых результатов (например, «period=week&days=12» возвращение 12 недель) |
limit | Целое число. Максимальное количество записей для возвращения. По умолчанию 100. “-1″ означает неограниченно. Если дней -1, то лимит ограничен до 500. |
summarize | Флаг. Если присутствует, то суммирует все соответствующие записи. |
format | В каком формате будут возвращаться данные: «csv», «xml» или «json». По умолчанию – «csv». |
Обязательные параметры: api_key, blog_id или blog_uri.
Дополнительные параметры: table, post_id, end, days, limit, summarize.
С помощью этих параметров мы вытягиваем четыре вида статистики. Ниже указаны колонки, которые возвращаются:
POST Statshttp://stats.wordpress.com/csv.php?api_key d5d8dad2af12&blog_uri=###&table=postviews Возвращаемые колонки: «date», «post_id», «post_title», «post_permalink», «views» |
|
Referrer Statshttp://stats.wordpress.com/csv.php?api_key=###&blog_uri=###&table=referrers_grouped Возвращаемые колонки: «date», «group», «referrer», «views» |
|
Search Term Statshttp://stats.wordpress.com/csv.php?api_key=###&blog_uri=###&table=searchterms Возвращаемые колонки: «date», «searchterm», «views» |
|
Click Statshttp://stats.wordpress.com/csv.php?api_key=###&blog_uri=###&table=clicks Возвращаемые колонки: «date», «click», «views» |
Ниже представлен фрагмент кода, который сотрудники ALG Systems писали на С#:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// Используем namespaces using System.Net; using System.IO; string blog = “http://stats.wordpress.com/csv.php?api_key=###&blog_uri =http://algsystemsblogua.wordpress.com/&table=clicks&end=2012-06-29 &days=7&limit=-1” string statData = ""; WebResponse objResponse; WebRequest objRequest = System.Net. HttpWebRequest.Create(csURL); objResponse = objRequest.GetResponse(); using (StreamReader sr = new StreamReader(objResponse. GetResponseStream())) { statData = sr.ReadToEnd(); // Close and clean up the StreamReader sr.Close(); } |
Данные, которые возвращаются в переменную statData:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
"date","click","views" "2012-06-29","http://www.flickr.com/photos/algsystems/7438850208/in/ set-72157630278129280/",1 "2012-06-28","http://ukraine.algsystems.com/node/106?language=ru",1 "2012-06-28","http://www.flickr.com/photos/algsystems/7400320306/",1 "2012-06-28","http://www.flickr.com/photos/algsystems/7400320394/in/ set-72157630190148802/",1 "2012-06-28","http://www.flickr.com/photos/algsystems/7438850208/in/ set-72157630278129280/",1 "2012-06-26","http://www.flickr.com/photos/algsystems/7400320802/in/ set-72157630190148802/",1 "2012-06-26","http://www.flickr.com/photos/algsystems/7438849522/in/ set-72157630278129280/",1 "2012-06-25","http://www.flickr.com/photos/algsystems/7438850208/in/ set-72157630278129280/",3 "2012-06-25","http://www.flickr.com/photos/algsystems/7301761940/in/ set-72157629967929854/",1 "2012-06-25","http://ukraine.algsystems.com/node/106?language=ru",1 "2012-06-25","http://www.flickr.com/photos/algsystems/7188956573/in/ set-72157630069959425/",1 "2012-06-25","http://www.flickr.com/photos/algsystems/7438849170/in/ set-72157630278129280/",1 "2012-06-25","http://www.flickr.com/photos/algsystems/7438849522/in/ set-72157630278129280/",1 "2012-06-25","http://www.flickr.com/photos/algsystems/7438849690/in/ set-72157630278129280/",1 "2012-06-25","http://www.flickr.com/photos/algsystems/7400320508/in/ set-72157630190148802/",1 "2012-06-23","http://www.flickr.com/photos/algsystems/7400320682/in/ set-72157630190148802/",1 "2012-06-23","http://www.flickr.com/photos/algsystems/7400320802/in/ set-72157630190148802/",1 "2012-06-23","http://www.flickr.com/photos/algsystems/sets/ 72157630190148802/",1 |
Эти строки легко импортируются в базу данных.
Спасибо всем за внимание! В заключительной статье мы поделимся опытом сбора статистики с Google Analytics.