Yandex Metrica

Shegl edited this page Feb 5, 2016 · 7 revisions

API Яндекс.Метрики

API сервиса Яндекс.Метрика позволяет:

  • Управлять счетчиками, их настройками и правами доступа, не используя веб-интерфейс.
  • Получать информацию о посещаемости сайта и другие данные.
  • Формировать отчеты, в том числе с помощью сегментации и параметризации. Подробнее можете прочесть на странице API Яндекс.Метрики: Введение.

Пример кода

Подключение библиотеки

Библиотека распространяется двумя способами: с использованием менеджера пакета Composer и в виде [phar архива] (http://php.net/manual/en/book.phar.php).

Пример подключения и работы с помощью Composer

// setup path to Composer autoloader
require dirname(__FILE__) . '/../../vendor/autoload.php';

Пример подключения и работа из phar-архива

  1. Скачиваем phar-файл или bz2-архив с ним, последней или конкретной версии: http://yadi.sk/d/26YmC3hRByBd7
  2. Сохраняем в папку с проектом.
// Подключаем autoload.php из phar-архива
require_once 'phar://yandex-php-library_master.phar/vendor/autoload.php';

API управления

API управления позволяет получить доступ к таким функциям сервиса Яндекс.Метрики, как:

  • управление счетчиками (получение информации о счетчиках, создание, изменение и удаление);
  • управление целями;
  • управление операциями и фильтрами;
  • управление аккаунтами и доступами;
  • управление представителями (создание, изменение, удаление). Подробнее можно прочесть на странице http://api.yandex.ru/metrika/doc/beta/management/intro.xml

Инициализация:

use Yandex\Metrica\Management\ManagementClient;
$managementClient = new ManagementClient(ACCESS_TOKEN);

Управление счетчиками:

Получение списка счетчиков созданных пользователем:

$params = new \Yandex\Metrica\Management\Models\CountersParams();
$params
    ->setType(\Yandex\Metrica\Management\AvailableValues::TYPE_SIMPLE)
    ->setField('goals,mirrors,grants,filters,operations');
$counters = $managementClient
    ->counters()
    ->getCounters($params)
    ->getCounters();

Получние информации об указанном счетчике:

$params = new \Yandex\Metrica\Management\Models\CounterParams();
$params->setField('goals,mirrors,grants,filters,operations');
$result = $managementClient->counters()->getCounter($counterId, $params)

Создание счетчика:

$counterData = new Yandex\Metrica\Management\Models\Counter();
$counterData->setName($counterName) ->setSite($counterSite);
$result = $managementClient->counters()->addCounter($counterData);

Изменение данных для указанного счетчика:

Примечание:

Метод изменяет значения только тех параметров, которые явно перечислены во входных данных. Значения параметров, не указанных во входных данных, не изменяются и не удаляются. Например, если во входных данных указан параметр site и не указан параметр mirrors, то домену сайта будет присвоено новое значение, а зеркала останутся без изменений.

$params = new Yandex\Metrica\Management\Models\ExtendCounter();
$params
    ->setName($counterName)
    ->setSite($counterSite);
$result = $managementClient->counters()->updateCounter($counterId, $params);

Управление целями:

Пример получения информации о целях счетчика.

$goals = $managementClient->goals()->getGoals($counterId);

Управление фильтрами:

Пример получения информации о фильтрах счетчика.

$filters = $managementClient->filters()->getFilters($counterId);

Управление операциями:

Пример получения информации об операциях счетчика.

$operations = $managementClient->operations()->getOperations($counterId);

Управление разрешениями

Пример получения информации о разрешениях на управление счетчиком и просмотр статистики.

$grants = $managementClient->grants()->getGrants($counterId);

Управление аккаунтами

Пример получения списка аккаунтов, представителем которых является текущий пользователь.

$accounts = $managementClient->accounts()->getAccounts();

Управление представителями

Пример получения списка представителей, которым предоставлен полный доступ к аккаунту текущего пользователя

$delegates = $managementClient->delegates()->getDelegates();

API отчетов v1

API отчетов позволяет получать информацию о статистике посещений сайта и другие данные, не используя интерфейс Яндекс.Метрики. Подробнее можно прочесть на странице детальной информации.

Инициализация:

use Yandex\Metrica\Stat\StatClient;
$statClient = new StatClient(ACCESS_TOKEN);

Пример получения отчета «Технологии — Браузеры»

$paramsModel = new Yandex\Metrica\Stat\Models\TableParams();
$paramsModel
    ->setPreset(\Yandex\Metrica\Stat\AvailableValues::PRESET_TECH_PLATFORMS)
    ->setDimensions(\Yandex\Metrica\Stat\DimensionsConst::S_BROWSER)
    ->setId($counterId);
$data = $statClient->data()->getTable($paramsModel);

Пример сравнения сегметнов (визиты с мобильных и не мобильных устройств)

$paramsModel = new Yandex\Metrica\Stat\Models\ComparisonParams();
$paramsModel
    ->setMetrics(\Yandex\Metrica\Stat\MetricConst::S_USERS)
    ->setId($counterId)
    ->setDimensions(\Yandex\Metrica\Stat\DimensionsConst::S_TRAFFIC_SOURCE)
    ->setFiltersA("ym:s:isMobile=='Yes'")
    ->setFiltersB("ym:s:isMobile=='No'");
$data = $statClient->data()->getComparisonSegments($paramsModel);

Пример получения информации о количестве хитов по дням за последние 7 дней:

$paramsModel = new Yandex\Metrica\Stat\Models\ByTimeParams();
$paramsModel
    ->setMetrics(\Yandex\Metrica\Stat\MetricConst::S_HITS)
    ->setId($counterId)
    ->setDate1('6daysAgo')
    ->setDate2('today')
    ->setGroup('day');
$data = $statClient->data()->getByTime($paramsModel);

API, совместимый с Google Analytics Core Reporting API (v3)

Данный API является совместимым с Google Analytics Core Reporting API (v3) и позволяет выполнять следующие операции:

  • Получать информацию о посещаемости сайта и другие данные.
  • Интегрировать данные Яндекс.Метрики с приложениями, разработанными с учетом особенностей Google Analytics Core Reporting API(v3).
  • Использовать привычные параметры запросов при сборе статистики, если ранее вы работали с Google Analytics Core Reporting API (v3). Подробнее можно прочесть на странице детальной информации.

Инициализация:

use Yandex\Metrica\Analytics\AnalyticsClient;
$analyticsClient = new AnalyticsClient(ACCESS_TOKEN);

Пример получения информации о количестве визитов по странам за неделю:

$paramsObj = new \Yandex\Metrica\Analytics\Models\Params();
$paramsObj
    ->setMetrics(\Yandex\Metrica\Analytics\MetricConst::GA_PAGE_VIEWS)
    ->setStartDate('6daysAgo')
    ->setEndDate('today')
    ->setIds('ga:' . $_GET['counter-id'])
    ->setDimensions(\Yandex\Metrica\Analytics\DimensionsConst::GA_COUNTRY);
$analyticsClient = new AnalyticsClient($_COOKIE['yaAccessToken']);
$data = $analyticsClient->ga()->getGaData($paramsObj);
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.