Integrasi Laravel Dengan Google Analytics Menggunakan Package Laravel Analytics

Integrasi Laravel Dengan Google Analytics Menggunakan Package Laravel Analytics

Ketika kita membuat aplikasi web seperti blog maka google analytics merupakan salah satu hal penting yang perlu kita integrasikan agar dapat melakukan analisa pengunjung website kita.

Kali ini kita akan menggunakan package dari spatie yaitu Laravel Analytics, dengan menggunakan package dari laravel analytics ini kita dapat mengambil data dari google analytics yang nantinya datanya dapat kita tampilkan di dashboard blog kita apakah dalam bentuk table maupun dalam bentuk chart, bagi anda yang ingin belajar menampilkan chart di laravel silahkan klik disini

Instalasi Package Laravel Analytics

untuk melakukan instalasi package dapat kita lakukan sbb

composer require spatie/laravel-analytics

dan kita dapat melakukan publish confignya dengan cara sbb

php artisan vendor:publish --provider="Spatie\Analytics\AnalyticsServiceProvider"

file config akan di publis di config/analytics.php

return [

    /*
     * The view id of which you want to display data.
     */
    'view_id' => env('ANALYTICS_VIEW_ID'),

    /*
     * Path to the client secret json file. Take a look at the README of this package
     * to learn how to get this file. You can also pass the credentials as an array
     * instead of a file path.
     */
    'service_account_credentials_json' => storage_path('app/analytics/service-account-credentials.json'),

    /*
     * The amount of minutes the Google API responses will be cached.
     * If you set this to zero, the responses won't be cached at all.
     */
    'cache_lifetime_in_minutes' => 60 * 24,

    /*
     * Here you may configure the "store" that the underlying Google_Client will
     * use to store it's data.  You may also add extra parameters that will
     * be passed on setCacheConfig (see docs for google-api-php-client).
     *
     * Optional parameters: "lifetime", "prefix"
     */
    'cache' => [
        'store' => 'file',
    ],
];

Pada config diatas terdapat bagian view_id maka kita perlu menambahkan view_id pada file environment aplikasi kita ( .ENV ) namun sebelumnya kita harus mendapatkan view_id dari website kita dengan cara sbb

Untuk Mendapatkan Credential View Id silahkan buka Google Api’s Site

  1. klik menu credential dan klik create credential

2. lalu klik create credential dan pilih service account

3. Isi Data Service Account dan klik create dan done

4. lalu pilih tab menu Key dan klik Add Key Dan Pilih Create New Key

5. Lalu pilih Key Typenya Json dan klik Create

setelah anda membuat json key maka anda akan otomatis mendownload file jsonnya , file json ini silahkan anda copy ke aplikasi laravel anda dan letakkan di

setelah itu anda buka google analytics anda disini anda harus pastikan anda menggunakan google analytics type Universal Di Tandai Dengan Awalan UA Pada Google Analytics ID Anda Seperti gambar dibawah ini

Pada Menu Google Analytics ini yang pertama kita lakukan adalah menambahkan user management caranya di menu sebelah kiri google analytics klik Admin dan setelah itu pilih ID Google Analytics Web yang ingin anda set dan klik view User Management Seperti gambar dibawah ini

di menu user management di sebelah kanan atas klik icon + dan pilih add user

pada saat menambahkan user ini anda dapat menambahkan alamat email sesuai dengan credential yang anda buat sebelumnya, untuk alamat email nya anda dapat temukan di file json yang anda download sebelumnya seperti gambar dibawah ini

dan silahkan anda isi form usernya dan untuk hak aksesnya cukup berikan hak akses read & analyze saja sudah cukup

setelah anda isi form user nya klik tombo add yang terdapat di bagian sebelah kanan atas dengan demikian kita sudah berhasil membuat user baru dengan hak akses read & analyze, maka tahap selanjutnya adalah mencopy view ID dan menambahkannya ke dalam file .ENV pada project laravel anda untuk mendapatkan view ID silahkan klik menu View Setting Dan Copy VIew ID Anda seperti gambar dibawah ini

