承接 da41b94c/traffic-source-capture 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

da41b94c/traffic-source-capture

Composer 安装命令:

composer require da41b94c/traffic-source-capture

包简介

First-touch traffic source capture (UTM/referrer/search/AI chat) without external services

README 文档

README

Packagist Version CI

TrafficSourceCapture

First-touch фиксация источника трафика (UTM / click-id / referrer / поисковики / AI-чаты) без сторонних инструментов. Подходит, когда нужно быстро сохранить источник и приклеить его к заявке (CRM/почта/Telegram/БД).

Что делает

На первом касании определяет канал и детали, сохраняет их в $_SESSION (и опционально в cookie как backup), а позже позволяет получить человекочитаемую строку или структурированные данные для заявки.

Каналы:

  • ai — ИИ-чаты (строго по UTM: utm_source из whitelist + utm_medium=ai_chat, есть fallback по referrer)
  • paid — реклама (UTM / click-id: gclid, yclid, ysclid, gbraid, wbraid, msclkid и др.)
  • organic — поиск (определение поисковика + попытка вытащить поисковый запрос)
  • referral — переход с сайта (внешний referrer)
  • direct — прямой заход (нет referrer / внутренний referrer)

Дополнительно сохраняется traffic_confidence:

  • high — строгий AI UTM или полный рекламный UTM (utm_source + utm_medium + utm_campaign)
  • medium — click-id only, organic, referral, AI по referrer fallback
  • low — direct

Установка

composer require da41b94c/traffic-source-capture

Быстрый старт

В начале запроса (до обработки форм):

use Da41b94c\TrafficSource\TrafficSourceCapture;

TrafficSourceCapture::Capture();

В момент сохранения заявки:

$TrafficText = TrafficSourceCapture::GetHuman();     // строка для уведомлений/CRM
$TrafficData = TrafficSourceCapture::GetLeadData();  // массив для БД/CRM

Поддерживаемые tracking-параметры

Библиотека сохраняет:

  • UTM: utm_source, utm_medium, utm_campaign, utm_content, utm_term, utm_id, utm_source_platform, utm_creative_format, utm_marketing_tactic
  • click-id: yclid, gclid, fbclid, ysclid, gbraid, wbraid, msclkid, ttclid, vkclid, roistat, _openstat
  • дополнительные короткие метки: from

Пример UTM для AI-чата

Чтобы переход определился как ai, UTM должны соответствовать whitelist-логике:

  • utm_source=chatgpt
  • utm_medium=ai_chat

Пример:

https://example.com/landing?utm_source=chatgpt&utm_medium=ai_chat&utm_campaign=leadgen

Если UTM не проходят строгую проверку AI — они попадут в paid.

Cookie backup и TTL

Capture() поддерживает cookie backup (включён по умолчанию) и TTL (опционально).

// useCookieBackup=true, ttlSeconds=0 (по умолчанию)
TrafficSourceCapture::Capture(null, null, true, 0);

// Пример: разрешить перезапись first-touch через 30 дней
TrafficSourceCapture::Capture(null, null, true, 2592000);

При восстановлении из cookie данные повторно валидируются: неизвестные поля отбрасываются, строки очищаются, канал и confidence проверяются по whitelist.

Что возвращает GetLeadData()

GetLeadData() возвращает массив. Старые поля сохранены для совместимости, новые добавлены поверх них:

[
	'traffic_channel' => 'paid',
	'traffic_source' => 'yandex',
	'traffic_medium' => 'cpc',
	'traffic_campaign' => 'roofmaster',
	'traffic_content' => '',
	'traffic_term' => '',
	'traffic_landing' => '/landing',
	'traffic_referrer_host' => 'example.com',
	'traffic_confidence' => 'high',
	'traffic_click_ids' => '{"yclid":"123"}',
	'traffic_details' => 'Реклама — UTM: utm_source=yandex, utm_medium=cpc, utm_campaign=roofmaster; Landing: /landing',
	'traffic_raw' => '{...}'
]

Ключевые поля:

  • traffic_channelai|paid|organic|referral|direct
  • traffic_source — краткий источник (например, utm_source, название поисковика, домен referrer или имя click-id)
  • traffic_mediumutm_medium
  • traffic_campaignutm_campaign
  • traffic_contentutm_content
  • traffic_termutm_term
  • traffic_landing — посадочная страница без query string
  • traffic_referrer_host — домен источника/referrer или текущий host для direct/UTM-входа
  • traffic_confidencehigh|medium|low
  • traffic_click_ids — JSON с click-id
  • traffic_details — человекочитаемая строка (GetHuman())
  • traffic_raw — JSON со всеми сохранёнными данными

Мини-пример для CRM / Bitrix24 / MODX

$TrafficData = TrafficSourceCapture::GetLeadData();

$LeadFields = [
	'TITLE' => 'Заявка с сайта',
	'COMMENTS' => $TrafficData['traffic_details'],
	'UTM_SOURCE' => $TrafficData['traffic_source'],
	'UTM_MEDIUM' => $TrafficData['traffic_medium'],
	'UTM_CAMPAIGN' => $TrafficData['traffic_campaign'],
	'UTM_CONTENT' => $TrafficData['traffic_content'],
	'UTM_TERM' => $TrafficData['traffic_term'],
	'UF_TRAFFIC_CHANNEL' => $TrafficData['traffic_channel'],
	'UF_TRAFFIC_CONFIDENCE' => $TrafficData['traffic_confidence'],
	'UF_TRAFFIC_LANDING' => $TrafficData['traffic_landing'],
	'UF_TRAFFIC_RAW' => $TrafficData['traffic_raw'],
];

Если выводите эти данные в админке MODX/CRM, используйте plain text или экранирование:

echo htmlspecialchars($TrafficData['traffic_details'], ENT_QUOTES, 'UTF-8');

Важно про безопасность

Данные источника — недоверенные:

  • Любой может подделать UTM в URL.
  • HTTP_REFERER может отсутствовать или быть урезанным.
  • Cookie backup может быть изменён пользователем, поэтому при восстановлении данные валидируются повторно.
  • Нельзя использовать источник трафика как механизм безопасности, антифрода или контроля доступа.

Рекомендации:

  • Если выводите значения в админке — выводите как plain text или экранируйте (htmlspecialchars).
  • Не полагайтесь на источник трафика для принятия “охранных” решений.
  • Для аналитики заявок храните traffic_raw, но показывайте менеджеру traffic_details.

Requirements

  • PHP >= 7.0
  • (опционально) ext-intl для idn_to_ascii() при нормализации IDN доменов

License

MIT

da41b94c/traffic-source-capture 适用场景与选型建议

da41b94c/traffic-source-capture 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 01 月 27 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「php」 「traffic」 「lead」 「UTM」 「referrer」 「attribution」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 da41b94c/traffic-source-capture 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 da41b94c/traffic-source-capture 我们能提供哪些服务?
定制开发 / 二次开发

基于 da41b94c/traffic-source-capture 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 4
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 27
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-27