การใช้แพ็คเกจนี้ทำให้คุณสามารถดึงข้อมูลจาก Google Analytics ได้อย่างง่ายดาย
นี่คือตัวอย่างบางส่วนของวิธีการที่ให้ไว้:
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 ));
วิธีการส่วนใหญ่จะส่งคืนวัตถุ IlluminateSupportCollection
ที่มีผลลัพธ์
เราลงทุนทรัพยากรจำนวนมากเพื่อสร้างแพ็คเกจโอเพ่นซอร์สที่ดีที่สุดในระดับเดียวกัน คุณสามารถสนับสนุนเราได้โดยการซื้อหนึ่งในผลิตภัณฑ์ที่ต้องชำระเงินของเรา
เราขอขอบคุณอย่างยิ่งที่คุณส่งโปสการ์ดจากบ้านเกิดของคุณถึงเรา โดยระบุว่าคุณใช้แพ็คเกจใดของเรา คุณจะพบที่อยู่ของเราในหน้าติดต่อของเรา เราเผยแพร่โปสการ์ดที่ได้รับทั้งหมดบนวอลล์โปสการ์ดเสมือนของเรา
แพ็คเกจนี้สามารถติดตั้งผ่าน Composer
composer require spatie/laravel-analytics
หรือคุณสามารถเผยแพร่ไฟล์กำหนดค่าของแพ็กเกจนี้ด้วยคำสั่งนี้:
php artisan vendor:publish --tag= " analytics-config "
ไฟล์กำหนดค่าต่อไปนี้จะถูกเผยแพร่ใน 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 ' ,
],
];
สิ่งแรกที่คุณต้องทำคือรับข้อมูลรับรองเพื่อใช้ Google API ฉันสมมติว่าคุณได้สร้างบัญชี Google แล้วและลงชื่อเข้าใช้แล้ว ไปที่ไซต์ของ Google API แล้วเลือกหรือสร้างโครงการ
ต่อไปเราต้องระบุว่าโครงการอาจใช้ API ใด ไปที่ไลบรารี API และค้นหา "Google Analytics Data API"
เลือกเปิดใช้งานเพื่อเปิดใช้งาน API
เมื่อคุณสร้างโปรเจ็กต์ที่มีสิทธิ์เข้าถึง Analytics API แล้ว ก็ถึงเวลาดาวน์โหลดไฟล์ที่มีข้อมูลประจำตัวเหล่านี้ คลิก "ข้อมูลรับรอง" ในแถบด้านข้าง คุณจะต้องสร้าง "รหัสบัญชีบริการ"
ในหน้าจอถัดไป คุณสามารถตั้งชื่อบัญชีบริการได้ คุณสามารถตั้งชื่ออะไรก็ได้ที่คุณต้องการ ในรหัสบัญชีบริการ คุณจะเห็นที่อยู่อีเมล เราจะใช้ที่อยู่อีเมลนี้ในคำแนะนำนี้ในภายหลัง
ไปที่หน้าจอรายละเอียดของบัญชีบริการที่คุณสร้างแล้วเลือก "คีย์" จากเมนูแบบเลื่อนลง "เพิ่มคีย์" เลือก "สร้างคีย์ใหม่"
เลือก "JSON" เป็นประเภทคีย์แล้วคลิก "สร้าง" เพื่อดาวน์โหลดไฟล์ JSON
บันทึก json ภายในโปรเจ็กต์ Laravel ของคุณในตำแหน่งที่ระบุในคีย์ service_account_credentials_json
ของไฟล์กำหนดค่าของแพ็คเกจนี้ เนื่องจากไฟล์ json มีข้อมูลที่ละเอียดอ่อน ฉันไม่แนะนำให้ส่งต่อไปยังที่เก็บ git ของคุณ
ฉันสมมติว่าคุณได้สร้างบัญชี Analytics บนเว็บไซต์ Analytics แล้ว และใช้พร็อพเพอร์ตี้ GA4 ใหม่
ขั้นแรกคุณจะต้องทราบรหัสทรัพย์สินของคุณ ใน Analytics ไปที่การตั้งค่า > การตั้งค่าพร็อพเพอร์ตี้ ที่นี่คุณจะสามารถคัดลอกรหัสทรัพย์สินของคุณได้ ใช้ค่านี้สำหรับคีย์ ANALYTICS_PROPERTY_ID
ในไฟล์ .env ของคุณ
ตอนนี้เราจะต้องให้สิทธิ์การเข้าถึงบัญชีบริการที่คุณสร้างขึ้น ไปที่ "การจัดการการเข้าถึงพร็อพเพอร์ตี้" ในส่วนผู้ดูแลระบบของพร็อพเพอร์ตี้ คลิกเครื่องหมายบวกที่มุมขวาบนเพื่อเพิ่มผู้ใช้ใหม่
บนหน้าจอนี้ คุณสามารถให้สิทธิ์การเข้าถึงที่อยู่อีเมลที่พบในคีย์ client_email
จากไฟล์ json ที่คุณดาวน์โหลดในขั้นตอนก่อนหน้า บทบาทนักวิเคราะห์ก็พอแล้ว
เมื่อการติดตั้งเสร็จสิ้น คุณสามารถดึงข้อมูล Analytics ได้อย่างง่ายดาย เกือบทุกวิธีจะส่งคืน IlluminateSupportCollection
-instance
ต่อไปนี้คือตัวอย่างบางส่วนที่ใช้จุด
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
คือ Collection
ที่แต่ละรายการเป็นอาร์เรย์ที่เก็บคีย์ date
visitors
และ pageViews
หากคุณต้องการควบคุมช่วงเวลาที่คุณต้องการดึงข้อมูลได้มากขึ้น คุณสามารถส่ง startDate
และ endDate
ไปยังออบเจ็กต์ช่วงเวลาได้
$ startDate = Carbon:: now ()-> subYear ();
$ endDate = Carbon:: now ();
Period:: create ( $ startDate , $ endDate );
public function fetchVisitorsAndPageViews( Period $ period ): Collection
ฟังก์ชันส่งคืน Collection
ที่แต่ละรายการเป็นอาร์เรย์ที่เก็บคีย์ activeUsers
, screenPageViews
และ pageTitle
public function fetchVisitorsAndPageViewsByDate( Period $ period ): Collection
ฟังก์ชันส่งคืน Collection
ซึ่งแต่ละรายการเป็นอาร์เรย์ที่เก็บคีย์ date
, activeUsers
, screenPageViews
และ pageTitle
public function fetchTotalVisitorsAndPageViews( Period $ period ): Collection
ฟังก์ชันส่งคืน Collection
ซึ่งแต่ละรายการเป็นอาร์เรย์ที่เก็บคีย์ date
, date
, visitors
และ pageViews
public function fetchMostVisitedPages( Period $ period , int $ maxResults = 20 ): Collection
ฟังก์ชันส่งคืน Collection
ซึ่งแต่ละรายการเป็นอาร์เรย์ที่เก็บคีย์ fullPageUrl
, pageTitle
และ screenPageViews
public function fetchTopReferrers( Period $ period , int $ maxResults = 20 ): Collection
ฟังก์ชันส่งคืน Collection
ที่แต่ละรายการเป็นอาร์เรย์ที่เก็บคีย์ screenPageViews
และ pageReferrer
public function fetchUserTypes( Period $ period ): Collection
ฟังก์ชันส่งคืน Collection
ซึ่งแต่ละรายการเป็นอาร์เรย์ที่เก็บคีย์ activeUsers
และ newVsReturning
ซึ่งอาจเท่ากับ new
หรือ returning
public function fetchTopBrowsers( Period $ period , int $ maxResults = 10 ): Collection
ฟังก์ชันส่งคืน Collection
ที่แต่ละรายการเป็นอาร์เรย์ที่เก็บคีย์ screenPageViews
และ browser
public function fetchTopCountries( Period $ period , int $ maxResults = 10 ): Collection
ฟังก์ชันส่งคืน Collection
ที่แต่ละรายการเป็นอาร์เรย์ที่เก็บคีย์ screenPageViews
และ country
public function fetchTopOperatingSystems( Period $ period , int $ maxResults = 10 ): Collection
ฟังก์ชันส่งคืน Collection
ซึ่งแต่ละรายการเป็นอาร์เรย์ที่เก็บคีย์ screenPageViews
และ operatingSystem
สำหรับข้อความค้นหาอื่นๆ ทั้งหมด คุณสามารถใช้ฟังก์ชัน get
public function get( Period $ period , array $ metrics , array $ dimensions = [], int $ limit = 10 , array $ orderBy = [], FilterExpression $ dimensionFilter = null , FilterExpression $ metricFilter = null ): Collection
ข้อมูลเพิ่มเติมเกี่ยวกับข้อโต้แย้งที่คุณสามารถส่งผ่านได้มีดังนี้
Period $period
: ออบเจ็กต์ SpatieAnalyticsPeriod เพื่อระบุวันที่เริ่มต้นและสิ้นสุดสำหรับการสืบค้นของคุณ
array $metrics
: อาร์เรย์ของตัวชี้วัดที่จะดึงข้อมูล คุณสามารถดูรายการเมตริกทั้งหมดได้ที่นี่
array $dimensions
: อาร์เรย์ของมิติเพื่อจัดกลุ่มผลลัพธ์ตาม คุณสามารถดูรายการมิติข้อมูลทั้งหมดได้ที่นี่
int $limit
: จำนวนผลลัพธ์สูงสุดที่จะส่งคืน
array $orderBy
: ของออบเจ็กต์ OrderBy เพื่อจัดเรียงผลลัพธ์ตาม
array $offset
: ค่าเริ่มต้นเป็น 0 คุณสามารถใช้สิ่งนี้ร่วมกับพารามิเตอร์ $limit เพื่อให้มีการแบ่งหน้า
bool $keepEmptyRows
: หากเป็นเท็จหรือไม่ระบุ แต่ละแถวที่มีเมตริกทั้งหมดเท่ากับ 0 จะไม่ถูกส่งกลับ หากเป็นจริง แถวเหล่านี้จะถูกส่งกลับหากตัวกรองไม่ได้ลบแถวเหล่านี้ออกแยกกัน
ตัวอย่างเช่น:
$ orderBy = [
OrderBy:: dimension ( ' date ' , true ),
OrderBy:: metric ( ' pageViews ' , false ),
];
FilterExpression $dimensionFilter
: กรองผลลัพธ์เพื่อรวมเฉพาะค่ามิติที่ระบุเท่านั้น คุณสามารถหารายละเอียดเพิ่มเติมได้ที่นี่
ตัวอย่างเช่น:
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
: ตัวกรองที่ใช้หลังจากรวมแถวของรายงาน คล้ายกับ SQL have-clause ไม่สามารถใช้มิติข้อมูลในตัวกรองนี้ คุณสามารถหารายละเอียดเพิ่มเติมได้ที่นี่
ตัวอย่างเช่น:
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
โปรดดู CHANGELOG สำหรับข้อมูลเพิ่มเติมว่ามีอะไรเปลี่ยนแปลงเมื่อเร็วๆ นี้
โปรดดูการมีส่วนร่วมเพื่อดูรายละเอียด
หากคุณพบข้อบกพร่องเกี่ยวกับการรักษาความปลอดภัย โปรดส่งอีเมลไปที่ [email protected] แทนการใช้ตัวติดตามปัญหา
และขอขอบคุณ Caneco เป็นพิเศษสำหรับโลโก้
ใบอนุญาตเอ็มไอที (MIT) โปรดดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม