combindma/laravel-trail

这是一个简单的用于跟踪您Laravel网站上用户活动的包。

0.1.1 2024-09-13 13:40 UTC

This package is auto-updated.

Last update: 2024-09-13 13:40:42 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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自动跟踪和存储以下标签,为用户行为、流量来源和用户人口统计信息提供宝贵见解

  1. 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)。
  2. 其他标签

    • anonymous_id:用于在您的网站上跟踪匿名用户的唯一标识符。
    • user_id:用于您的网站上注册或登录用户的唯一标识符。
    • email:用于您的网站上注册或登录用户的唯一电子邮件。
    • name:用于您的网站上注册或登录用户的全名。
    • landing_page:在会话期间用户访问您的网站上的第一个页面。
    • exit_page:用户在离开您的网站之前访问的最后一个页面。
    • ip_address:用户的IP地址,可以提供有关其位置和网络的见解。
    • last_activity:用户在您的网站上最近一次活动的时间和日期。
    • user_agent:用户代理字符串,提供了有关用户浏览器、操作系统和设备的详细信息。
    • language:用户在浏览器设置中指定的首选语言。
    • referrer:将用户发送到您的网站的引用网站的URL。
    • referrer_code:与引用者相关联的唯一代码或ID(例如,合作伙伴或推荐计划)。
  3. 未来预期的标签

    • 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)。有关更多信息,请参阅许可证文件