albofish / footstep
适用于Laravel 5.2+的简单注册归因跟踪解决方案(UTM参数和引用者)
Requires
- php: ~5.5|~7.0
- illuminate/support: ~5.2|~5.3
Requires (Dev)
- laravel/framework: 5.2
- phpunit/phpunit: 4.*
- scrutinizer/ocular: ~1.1
- squizlabs/php_codesniffer: ~2.3
This package is not auto-updated.
Last update: 2024-09-29 02:34:14 UTC
README
Footstep是适用于Laravel 5.2+的简单注册归因跟踪解决方案
“我知道我浪费了一半的广告费……我只是希望我知道是哪一半。” ~ 亨利·普罗克特。
Footstep是从kyranb/Footprints包中派生出来的,经过重新设计以跟踪那些没有导致用户注册或登录的一次性事件。
安装
通过Composer
$ composer require albofish/footstep dev-master
将服务提供者和(可选)别名添加到config/app.php中对应的数组中
'providers' => [ ... Albofish\Footstep\FootstepServiceProvider::class, ], ... 'aliases' => [ ... 'Footstep' => Albofish\Footstep\FootstepFacade::class, ],
发布配置和迁移文件
php artisan vendor:publish --provider="Albofish\Footstep\FootstepServiceProvider"
将TrackRegistrationAttribution
特质添加到您要跟踪归因的模型中。例如
namespace App; use Illuminate\Auth\Authenticatable; use Illuminate\Database\Eloquent\Model; use Albofish\Footstep\TrackRegistrationAttribution; class User extends Model { use Authenticatable, TrackRegistrationAttribution; /** * The database table used by the model. * * @var string */ protected $table = 'users'; }
检查配置文件,特别是您要跟踪的模型
连接名称(可选 - 如果您需要一个分开的跟踪数据库)
'connection_name' => 'mytrackingdbconnection'
模型名称
'model' => 'App\User'
认证保护者
'guard' => 'web'
列名
'model_column_name' => 'user_id'
以及归因持续时间(以秒为单位)
'attribution_duration' => 2628000
您还可以定义一些您不想跟踪的路线
'landing_page_blacklist' => ['genealabs/laravel-caffeine/drip', 'admin']
如果您想在多个子域中使用通配符cookie,您可以设置自定义域名
'cookie_domain' => .yourdomain.com
此布尔值将允许您将跟踪数据写入队列中的数据库(可选)
'async' => true
将\Albofish\Footstep\Middleware\CaptureAttributionDataMiddleware::class
中间件添加到App\Http\Kernel.php
中,在EncryptCookie
中间件之后,如下所示
/** * The application's global HTTP middleware stack. * * These middleware are run during every request to your application. * * @var array */ protected $middleware = [ \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, \App\Http\Middleware\EncryptCookies::class, \Albofish\Footstep\Middleware\CaptureAttributionDataMiddleware::class, ];
用法
Footstep是如何工作的?
Footstep跟踪由未经认证的用户发送到您应用程序的所有请求的UTM参数和HTTP引用者。不确定UTM参数是什么? 维基百科上有详细介绍
UTM参数(UTM)是Urchin Traffic Monitor的缩写。这些文本标记允许用户在分析工具中跟踪和分析流量来源(例如Google Analytics)。通过将UTM参数添加到URL中,您可以识别发送流量到您网站的区域和活动。当用户点击引用链接/广告或横幅时,这些参数会被发送到Google Analytics(或其他分析工具),这样您就可以在报告中看到每个活动的效果。
以下是一个URL中UTM参数的示例:www.wikipedia.org/?utm_source=domain.com&utm_medium=banner&utm_campaign=winter15&utm_content=blue_ad&utm_term=headline_v1
UTM参数有5个维度
-
utm_source = 源名称(通常是源网站的域名)
-
utm_medium = 媒体名称;流量类型(例如cpc = 付费搜索,organic = 有机搜索;referral = 来自另一个网站的链接等。)
-
utm_campaign = 活动名称,例如Google AdWords中的活动名称,电子邮件活动的日期等。
-
utm_content = 区分一个活动中的不同部分;例如Google AdWords中AdGroup的名称(使用自动标记,您将在这个维度中看到您的广告标题)
-
utm_term = 区分一个内容中的不同部分;例如Google AdWords中的关键字
每次访问都跟踪哪些数据?
着陆页
引用者URL
引用者域名
utm_source
utm_campaign
utm_medium
utm_term
utm_content
created_at
(访问日期)
获取用户注册前的所有访问记录。
$user = User::find(1); $user->visits;
获取用户注册前的首次访问的归属数据。
$user = User::find(1); $user->initialAttributionData();
获取用户注册前的最后一次访问的归属数据。
$user = User::find(1); $user->finalAttributionData();
变更日志
请查看提交历史以获取更多最近变更的信息。
测试
尚未着手进行这项工作 - 欢迎提交Pull Request ;)
$ composer test
贡献
如果您遇到任何问题,有建议或希望扩展此包的功能,请打开一个issue或pull request :)
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。