hcodes / server_yametrika

使用 Yandex.Metrica 进行服务器端访客跟踪

v2.0.2 2021-04-05 07:06 UTC

This package is auto-updated.

Last update: 2024-09-08 06:26:30 UTC


README

Packagist Version Packagist Downloads Packagist License

使用 Yandex.Metrica 为 PHP 进行服务器端访客跟踪。

在某些情况下,需要在不使用 JavaScript 的情况下在服务器端跟踪操作。

例如

  • 跟踪搜索机器人
  • 重定向
  • 文件加载
  • 错误页面(403、404、500)
  • RSS
  • 脚本执行时间
  • 数据库查询时间
  • AJAX 请求跟踪
  • 等等。

功能

服务器端实现类似于 JavaScript 实现

  • 页面访问 hit()
  • 达成目标 reachGoal()
  • 外部链接 extLink()
  • 文件加载 file()
  • 访问参数 params()
  • 非跳出 notBounce()

Yandex.Metrica 仅接受通过 https 协议的点击,请确保 PHP 支持 SSL。

计数器设置

在计数器设置中,在“筛选”/“筛选机器人”选项卡上,必须选择“考虑所有机器人”的选项。否则,统计信息将无法收集。

限制

在服务器端发送时,在 Metrika 中不可用的报告

  • 性别和年龄结构
  • 性别和年龄
  • 显示器分辨率
  • WebVisor,表单分析
  • 点击图

唯一访客按 User Agent 和 IP 地址计算。

安装

composer require hcodes/server_yametrika

API

页面访问

<?php

use ServerYaMetrika\YaMetrika;

$counter = new YaMetrika(123456); // Номер счётчика Метрики

// Все параметры по умолчанию.
$counter->hit(); // Значение URL и referer берутся по умолчанию из $_SERVER

// Отправка хита с абсолютными урлами.
// page_url, title, referer
$counter->hit('https://mysite.org', 'Main page', 'https://ya.ru');

// Отправка хита с относительными урлами.
$counter->hit('/index.html', 'Main page', '/back.html');

// Отправка хита вместе с параметрами визитов.
$userParams = ['param' => 1, 'param2' => 2];
$counter->hit('https://mysite.org', 'Main page', 'https://ya.ru', $userParams);

// Отправка хита вместе с параметрами визитов и с запретом на индексацию.
$userParams = ['param1' => 1, 'param2' => 2];
$counter->hit(
    'https://mysite.org',
    'Main page',
    'https://ya.ru',
    $userParams,
    'noindex'
);

?>

达成目标

<?php

use ServerYaMetrika\YaMetrika;

$counter = new YaMetrika(123456); // Номер счётчика Метрики.
// Внимание! Перед вызовом методов reachGoal должен вызван метод hit(...),
// чтобы была корректная привязка цели к визиту.
$counter->reachGoal('goal_name');

// С параметрами визита.
$counter->reachGoal('goal_name', ['param1' => 1, 'param2' => 2]);

?>

外部链接,外部链接报告

<?php

use ServerYaMetrika\YaMetrika;

$counter = new YaMetrika(123456); // Номер счётчика Метрики.
$counter->extLink('https://yandex.ru');

// С названием ссылки.
$counter->extLink('https://yandex.ru', 'Яндекс');

?>

文件加载,文件加载报告

<?php

use ServerYaMetrika\YaMetrika;

$counter = new YaMetrika(123456); // Номер счётчика Метрики.

$counter->file('https://mysite.org/archive.zip');

// С названием ссылки.
$counter->file('https://mysite.org/archive.zip', 'Архив рассылки');

?>

发送用户参数,访问参数报告

<?php

use ServerYaMetrika\YaMetrika;

$counter = new YaMetrika(123456); // Номер счётчика Метрики.

$counter->params(['level1' => ['level2' => 1]]);

?>

非跳出

<?php

use ServerYaMetrika\YaMetrika;

$counter = new YaMetrika(123456); // Номер счётчика Метрики.

$counter->notBounce();

?>

应用示例

访客使用哪些程序阅读 RSS?

<?php

use ServerYaMetrika\YaMetrika;

$counter = new YaMetrika(123456); // Номер счётчика Метрики.
// Просмотр статистики в отчёте «Параметры визитов», ветка RSS → User Agent.
$counter->params(['RSS' => ['User Agent' => $_SERVER['HTTP_USER_AGENT']]]);

?>

跟踪机器人抓取 robots.txt

在根目录 .htaccess 文件中添加 "RewriteRule ^robots.txt$ robots.php" 行,并在根目录创建包含以下内容的 robots.php 文件:

<?php

use ServerYaMetrika\YaMetrika;

$counter = new YaMetrika(123456); // Номер счётчика Метрики.
// Просмотр статистики в отчёте «Параметры визитов», ветка Robots.txt → User Agent.
$counter->params(['Robots.txt' => ['User Agent' => $_SERVER['HTTP_USER_AGENT']]]);

$txt = file_get_contents('robots.txt');

header('Cache-Control: no-cache');
header('Pragma: no-cache');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Content-Type: text/plain');

print $txt;

?>

有用链接

许可证

MIT 许可证