باستخدام هذه الحزمة يمكنك بسهولة استرداد البيانات من 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 وأنك تستخدم مواقع "إحصاءات Google 4" الجديدة.
أولا سوف تحتاج إلى معرفة معرف الممتلكات الخاصة بك. في Analytics، انتقل إلى الإعدادات > إعدادات الموقع. هنا سوف تكون قادرا على نسخ معرف الممتلكات الخاصة بك. استخدم هذه القيمة لمفتاح ANALYTICS_PROPERTY_ID
في ملف .env الخاص بك.
سنحتاج الآن إلى منح حق الوصول إلى حساب الخدمة الذي قمت بإنشائه. انتقل إلى "إدارة الوصول إلى العقار" في قسم الإدارة الخاص بالعقار. انقر فوق علامة الجمع في الزاوية اليمنى العليا لإضافة مستخدم جديد.
في هذه الشاشة، يمكنك منح حق الوصول إلى عنوان البريد الإلكتروني الموجود في مفتاح client_email
من ملف json الذي قمت بتنزيله في الخطوة السابقة. دور المحلل يكفي.
عند الانتهاء من التثبيت، يمكنك استرداد بيانات Analytics بسهولة. ستُرجع جميع الطرق تقريبًا مثيلاً IlluminateSupportCollection
- .
فيما يلي بعض الأمثلة باستخدام الفترات
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. لا يمكن استخدام الأبعاد في هذا الفلتر. يمكنك العثور على مزيد من التفاصيل هنا.
على سبيل المثال:
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
الرجاء مراجعة سجل التغيير لمزيد من المعلومات عما تغير مؤخرًا.
يرجى الاطلاع على المساهمة للحصول على التفاصيل.
إذا وجدت خطأً يتعلق بالأمان، فيرجى إرسال بريد إلكتروني إلى العنوان [email protected] بدلاً من استخدام أداة تعقب المشكلات.
وشكر خاص لشركة Caneco على الشعار
رخصة معهد ماساتشوستس للتكنولوجيا (MIT). يرجى الاطلاع على ملف الترخيص لمزيد من المعلومات.