combindma / laravel-trail
这是一个简单的用于跟踪您Laravel网站上用户活动的包。
Requires
- php: ^8.2
- illuminate/contracts: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9|^8.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.0|^9.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
README
Laravel Trail是一个功能强大且易于使用的包,用于跟踪您的Laravel网站上的用户活动。由Combind开发,此包自动记录重要信息,如UTM标签、引用者、用户操作等,为您提供有关用户行为及其在网站上的旅程的宝贵见解。
但是为什么?
Laravel Trail旨在帮助开发者轻松捕获和存储其网站上的用户活动数据。此包使您能够跟踪关键信息,如UTM标签、引用者和用户操作,这些信息可用于深入了解用户行为和网站性能。
通过存储这些信息,开发者可以轻松将其与Google Analytics或其他分析平台等首选跟踪工具集成,以进一步分析用户互动并优化网站以提高用户体验、转化率和营销目标。
功能
- 轻松跟踪:无需额外代码即可自动跟踪用户活动
- 捕获重要数据:记录UTM标签、引用者和用户操作以获取宝贵见解
- cookies集成:在cookies中存储跟踪数据
- 可定制性:轻松扩展和修改包以跟踪更多数据或事件
- 文档和支持:从全面的文档和支持中受益
关于Combind Agency
Combine Agency是一家领先的网站开发公司,专注于使用现代技术构建创新和高性能的网站应用程序。我们的经验丰富的开发人员、设计师和项目经理团队致力于为客户提供量身定制的高质量服务。
如果您需要帮助您的下一个项目或想讨论定制解决方案,请随时联系我们或访问我们的网站获取有关我们服务的更多信息。让我们一起打造一些惊人的东西!
安装
您可以通过composer安装此包
composer require combindma/laravel-trail
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="laravel-trail-config"
这是已发布的配置文件的内容
return [ /* * The prefix key under which data is saved to the cookies. */ 'prefix' => env('TAIL_COOKIE_PREFIX', config('app.name', 'laravel')).'_', /* * The cookie duration in seconds used to store data. By default, we use 180 days. */ 'cookie_duration' => env('TAIL_COOKIE_DURATION', 60 * 24 * 180), /* * Enable or disable script rendering. Useful for local development. */ 'enabled' => env('TAIL_ENABLED', false), ];
监控标签
Laravel Trail自动跟踪和存储以下标签,为用户行为、流量来源和用户人口统计信息提供宝贵见解
-
UTM标签
utm_source
:标识流量来源(例如,google,newsletter,referral_website)。utm_medium
:描述营销媒体(例如,cpc,email,social)。utm_campaign
:提供有关特定营销活动或推广的详细信息(例如,spring_sale,newsletter_april)。utm_term
:捕获用于付费搜索活动的关键词(例如,running+shoes,digital+marketing)。utm_content
:区分同一广告或内容片段中的多个链接(例如,logo_link,text_link)。
-
其他标签
anonymous_id
:用于在您的网站上跟踪匿名用户的唯一标识符。user_id
:用于您的网站上注册或登录用户的唯一标识符。email
:用于您的网站上注册或登录用户的唯一电子邮件。name
:用于您的网站上注册或登录用户的全名。landing_page
:在会话期间用户访问您的网站上的第一个页面。exit_page
:用户在离开您的网站之前访问的最后一个页面。ip_address
:用户的IP地址,可以提供有关其位置和网络的见解。last_activity
:用户在您的网站上最近一次活动的时间和日期。user_agent
:用户代理字符串,提供了有关用户浏览器、操作系统和设备的详细信息。language
:用户在浏览器设置中指定的首选语言。referrer
:将用户发送到您的网站的引用网站的URL。referrer_code
:与引用者相关联的唯一代码或ID(例如,合作伙伴或推荐计划)。
-
未来预期的标签
device
:用户使用的设备类型(例如,台式机、平板电脑、手机)。browser
:用户的网络浏览器(例如,Chrome、Firefox、Safari)。operating_system
:用户的操作系统(例如,Windows、macOS、Android、iOS)。screen_resolution
:用户的屏幕分辨率。page_views
:用户在单个会话期间查看的页面数量。conversion_date
:用户完成预期行为或目标(例如,购买或注册通讯录)的日期。
这些标签可以帮助您通过深入了解用户交互和流量模式,优化您的网站以提供更好的用户体验和更高的转化率。
使用方法
添加设置中间件
此中间件负责设置:匿名ID、用户ID、退出页面、着陆页面、最后活动时间、用户代理、IP地址、语言
// app/Http/Kernel.php protected $middleware = [ ... \Illuminate\Session\Middleware\StartSession::class, \Combindma\Trail\Middleware\TrailSetupMiddleware::class, ... ];
保存UTM标签
您有两种保存UTM标签的方式
1. 在您的控制器中
public function index(Request $request) { \Combindma\Trail\Facades\Trail::setUtmCookies($request); //... }
2. 使用路由中的中间件
Route::group([ 'middleware' => ['web', \Combindma\Trail\Middleware\HandleUtmTagsMiddleware::class]], function () { Route::get('/test-trail', function (Request $request) { //... }); }); //... }
保存引用者信息
您有两种保存UTM标签的方式
1. 在您的控制器中
public function index(Request $request) { \Combindma\Trail\Facades\Trail::setReferrerCookies($request); //... }
2. 使用路由中的中间件
Route::group([ 'middleware' => ['web', \Combindma\Trail\Middleware\CaptureReferrerMiddleware::class]], function () { Route::get('/test-trail', function (Request $request) { //... }); }); //... }
保存用户ID或电子邮件
您可以通过带有这些参数的URL捕获用户ID或电子邮件:user_id或email。
例如:域名.com?user_id=123456&email=email@email.com
您有两种保存用户信息的方式
1. 在您的控制器中
public function index(Request $request) { \Combindma\Trail\Facades\Trail::setUserCookie($request); //... }
2. 使用路由中的中间件
Route::group([ 'middleware' => ['web', \Combindma\Trail\Middleware\CaptureUserMiddleware::class]], function () { Route::get('/test-trail', function (Request $request) { //... }); }); //... }
识别用户
唯一必需的参数是userId
\Combindma\Trail\Facades\Trail::identify($userId);//User id can be an email if you don't offer a sign-up in your website \Combindma\Trail\Facades\Trail::identify($userId, 'email@domain.com', 'full name'); //you may also save an email with a name
获取Cookies数据
为了获取保存的数据,您可以使用以下方法请求它
\Combindma\Trail\Facades\Trail::data($request); \Combindma\Trail\Facades\Trail::data(); //Behind the scene uses request() helper
这将返回一个格式化的数据对象
readonly class TrailDto { public function __construct( public string $anonymousId, public ?string $userId, public ?string $email, public ?string $name, public ?string $landingPage, public ?string $exitPage, public ?string $lastActivity, public ?string $ipAddress, public ?string $language, public ?string $userAgent, public ?string $referrer, public ?string $referrerCode, public ?string $utmSource, public ?string $utmMedium, public ?string $utmCampaign, public ?string $utmTerm, public ?string $utmContent, ) { } }
其他方法
\Combindma\Trail\Facades\Trail::disable(); //Disable in the fly \Combindma\Trail\Facades\Trail::enable(); //Enable in the fly \Combindma\Trail\Facades\Trail::getAnonymousId(); //Get anonymous id
测试
composer test
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全漏洞
有关如何报告安全漏洞,请参阅我们的安全策略。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。