benallfree/laravel-trackable

多站访问者跟踪。

dev-master 2018-08-11 02:23 UTC

This package is not auto-updated.

Last update: 2024-09-26 23:42:31 UTC


README

Trackable 使用 Drip/Segment 风格的联系人跟踪和点击记录。Trackable 使用 Cookie 来跟踪页面上的时间以及独特的用户活动,因此您可以提出复杂的问题,例如“我的哪些用户阅读了我的文章?”或者“我的注册用户在阅读页面 A 之后在页面 B 上花费了多长时间?”

安装

在您的主视图中包含

-echo(\Trackable::scripts());

app/config.php

查找

'providers' => [
  BenAllfree\Trackable\TrackableServiceProvider::class, // Insert before RouteServiceProvider
  App\Providers\RouteServiceProvider::class,
]

别名模型

'aliases' => [
  'Contact'=> \BenAllfree\Trackable\Models\Contact::class,
  'ContactMeta'=> \BenAllfree\Trackable\Models\ContactMeta::class,
  'Action'=> \BenAllfree\Trackable\Models\Action::class,
  'ActionMeta'=> \BenAllfree\Trackable\Models\ActionMeta::class,
  'Site'=> \BenAllfree\Trackable\Models\Site::class,
  'SiteHelper'=> \BenAllfree\Trackable\Helpers\Site::class,
  'Visitor'=> \BenAllfree\Trackable\Helpers\Visitor::class,
  'Trackable'=> \BenAllfree\Trackable\Helpers\Trackable::class,
]

app/Http/Kernel.php 中添加一个中间件组

protected $middlewareGroups = [
  'trackable' => [
    \BenAllfree\Trackable\Middleware\InitializeContact::class,
    \BenAllfree\Trackable\Middleware\LogHit::class,
  ],
];

然后使用中间件,例如在 app/routes/web.php

Route::group(['middleware'=>'trackable'], function() {
  ...any routes you want tracked...
});

然后发布

./artisan vendor:publish

访问和检索用户属性

$u = \Visitor::get();   // Get the current user (based on cookie)
$u->meta('foo', 'bar'); // Set foo=bar on the Contact model
$u->meta('foo');        // Retrieve the value of foo
$u->toArray();          // Retrieve a key/value array of all Contact attributes

扩展模型

有时,您可能需要扩展模型,特别是使用便利调用或额外字段扩展 SiteContact 模型。

注册动作和目标

如果您想为联系人记录一个目标

Visitor::get()->goal('some-goal-name', ['meta'=>'data']);