albofish/footstep

适用于Laravel 5.2+的简单注册归因跟踪解决方案(UTM参数和引用者)

0.2.10-beta 2017-07-18 13:00 UTC

README

Footstep for Laravel 5.2+ (UTM and Referrer Tracking)

Latest Version on Packagist Software License Total Downloads

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