This tile can be used on the Laravel Dashboard to display Google Analytics realtime information.
You can install the package via composer:
composer require vdvcoder/laravel-dashboard-google-analytics-realtime-tile-v2
Before using this tile you need to ensure you have the correct credentials on your system. Follow the instructions on Real Time Reporting API Overview to sign up to access the API. When access is granted:
- Enable the Google Analytics API.
- Create a Service Account with appropriate permissions.
- Navigate to the Service Account and add a new JSON private key. A JSON file will be downloaded - rename this to 'analytics-credentials.json' and move it to your root Laravel directory.
Make note of the 'Service Account ID' that is generated. It will follow the format of "<service_account_name>@.iam.gserviceaccount.com".
Access Google Analytics and navigate to the required view (e.g. Account > Properties & Apps > View). Make note of the 'View ID' that is displayed underneath the view name. Click on 'View User Management' and add a new user. The email address is the Service Account ID that was used in the Google Analytics credentials step.
More information is available on the Real Time Reporting API Developer Guide. Also take into account your quotas and limits on API Requests.
In the dashboard
config file, you must add this configuration in the tiles
key.
- Enter the view ID that you wish to gather information for e.g. 123456789.
- If you changed the name and/or location of the analytics credentials JSON from suggested below, update the field.
- The number of URLs displayed on the URLs tile can be limited by amending the
urls_displayed
field, with a default value of 10. - The
active users
tile can have the background changed depending upon a threshold of how many active users you set. If theactive_users_warning_threshold
field is not in the settings, there will be no threshold and no change to the background. Setting to a value of 0 would use the warning background when there are 0 active users. Setting to a value of 10 would use the warning background when there are 10 or fewer active users.
// in config/dashboard.php
return [
// ...
'tiles' => [
'google_analytics_realtime' => [
'view_id' => '123456789',
'key_file_location' => __DIR__ . '/../analytics-credentials.json',
'urls_displayed' => 4,
'active_users_warning_threshold' => 0,
]
],
];
In app\Console\Kernel.php
you should schedule the \vdvcoder\GoogleAnalyticsRealtimeTile\Commands\FetchGoogleAnalyticsRealtimeCommand
to run every minute, pending your Google API quotas and limits.
// in app/console/Kernel.php
protected function schedule(Schedule $schedule)
{
// ...
$schedule->command(\vdvcoder\GoogleAnalyticsRealtimeTile\Commands\FetchGoogleAnalyticsRealtimeCommand::class)->everyMinute();
}
In your dashboard view you can use three separate tiles:
livewire:google-analytics-realtime-active-users-tile
livewire:google-analytics-realtime-devices-tile
livewire:google-analytics-realtime-urls-tile
<x-dashboard>
<livewire:google-analytics-realtime-active-users-tile position="a1:a4" />
<livewire:google-analytics-realtime-devices-tile position="b1:b4" />
<livewire:google-analytics-realtime-urls-tile position="a5:b8" />
</x-dashboard>
The layout above will produce something similar to:
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email instead of using the issue tracker.
I have learnt a lot from Spatie's various packages, including Mailcoach, and would recommend you check them out if you want to know more.
Learn how to create a package like this one, by watching Spatie's premium video course:
Spatie invest a lot of resources into creating best in class open source packages. You can support them by buying one of their paid products.
The MIT License (MIT). Please see License File for more information.