setelah mendapatkan view ID maka silahkan anda tambahkan di file .ENV anda dan buat dengan nama : ANALYTICS_VIEW_ID=xxxx setelah itu anda copykan credential file json yang anda download tadi kedalam folder : storage/app/analytics/filecredentialjson
Seperti gambar dibawah ini

jika tidak ada foldernya anda bisa buat saja foldernya

Oke sekarang kita sudah bisa mengambil data dari google analytics yang nantinya akan kita gunakan di project kita, sebagai contoh kita akan mengambil data dari google analytics dalam contoh ini kita akan menampilkan data page yang paling sering dikunjungi di web kita

Pada FIle Controller

     //Retrieve Most Visited Pages
        $pages = Analytics::fetchMostVisitedPages(Period::days(7));

        return view('dashboard', compact(
            'pages',
        ));

Pada File Controller

<div>
        <div class="container px-6 mx-auto ">
                        <div class="p-6 m-10 bg-white rounded shadow">

                        <h2 class="text-center font-bold "> Halaman Paling Sering Dikunjungi 7 Hari Terakhir</h2>
                        <table class="min-w-full divide-y divide-gray-200 mt-2">
                            <thead class="bg-gray-50">
                            <tr>
                                <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
                                    URL
                                </th>
                                <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wide">
                                    Page Views
                                </th>
                            </tr>
                            </thead>
                            <tbody class="bg-white divide-y divide-gray-200">
                            @foreach ($pages as $page)
                            <tr>
                                <td class="px-6 py-4 whitespace-nowrap">
                                <div class="flex items-center">
                                    <div class="text-sm font-medium text-gray-900">
                                        <a class="font-semibold text-blue-500 hover:text-blue-300" 
                                            href="{{ $page['url'] }}" target="_blank">{{ $page['url'] }} 
                                        </a>
                                    </div>
                                    </div>
                                </td>

                                <td class="px-6 py-4 whitespace-nowrap">
                                    <div class="flex items-center">
                                        <div class="text-sm text-gray-900 font-semibold">
                                            {{ $page['pageViews'] }}
                                        </div>
                                        </div>
                                    </td>

                            </tr>
                            @endforeach
                            </tbody>
                        </table>
                        </div>
                    </div>
</div>

Dari code sederhana diatas akan menghasilkan output halaman yang paling sering dikunjungi 7 hari terakhir berikut outputnya

Dan kita juga dapat melakukan integrasi data dari google analytics ini dan di tampilkan dalam bentuk chart dengan package larapex charts untuk cara integrasinya silahkan baca disini

Beberapa Parameter yang Ada Di Package Laravel Analytics

//Retrieve Most Visited Pages
$pages = Analytics::fetchMostVisitedPages(Period::days(1));

//retrieve visitors and pageview data for the current day and the last fifteen days
$visitors = Analytics::fetchVisitorsAndPageViews(Period::days(15));

// Retrieve Total Visitors and Page Views
$total_visitors = Analytics::fetchTotalVisitorsAndPageViews(Period::days(7));

// Retrieve Top Referrers
$top_referrers = Analytics::fetchTopReferrers(Period::days(7));

// Retrieve User Types
$user_types = Analytics::fetchUserTypes(Period::days(7));

//Retrieve Top Browsers
$top_browser = Analytics::fetchTopBrowsers(Period::days(7));

//retrieve sessions and pageviews with yearMonth dimension since 1 year ago
$analyticsData = Analytics::performQuery(
   Period::years(1),
      'ga:sessions',
      [
          'metrics' => 'ga:sessions, ga:pageviews',
          'dimensions' => 'ga:yearMonth'
      ]
);

Kita juga bisa explore lebih lanjut mengenai google core reporting API silahkan baca disini

Silahkan Share Tulisan Ini Ya Agar Lebih Banyak Yang Dapat Manfaatnya

Terima Kasih,

Adinata

Referensi Terkait

Github Laravel Analytics klik disini

Belikan Saya Kopi

Print Friendly, PDF & Email
ADINATA

Recent Comments

    Instagram Saya

    Unsupported get request. Object with ID '17841441787287483' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api

    My Favorite Quote

    Work Hard,

    Have Fun,

    Make History,

    Jeff Bezos