mateffy / pan-analytics-viewer
View your analytics directly where you collect them.
Installs: 763
Dependents: 0
Suggesters: 0
Security: 0
Stars: 64
Watchers: 2
Forks: 0
Open Issues: 1
Language:Blade
Requires
- spatie/laravel-package-tools: ^1.16
README
mateffy/pan-analytics-viewer
A tiny Laravel package to view your panphp/pan analytics directly in the UI where they are triggered!
Video Example
example-trimmed.webm
Installation
composer require mateffy/pan-analytics-viewer
Usage
To add the popups to your app, all you have to do is include the pan-analytics::viewer
component in your blade template:
{{-- Make sure to verify who has access! Including this component will expose your analytics data! --}} @if (auth()->user()?->email === 'admin@example.com') <x-pan-analytics::viewer /> @endif
The popups should now be appearing when hovering over elements that have a [data-pan]
attribute.
Options
You can pass options to the component to change the default behavior:
<x-pan-analytics::viewer :toggle="true" :events="['my-event-1', 'my-event-2']" :force-all="true" />
Events
The package will automatically detect what events are being tracked on the current page by querying for data-pan
attributes. If you are dynamically creating tracked elements after initial render, these may be missed and no popup will be shown.
To fix this, you can either specify the specific events
you want to show on the page or use the force-all
option to disable filtering and fetch all events.
Security
The package registers a route for the client to be able to access the data. This route required a valid URL signature to be able to access it, which the pan-analytics::viewer
component will automatically generate (signed URLs are valid for 1h). If you include this component on a page that is publicly accessible and don't check the user before including the component, anyone can access the analytics data!
So, make sure to only render this component for users with the necessary permissions.
@if (auth()->user()?->email === 'admin@example.com') <x-pan-analytics::viewer /> @endif {{-- or --}} @if (auth()->user()?->can('view-analytics')) <x-pan-analytics::viewer /> @endif
Tippy.js
This package uses Tippy.js to create the popups. tippy.js
is included via unpkg.com
like this, but only when the component is rendered:
<script src="https://unpkg.com/@popperjs/core@2"></script> <script src="https://unpkg.com/tippy.js@6"></script>
Configuration
You can publish the config file with:
php artisan vendor:publish --provider="Mateffy\PanAnalyticsViewer\PanAnalyticsViewerServiceProvider" --tag="config"
This is the default configuration:
return [ 'endpoint' => env('PAN_ANALYTICS_ENDPOINT', '/pan/viewer') ];
Endpoint
You can change the URL that the analytics are being exposed on by changing the PAN_ANALYTICS_ENDPOINT
environment variable or customizing the endpoint
config key. The default URL is example.com/pan/viewer
.
Changelog
- 1.0.2
- Feature: added Livewire support, the
[data-pan]
search will now be re-run after Livewiremorph.updated
events are fired, to show the popups for newly created elements
- Feature: added Livewire support, the
- 1.0.1
- Fix: removed livewire specific script inclusion
- 1.0.0
- Initial release