Download the PHP package andreaselia/analytics without Composer
On this page you can find all versions of the php package andreaselia/analytics. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download andreaselia/analytics
More information about andreaselia/analytics
Files in andreaselia/analytics
Package analytics
Short Description Analytics for the Laravel framework.
License MIT
Informations about the package analytics
Laravel Analytics
Easily collect page view analytics with a beautifully simple to use dashboard.
Installation
Install the package:
Publish the config file and assets:
Don't forget to run the migrations:
You can add the page view middleware to a specific route group, e.g. web.php
like so:
Or add the page view to all middlewares/on an application level like so:
Configuration
Disabling tracking
You can disable tracking by setting the environment variable ANALYTICS_ENABLED
or the enabled
property in the analytics.php
config file to false
.
Excluding routes
You can exclude certain routes from being tracked by adding them to the exclude
array in the analytics.php
config file.
Ignore robots
You can ignore requests from robots by setting the ignoreRobots
property in the analytics.php
config file.
Ignore specific IP addresses
You can ignore requests from specific IP addresses by adding them to the ignoreIps
array in the analytics.php
config file.
Masking routes
You can mask certain routes from being tracked by adding them to the mask
array in the analytics.php
config file.
This is useful if you want to track the same route with different parameters, e.g. /users/1
and /users/2
will be tracked as /users/∗︎
.
Ignoring certain HTTP verbs/methods
You can ignore the tracking of some methods by adding them to the analytics.ignoreMethods
config option. For example, if you don't want to track POST
requests, you can configure it like so:
Changing how session_id is determined
By default, session_id
in the page_views
table is filled with the session ID of the current request. However, in certain scenarios (for example, for API and other requests not using cookies), the session is unavailable.
In these cases, you can create a custom session ID provider: create a class that implements the AndreasElia\Analytics\Contracts\SessionProvider
interface and set its name as the provider
option in the analytics.php
config file. The configured class object is resolved from the container, therefore, dependency injection can be used via the __constructor
.
One example of a custom way to generate the session ID in cookie-less environment is to hash IP address + User Agent + some other headers from the request.
Feel free to take a look at AndreasElia\Analytics\RequestSessionProvider
for an example of implementing the SessionProvider
interface.
Changing how the timezone for "today" and "yesterday" is determined
Since timestamps are stored using your application's timezone, you may get mixed results depending on when you check views for "today" and "yesterday" and your actual timezone. You can change the relative time for whatever "now" is by setting a callback in a service provider.
You can return a dynamic value like the example above, or a static value. If one isn't determined, it will just fall back to the config('app.timezone')
value.
Laravel Nova
The package comes with a dashboard and metrics for Laravel Nova.
Dashboard
You can add the dashboard to Laravel Nova by adding new \AndreasElia\Analytics\Nova\Dashboards\Analytics
to dashboards
array in your NovaServiceProvider
:
Metrics
Alternatively, you can add the metrics to your own Laravel Nova dashboard by adding them to the cards
array in your dashboard file.
Contributing
You're more than welcome to submit a pull request, or if you're not feeling up to it - create an issue so someone else can pick it up.
All versions of analytics with dependencies
ext-intl Version *
illuminate/support Version ^8.0|^9.0|^10.0|^11.0
illuminate/database Version ^8.0|^9.0|^10.0|^11.0
illuminate/collections Version ^8.0|^9.0|^10.0|^11.0
illuminate/http Version ^8.0|^9.0|^10.0|^11.0
illuminate/view Version ^8.0|^9.0|^10.0|^11.0
jenssegers/agent Version ^2.6
jaybizzle/crawler-detect Version ^1.2
doctrine/dbal Version ^3.0
mobiledetect/mobiledetectlib Version ^2.7.6