Dengan menggunakan paket ini Anda dapat dengan mudah mengambil data dari Google Analytics.
Berikut adalah beberapa contoh metode yang disediakan:
use Spatie Analytics Facades Analytics ;
use Spatie Analytics Period ;
/ / fetch the most visited pages for today and the past week
Analytics:: fetchMostVisitedPages (Period:: days ( 7 ));
/ / fetch visitors and page views for the past week
Analytics:: fetchVisitorsAndPageViews (Period:: days ( 7 ));
Kebanyakan metode akan mengembalikan objek IlluminateSupportCollection
yang berisi hasilnya.
Kami menginvestasikan banyak sumber daya untuk menciptakan paket sumber terbuka terbaik di kelasnya. Anda dapat mendukung kami dengan membeli salah satu produk berbayar kami.
Kami sangat menghargai Anda mengirimi kami kartu pos dari kota asal Anda, yang menyebutkan paket kami mana yang Anda gunakan. Anda akan menemukan alamat kami di halaman kontak kami. Kami mempublikasikan semua kartu pos yang diterima di dinding kartu pos virtual kami.
Paket ini dapat diinstal melalui Composer.
composer require spatie/laravel-analytics
Secara opsional, Anda dapat mempublikasikan file konfigurasi paket ini dengan perintah ini:
php artisan vendor:publish --tag= " analytics-config "
File konfigurasi berikut akan dipublikasikan di config/analytics.php
return [
/ *
* The property id of which you want to display data .
* /
' property_id ' => env ( ' ANALYTICS_PROPERTY_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 ' ,
],
];
Hal pertama yang perlu Anda lakukan adalah mendapatkan kredensial untuk menggunakan Google API. Saya berasumsi Anda sudah membuat akun Google dan masuk. Buka situs Google API dan pilih atau buat proyek.
Selanjutnya kita harus menentukan API mana yang dapat digunakan oleh proyek tersebut. Buka Perpustakaan API dan cari "API Data Google Analytics".
Pilih aktifkan untuk mengaktifkan API.
Kini setelah Anda membuat proyek yang memiliki akses ke API Analytics, sekarang saatnya mengunduh file dengan kredensial ini. Klik "Kredensial" di sidebar. Anda ingin membuat "Kunci akun layanan".
Di layar berikutnya Anda dapat memberi nama pada akun layanan. Anda dapat memberi nama apa pun yang Anda suka. Di id akun layanan Anda akan melihat alamat email. Kami akan menggunakan alamat email ini nanti dalam panduan ini.
Buka layar detail akun layanan yang Anda buat dan pilih "kunci", dari tarik-turun "Tambahkan kunci" pilih "Buat kunci baru".
Pilih "JSON" sebagai jenis kunci dan klik "Buat" untuk mengunduh file JSON.
Simpan json di dalam proyek Laravel Anda di lokasi yang ditentukan dalam kunci service_account_credentials_json
dari file konfigurasi paket ini. Karena file json berisi informasi yang berpotensi sensitif, saya tidak menyarankan untuk memasukkannya ke repositori git Anda.
Saya berasumsi Anda telah membuat akun Analytics di situs Analytics dan menggunakan properti GA4 baru.
Pertama, Anda perlu mengetahui ID properti Anda. Di Analytics, buka Pengaturan > Pengaturan Properti. Di sini Anda akan dapat menyalin ID properti Anda. Gunakan nilai ini untuk kunci ANALYTICS_PROPERTY_ID
di file .env Anda.
Sekarang kita perlu memberikan akses ke akun layanan yang Anda buat. Buka "Manajemen Akses Properti" di bagian Admin properti. Klik tanda plus di pojok kanan atas untuk menambahkan pengguna baru.
Di layar ini Anda dapat memberikan akses ke alamat email yang terdapat di kunci client_email
dari file json yang Anda unduh pada langkah sebelumnya. Peran analis sudah cukup.
Saat penginstalan selesai, Anda dapat dengan mudah mengambil data Analytics. Hampir semua metode akan mengembalikan instance IlluminateSupportCollection
.
Berikut beberapa contoh penggunaan titik
use Spatie Analytics Facades Analytics ;
/ / retrieve visitors and page view data for the current day and the last seven days
$ analyticsData = Analytics:: fetchVisitorsAndPageViews (Period:: days ( 7 ));
/ / retrieve visitors and page views since the 6 months ago
$ analyticsData = Analytics:: fetchVisitorsAndPageViews (Period:: months ( 6 ));
$analyticsData
adalah Collection
yang setiap itemnya merupakan larik yang menyimpan kunci date
, visitors
, dan pageViews
Jika Anda ingin memiliki kontrol lebih besar terhadap periode pengambilan data, Anda dapat meneruskan startDate
dan endDate
ke objek periode.
$ startDate = Carbon:: now ()-> subYear ();
$ endDate = Carbon:: now ();
Period:: create ( $ startDate , $ endDate );
public function fetchVisitorsAndPageViews( Period $ period ): Collection
Fungsi ini mengembalikan Collection
yang setiap itemnya merupakan array yang menyimpan kunci activeUsers
, screenPageViews
dan pageTitle
.
public function fetchVisitorsAndPageViewsByDate( Period $ period ): Collection
Fungsi ini mengembalikan Collection
yang setiap itemnya berupa array yang menyimpan kunci date
, activeUsers
, screenPageViews
dan pageTitle
.
public function fetchTotalVisitorsAndPageViews( Period $ period ): Collection
Fungsi ini mengembalikan Collection
yang setiap itemnya berupa larik yang menyimpan kunci date
, date
, visitors
, dan pageViews
.
public function fetchMostVisitedPages( Period $ period , int $ maxResults = 20 ): Collection
Fungsi ini mengembalikan Collection
yang setiap itemnya berupa array yang menyimpan kunci fullPageUrl
, pageTitle
dan screenPageViews
.
public function fetchTopReferrers( Period $ period , int $ maxResults = 20 ): Collection
Fungsi ini mengembalikan Collection
yang setiap itemnya berupa larik yang menyimpan kunci screenPageViews
dan pageReferrer
.
public function fetchUserTypes( Period $ period ): Collection
Fungsi ini mengembalikan Collection
yang setiap itemnya berupa larik yang menyimpan kunci activeUsers
dan newVsReturning
yang bisa sama dengan new
atau returning
.
public function fetchTopBrowsers( Period $ period , int $ maxResults = 10 ): Collection
Fungsi ini mengembalikan Collection
yang setiap itemnya berupa larik yang menyimpan kunci screenPageViews
dan browser
.
public function fetchTopCountries( Period $ period , int $ maxResults = 10 ): Collection
Fungsi ini mengembalikan Collection
yang setiap itemnya berupa array yang menyimpan kunci screenPageViews
dan country
.
public function fetchTopOperatingSystems( Period $ period , int $ maxResults = 10 ): Collection
Fungsi ini mengembalikan Collection
yang setiap itemnya merupakan larik yang menyimpan kunci screenPageViews
dan operatingSystem
.
Untuk semua pertanyaan lainnya, Anda dapat menggunakan fungsi get
.
public function get( Period $ period , array $ metrics , array $ dimensions = [], int $ limit = 10 , array $ orderBy = [], FilterExpression $ dimensionFilter = null , FilterExpression $ metricFilter = null ): Collection
Berikut beberapa info tambahan tentang argumen yang dapat Anda sampaikan:
Period $period
: objek SpatieAnalyticsPeriod untuk menunjukkan tanggal mulai dan berakhir untuk kueri Anda.
array $metrics
: array metrik yang akan diambil. Anda dapat menemukan daftar semua metrik di sini.
array $dimensions
: array dimensi untuk mengelompokkan hasil. Anda dapat menemukan daftar semua dimensi di sini.
int $limit
: jumlah maksimum hasil yang akan dikembalikan.
array $orderBy
: dari objek OrderBy untuk mengurutkan hasil.
array $offset
: Defaultnya adalah 0, Anda dapat menggunakan ini dalam kombinasi dengan parameter $limit untuk mendapatkan penomoran halaman.
bool $keepEmptyRows
: Jika salah atau tidak ditentukan, setiap baris dengan semua metrik sama dengan 0 tidak akan dikembalikan. Jika benar, baris ini akan dikembalikan jika tidak dihapus secara terpisah oleh filter.
Misalnya:
$ orderBy = [
OrderBy:: dimension ( ' date ' , true ),
OrderBy:: metric ( ' pageViews ' , false ),
];
FilterExpression $dimensionFilter
: memfilter hasil untuk hanya menyertakan nilai dimensi tertentu. Anda dapat menemukan detail lebih lanjut di sini.
Misalnya:
use Google Analytics Data V1beta Filter ;
use Google Analytics Data V1beta FilterExpression ;
use Google Analytics Data V1beta Filter StringFilter ;
use Google Analytics Data V1beta Filter StringFilter MatchType ;
$ dimensionFilter = new FilterExpression ([
' filter ' => new Filter ([
' field_name ' => ' eventName ' ,
' string_filter ' => new StringFilter ([
' match_type ' => MatchType:: EXACT ,
' value ' => ' click ' ,
]),
]),
]);
FilterExpression $metricFilter
: filter diterapkan setelah menggabungkan baris laporan, mirip dengan klausa SQL. Dimensi tidak dapat digunakan dalam filter ini. Anda dapat menemukan detail lebih lanjut di sini.
Misalnya:
use Google Analytics Data V1beta Filter ;
use Google Analytics Data V1beta FilterExpression ;
use Google Analytics Data V1beta Filter NumericFilter ;
use Google Analytics Data V1beta NumericValue ;
use Google Analytics Data V1beta Filter NumericFilter Operation ;
$ metricFilter = new FilterExpression ([
' filter ' => new Filter ([
' field_name ' => ' eventCount ' ,
' numeric_filter ' => new NumericFilter ([
' operation ' => Operation:: GREATER_THAN ,
' value ' => new NumericValue ([
' int64_value ' => 3 ,
]),
]),
]),
]);
## Testing
Run the tests with:
``` bash
vendor/bin/pest
Silakan lihat CHANGELOG untuk informasi lebih lanjut tentang apa yang berubah baru-baru ini.
Silakan lihat KONTRIBUSI untuk rinciannya.
Jika Anda menemukan bug terkait keamanan, silakan kirim email ke [email protected] alih-alih menggunakan pelacak masalah.
Dan terima kasih khusus kepada Caneco untuk logonya
Lisensi MIT (MIT). Silakan lihat File Lisensi untuk informasi lebih lanjut.