PHPackages                             neoan3-apps/simple-tracker - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. neoan3-apps/simple-tracker

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

neoan3-apps/simple-tracker
==========================

Basic analytics for the non-invasive webmaster

1.0.2(4y ago)024[1 PRs](https://github.com/sroehrl/neoan3-simple-tracker/pulls)1MITPHPCI passing

Since Aug 29Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/sroehrl/neoan3-simple-tracker)[ Packagist](https://packagist.org/packages/neoan3-apps/simple-tracker)[ RSS](/packages/neoan3-apps-simple-tracker/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (8)Dependencies (3)Versions (10)Used By (1)

Simple tracker
==============

[](#simple-tracker)

Simple PHP analytics

Cherishing privacy is an ideal that contrasts the requirement to adapt to user-behavior, understand action items for marketing, and react on once audience. This is why simple tracker focuses on the absolute minimum.

- no data-handoff to external sources
- no identity threatening data collection

Simple tracker can answer the following questions:

- Which pages have been visited?
- How many times?
- When?
- From which link did the visit come from

Identifiers (e.g. userIds, sessions, jwt, ...) can be added to

- identify unique visits
- create an understanding of click-paths

What simple tracker is not
--------------------------

[](#what-simple-tracker-is-not)

Simple tracker does not come with a UI. It is a data-collection tool storing visitor data in [Filebase](https://github.com/tmarois/Filebase) to establish a layer for UI development according to your needs.

Installation
============

[](#installation)

`composer require neoan3-apps/simple-tracker`

Usage
=====

[](#usage)

Please refer to [Filebase documentation](https://github.com/tmarois/Filebase) in order to query/process data.

data format
-----------

[](#data-format)

```
$visits = [
    [
        'date'       => (string) $date, // format Y-m-d H:i:s
        'endpoint'   => (string) $endpoint, // fully qualified
        'referrer'   => (string) $from, // if known, referrer (defaults to NULL)
        'identifier' => (string) $custom_identifier // however you want to track a user/session
    ], ...
]
```

track
-----

[](#track)

`Neoan3\Apps\SimpleTracker::track(string $identifier)`

Using track() should be done as early as possible (In neoan3 in your frame, without a framework in your index.php), but after potential identifiers. An identifier can be whatever you want (e.g. user-id, PHP-session) and is optional. Without an identifier each visit is captured as if an individual user made a request.

endpointData
------------

[](#endpointdata)

`Neoan3\Apps\SimpleTracker::endpointData([string $endpoint])`

If $endpoint is not set, $\_SERVER\['REQUEST\_URI'\] will be used.

Example:

```
$page = 'https://mysite.com/about-me/';

// return Filebase Document
$data = Neoan3\Apps\SimpleTracker::endpointData($page)->toArray();

$totalVisits = count($data['visits']);
```

identifierData
--------------

[](#identifierdata)

`Neoan3\Apps\SimpleTracker::identifierData(string $identifier)`

Example:

```
$user =  Neoan3\Apps\SimpleTracker::identifierData(Neoan3\Apps\Session::user_id());

// get recent activity of current user

$recent = $user->filter('visits', date('Y-m-d H:i:s',strtotime('last monday')), function($item, $date){
            return ($item['date'] == $date ? $item : false);
        })
```

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance57

Moderate activity, may be stable

Popularity6

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity64

Established project with proven stability

 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.

###  Release Activity

Cadence

Every ~265 days

Total

4

Last Release

1697d ago

Major Versions

0.0.3 → 1.0.22021-11-05

### Community

Maintainers

![](https://www.gravatar.com/avatar/92d2361b646651e3452a62d07274076346c4096480098a6c43d6c27ee28d460d?d=identicon)[neoan](/maintainers/neoan)

---

Top Contributors

[![sroehrl](https://avatars.githubusercontent.com/u/28542911?v=4)](https://github.com/sroehrl "sroehrl (17 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/neoan3-apps-simple-tracker/health.svg)

```
[![Health](https://phpackages.com/badges/neoan3-apps-simple-tracker/health.svg)](https://phpackages.com/packages/neoan3-apps-simple-tracker)
```

###  Alternatives

[kunstmaan/seo-bundle

Annotating content with metadata for social sharing and seo purposes cannot be overlooked nowadays. The KunstmaanSeoBundle contains default editing functionality for OpenGraph data, meta descriptions, keywords and titles and Metriweb tags. Because the metatagging and tracking options are always changing, a free field to add custom header information is provided as well.

24131.5k2](/packages/kunstmaan-seo-bundle)

PHPackages © 2026

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