devig/laravel-dashboard-google-analytics-realtime-tile

A Google Analytics realtime tile for Laravel Dashboard

1.1.0 2022-03-16 19:10 UTC

This package is not auto-updated.

Last update: 2023-01-28 01:11:59 UTC


README

Latest Version on Packagist Total Downloads

This tile can be used on the Laravel Dashboard to display Google Analytics realtime information.

Installation

You can install the package via composer:

composer require ingoldsby/laravel-dashboard-google-analytics-realtime-tile

Google Analytics credentials

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:

  1. Enable the Google Analytics API.
  2. Create a Service Account with appropriate permissions.
  3. 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".

Google Analytics view

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.

Usage

In the dashboard config file, you must add this configuration in the tiles key.

  1. Enter the view ID that you wish to gather information for e.g. 123456789.
  2. If you changed the name and/or location of the analytics credentials JSON from suggested below, update the field.
  3. The number of URLs displayed on the URLs tile can be limited by amending the urls_displayed field, with a default value of 10.
  4. The active users tile can have the background changed depending upon a threshold of how many active users you set. If the active_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 \Ingoldsby\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(\Ingoldsby\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:

Dashboard tiles

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email instead of using the issue tracker.

Support Spatie

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:

Laravel Package training

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.

Credits

License

The MIT License (MIT). Please see License File for more information.