PHPackages                             benallfree/laravel-trackable - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. benallfree/laravel-trackable

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

benallfree/laravel-trackable
============================

Multisite visitor tracking.

01641PHP

Since Aug 11Pushed 4y ago1 watchersCompare

[ Source](https://github.com/benallfree/laravel-trackable)[ Packagist](https://packagist.org/packages/benallfree/laravel-trackable)[ RSS](/packages/benallfree-laravel-trackable/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Trackable
=========

[](#trackable)

Trackable uses Drip/Segment-style contact tracking and hit logging. Trackable uses cookies to track time on page and unique user activity so you can ask complicated questions like "which of my users has read my article?" or "how long have my registered users spent on page B after reading page A?"

Installation
------------

[](#installation)

In your main view, include:

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

```

In `app/config.php`:

Find

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

```

Alias the models:

```
'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,
]

```

In `app/Http/Kernel.php`, add a middleware group:

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

```

Then use the middleware, such as in `app/routes/web.php`:

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

```

Then publish:

```
./artisan vendor:publish

```

Accessing and retrieving user attributes
----------------------------------------

[](#accessing-and-retrieving-user-attributes)

```
$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

```

Extending the Models
--------------------

[](#extending-the-models)

On occasion, you may need to extend the models, particularly the `Site` and `Contact` models with convenience calls or additional fields.

Registering actions and goals
-----------------------------

[](#registering-actions-and-goals)

If you want to record a goal for a contact:

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

```

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/30946baad55104dce034b907ea7bb80b510786960f10d2c37e6882adb1518378?d=identicon)[benallfree](/maintainers/benallfree)

---

Top Contributors

[![benallfree](https://avatars.githubusercontent.com/u/1068356?v=4)](https://github.com/benallfree "benallfree (39 commits)")

### Embed Badge

![Health badge](/badges/benallfree-laravel-trackable/health.svg)

```
[![Health](https://phpackages.com/badges/benallfree-laravel-trackable/health.svg)](https://phpackages.com/packages/benallfree-laravel-trackable)
```

###  Alternatives

[psr/log

Common interface for logging libraries

10.4k1.2B9.2k](/packages/psr-log)[itsgoingd/clockwork

php dev tools in your browser

5.9k27.6M94](/packages/itsgoingd-clockwork)[graylog2/gelf-php

A php implementation to send log-messages to a GELF compatible backend like Graylog2.

41838.2M138](/packages/graylog2-gelf-php)[bugsnag/bugsnag-psr-logger

Official Bugsnag PHP PSR Logger.

32132.5M2](/packages/bugsnag-bugsnag-psr-logger)[consolidation/log

Improved Psr-3 / Psr\\Log logger based on Symfony Console components.

15462.2M7](/packages/consolidation-log)[datadog/php-datadogstatsd

An extremely simple PHP datadogstatsd client

19124.6M15](/packages/datadog-php-datadogstatsd)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
