>
鑰匙要點- >使用PHP利用Google Analytics(Analytics)API V3來有效獲取和管理用戶帳戶數據,包括屬性和視圖。
- >實現管理API以檢索基於ga_service.php。
- >利用元數據API使用Google_curlio和Google_httprequest訪問和緩存分析元數據,用ETAG屬性優化數據檢索。
- >通過將分類,過濾和分割選項合併到API查詢中,增強數據自定義和相關性來擴展功能。
> 處理PHP中的身份驗證,錯誤響應和JSON數據解析,以確保與Google Analytics(分析)API的安全有效交互。 - > Google Analytics(分析)API
>正如我們在第一部分中討論的那樣,管理API負責獲取用戶帳戶,屬性,視圖……對於我們的第一個示例,我們將檢索可為身份驗證的用戶可用的帳戶列表。
>在Ga_service ::帳戶中,我們使用授權客戶端創建一個新的Google_analyticsService,然後查詢API中的帳戶列表。
在這種情況下,結果是一個數組,但是API也利用對象,我們只需要在GA_Service :: Init函數中指定它。在以下示例中,我將使用數組結果。
<span>// app/src/GA_Service.php </span><span>public function accounts(){ </span> <span>if( !$this->isLoggedIn() ){ </span> <span>//login </span> <span>} </span> <span>$service = new Google_AnalyticsService($this->client); </span> <span>$man_accounts = $service->management_accounts->listManagementAccounts(); </span> <span>$accounts = []; </span> <span>foreach ($man_accounts['items'] as $account) { </span> <span>$accounts[] = [ 'id' => $account['id'], 'name' => $account['name'] ]; </span> <span>} </span> <span>return $accounts; </span><span>}//accounts </span> <span>// app/controllers/HomeController.php </span><span>public function accounts(){ </span> <span>$accounts = $this->ga->accounts(); </span> <span>return $accounts; </span><span>}//accounts </span> <span>// app/routes.php </span><span>Route<span>::</span>get('/accounts', 'HomeController@accounts');</span>>
listManagementAccounts函數返回一個包含的數組:
請注意,當您將數組作為響應返回時,Laravel會自動編碼結果作為JSON響應並將其發送到瀏覽器。
<span>$this->client->setUseObjects(true);</span>>該結果包含有關總結果和一些分頁信息的信息。項目列包含帶有其ID,權限等的帳戶列表,但是我們通過項目循環以從帳戶中提取ID和名稱。
如果您想具有結果分頁,可以始終將更多選項傳遞給ListManagementAccount:
<span>{ </span> kind<span>: "analytics#accounts", </span> <span>username: "me@mail.com", </span> <span>totalResults: 3, </span> <span>startIndex: 1, </span> <span>itemsPerPage: 1000, </span> <span>items: [ </span> <span>{ </span> id<span>: "4449308", </span> <span>kind: "analytics#account", </span> <span>selfLink: "https://www.googleapis.com/analytics/v3/management/accounts/4449308", </span> <span>name: "me@mail.com", </span> <span>permissions: { </span> effective<span>: [ </span> <span>"COLLABORATE", </span> <span>"EDIT", </span> <span>"MANAGE_USERS", </span> <span>"READ_AND_ANALYZE" </span> <span>] </span> <span>}, </span> <span>created: "2013-10-01T11:04:28.478Z", </span> <span>updated: "2013-10-01T11:04:28.478Z", </span> <span>childLink: { </span> type<span>: "analytics#webproperties", </span> <span>href: "https://www.googleapis.com/analytics/v3/management/accounts/4449308/webproperties" </span> <span>} </span> <span>} </span> <span>] </span><span>}</span>
>假設我們將向用戶展示其帳戶列表,當他們選擇一個帳戶列表時,我們加載了與之關聯的屬性列表。
> ga_service :: properties接受帳戶ID,並返回該帳戶的屬性列表。我們基本上具有相同的過程,例如檢索帳戶。
><span>$service->management_accounts->listManagementAccounts( [ 'max-results' => $max_results, 'start-index' => $start_index ] );</span>
每個屬性都有一個視圖子集。默認情況下,Google添加了一個為每個新屬性的查看稱為所有網站數據。
>使用屬性列表中的ID和第一部分獲取的帳戶ID,我們將查詢Google Analytics Api中的Aprantics API列表的給定帳戶屬性的可用視圖列表。
<span>// app/src/GA_Service.php </span><span>public function accounts(){ </span> <span>if( !$this->isLoggedIn() ){ </span> <span>//login </span> <span>} </span> <span>$service = new Google_AnalyticsService($this->client); </span> <span>$man_accounts = $service->management_accounts->listManagementAccounts(); </span> <span>$accounts = []; </span> <span>foreach ($man_accounts['items'] as $account) { </span> <span>$accounts[] = [ 'id' => $account['id'], 'name' => $account['name'] ]; </span> <span>} </span> <span>return $accounts; </span><span>}//accounts </span> <span>// app/controllers/HomeController.php </span><span>public function accounts(){ </span> <span>$accounts = $this->ga->accounts(); </span> <span>return $accounts; </span><span>}//accounts </span> <span>// app/routes.php </span><span>Route<span>::</span>get('/accounts', 'HomeController@accounts');</span>在瀏覽器中,擊中/views/{councel_id}/{property_id}路由時,我們應該得到類似的東西:
<span>$this->client->setUseObjects(true);</span>>元數據API
要查詢Google Analytics(分析)的一些統計信息,我們需要提供一組維度和指標。
- >指標:指標是您屬性中用戶活動的單個測量值,例如會話和瀏覽量。
- >維度:尺寸分解了某些常見標準(例如國家或瀏覽器)的指標。
- 要獲取可用元數據的列表,您只需使用curl來查詢以下url https://www.googleapis.com/analytics/v3/metadata/ga/columns。
- Makerequest方法返回Google_httprequest實例,我們可以使用GetResponsebody獲取我們的元數據響應。 >
- 現在,在訪問瀏覽器中的 /元數據路由時,您應該獲得一系列尺寸,而另一個則用於指標,並且每個尺寸都包含一個分組元素的列表。
- >運算符:操作員取決於度量或尺寸列ID的選擇,請檢查docs以獲取運算符列表。
- 值:該值可以是數字,字符串或正則條件。
- >
google Analytics(分析)為我們提供了一個可用於緩存響應的ETAG屬性,因此我們不必在每個請求上查詢API。
google_curlio:一個包裹著一些捲曲的課程,用於處理緩存,身份驗證等 - 通過使用此類,我們確保使用etagattribute進行響應。
<span>{ </span> kind<span>: "analytics#accounts", </span> <span>username: "me@mail.com", </span> <span>totalResults: 3, </span> <span>startIndex: 1, </span> <span>itemsPerPage: 1000, </span> <span>items: [ </span> <span>{ </span> id<span>: "4449308", </span> <span>kind: "analytics#account", </span> <span>selfLink: "https://www.googleapis.com/analytics/v3/management/accounts/4449308", </span> <span>name: "me@mail.com", </span> <span>permissions: { </span> effective<span>: [ </span> <span>"COLLABORATE", </span> <span>"EDIT", </span> <span>"MANAGE_USERS", </span> <span>"READ_AND_ANALYZE" </span> <span>] </span> <span>}, </span> <span>created: "2013-10-01T11:04:28.478Z", </span> <span>updated: "2013-10-01T11:04:28.478Z", </span> <span>childLink: { </span> type<span>: "analytics#webproperties", </span> <span>href: "https://www.googleapis.com/analytics/v3/management/accounts/4449308/webproperties" </span> <span>} </span> <span>} </span> <span>] </span><span>}</span>>
- google_httprequest:是代表單個http請求的類
為了加快流程,我們將使用Bootsnipp。如果用戶登錄,我們將顯示主頁。
><span>$service->management_accounts->listManagementAccounts( [ 'max-results' => $max_results, 'start-index' => $start_index ] );</span>
<span>// app/src/GA_Service.php </span><span>public function properties( $account_id ){ </span> <span>if( !$this->isLoggedIn() ){ </span> <span>//login </span> <span>} </span> <span>try { </span> <span>$service = new Google_AnalyticsService($this->client); </span> <span>$man_properties = $service->management_webproperties->listManagementWebproperties($account_id); </span> <span>$properties = []; </span> <span>foreach ($man_properties['items'] as $property) { </span> <span>$properties[] = [ 'id' => $property['id'], 'name' => $property['name'] ]; </span> <span>}//foreach </span> <span>return json_encode($properties); </span> <span>} catch (Google_ServiceException $e) { </span> <span>return Response<span>::</span>json([ </span> <span>'status' => 0, </span> <span>'code' => 3, </span> <span>'message' => $e->getMessage() </span> <span>]); </span> <span>}//catch </span> <span>}//properties </span> <span>// app/controllers/HomeController.php </span><span>public function properties( $account_id ){ </span> <span>$properties = $this->ga->properties( $account_id ); </span> <span>return $properties; </span><span>}//properties </span> <span>// app/routes.php </span><span>Route<span>::</span>get( '/properties/{account_id}', [ 'uses' => 'HomeController@properties' ] )->where('account_id', '\d+');</span>我們需要更新我們的homecontroller@index以顯示主頁視圖。
從屏幕截圖中可以看到
>,當用戶選擇一個帳戶時,我們異步更改屬性和視圖。為了實現這一目標,我編寫了一些簡單的JS,您可以在最終的存儲庫中檢查一下。 >
通過提供所選視圖,指標和維度,我們可以獲得有關用戶和交互的詳細統計信息。用戶提交後的結果類似於:
>[ { id: "UA-52317977-1", name: "Prop1" }, { id: "UA-52317977-2", name: "Prop1" } ]
我們的ga_service ::報告接受四個參數:視圖ID,開始日期和結束日期以及一系列指標。
google無法返回您的所有舊數據 - 而是我們提供了一個開始日期和結束日期。在我的示例中,我詢問了上個月的結果。
第三個參數是我們從用戶選擇中已經擁有的指標列表。
>第四個可選參數是選項的數組。
- 最大值:結果的最大數量。 (我們使用10加速響應)。
- 尺寸:逗號分開的值列表。 (GA:Country,GA:City)
- 過濾器:逗號分開的規則列表要應用於結果。
在此示例中,我們將美國排除在尺寸列表之外,僅顯示大於100的頁面瀏覽量。
>
- 段:要應用於數據的高級段ID。
- 排序:訂單結果通過維度或指標。可以結合多個維度和指標。 (ga:country,-ga:pageViews = ga:ga:country上升和ga:pageviews降落。
- 開始索引:可用於分頁。
<span>// app/src/GA_Service.php </span><span>public function accounts(){ </span> <span>if( !$this->isLoggedIn() ){ </span> <span>//login </span> <span>} </span> <span>$service = new Google_AnalyticsService($this->client); </span> <span>$man_accounts = $service->management_accounts->listManagementAccounts(); </span> <span>$accounts = []; </span> <span>foreach ($man_accounts['items'] as $account) { </span> <span>$accounts[] = [ 'id' => $account['id'], 'name' => $account['name'] ]; </span> <span>} </span> <span>return $accounts; </span><span>}//accounts </span> <span>// app/controllers/HomeController.php </span><span>public function accounts(){ </span> <span>$accounts = $this->ga->accounts(); </span> <span>return $accounts; </span><span>}//accounts </span> <span>// app/routes.php </span><span>Route<span>::</span>get('/accounts', 'HomeController@accounts');</span>>調用GET GOGEE_ANALYTICSSERVICE :: GET方法後,我們使用結果項目,列標題和總結果的列表將結果作為表輸出。
現在,讓我們看看如何通過過濾器,分類和段擴展演示。
>
>過濾>過濾器是從返回結果中排除某些數據的一種方法。他們採用以下形式:
<span>$this->client->setUseObjects(true);</span>
- ga:列:維度或公制ID(例如:GA:country)
段
默認情況下,Google Analytics(分析)將您的所有數據組在一個稱為所有會話的組中。但是,您始終可以從內置段中選擇或根據您的需求創建一個新的。您可以按推薦,設備類型,年齡,性別等進行分組數據。
>>您可以通過在可用段列表中添加新的選擇元素來擴展演示,並如前所述將ID傳遞給GET方法。
>您可以訪問 /片段頁面以查看具有其ID的可用段的列表,您當然可以將其作為一個選項,如我們之前所看到的。
<span>{ </span> kind<span>: "analytics#accounts", </span> <span>username: "me@mail.com", </span> <span>totalResults: 3, </span> <span>startIndex: 1, </span> <span>itemsPerPage: 1000, </span> <span>items: [ </span> <span>{ </span> id<span>: "4449308", </span> <span>kind: "analytics#account", </span> <span>selfLink: "https://www.googleapis.com/analytics/v3/management/accounts/4449308", </span> <span>name: "me@mail.com", </span> <span>permissions: { </span> effective<span>: [ </span> <span>"COLLABORATE", </span> <span>"EDIT", </span> <span>"MANAGE_USERS", </span> <span>"READ_AND_ANALYZE" </span> <span>] </span> <span>}, </span> <span>created: "2013-10-01T11:04:28.478Z", </span> <span>updated: "2013-10-01T11:04:28.478Z", </span> <span>childLink: { </span> type<span>: "analytics#webproperties", </span> <span>href: "https://www.googleapis.com/analytics/v3/management/accounts/4449308/webproperties" </span> <span>} </span> <span>} </span> <span>] </span><span>}</span>總結
Google Analytics(分析)API非常靈活,並提供了許多功能,但是該文檔尚未完成,並且沒有提供良好的使用示例。通過挖掘源代碼並測試可能性和限制,您可以獲得更多。
在本系列中,我們專注於Google Analytics(分析)的基本用法,但是您可以通過Google Analytics(分析儀表板)的選項擴展演示。
>您可以檢查本教程的源代碼的最終存儲庫。
>問題?評論?讓我知道!經常詢問有關使用Google Analytics API V3與php
使用Google Analytics(常見問題解答)>如何開始使用PHP?
的Google Analytics(分析)API V3開始使用PHP的Google Analytics API V3,您首先需要在Google Developers Console中創建一個項目。創建項目後,啟用Google Analytics(分析)API。然後,為API創建憑證。您將收到客戶ID和客戶端的秘密,您將使用它來通過Google來驗證您的應用程序。之後,您可以使用PHP開始向API提出請求。您需要擁有一個Google帳戶並訪問要檢索的Google Analytics(分析數據)。您還需要在服務器上安裝PHP,並且對PHP編程的基本了解。
>如何使用PHP使用Google對我的應用程序進行身份驗證我的應用程序?創建API憑據時,您需要使用您收到的客戶ID和客戶端秘密。您可以使用這些憑據來獲取訪問令牌,然後您可以使用該憑據來驗證您的API請求。
如何使用php?
>
>在使用Google Analytics(分析Analytics API V3)使用PHP? 時,我該如何處理錯誤。 Google Analytics(分析)API V3具有PHP,出於各種原因可能發生錯誤,例如無效的請求參數或身份驗證問題。您可以通過檢查API返回的HTTP狀態代碼和錯誤消息來處理這些錯誤。這將為您提供有關出了什麼問題以及如何解決的信息。 >我可以使用php的Google Analytics API V3跟踪實時數據嗎?是的,您可以使用Google Analytics(分析)帶有PHP的API V3跟踪實時數據。 API提供了一個實時報告API,您可以使用該API檢索實時數據,例如網站上的活動用戶數量。
>>在使用php的Google Analytics API V3時如何過濾數據?
>您可以通過在API請求中指定過濾器參數時使用Google Analytics API V3過濾數據。這些參數允許您限制API返回的數據以滿足特定條件。
我可以使用帶有PHP的Google Analytics API V3從多個Google Analytics Carescect檢索數據嗎?可以將Google Analytics(分析)API V3與PHP一起從多個Google Analytics(分析)帳戶中檢索數據。您只需要分別對每個帳戶進行身份驗證,並為每個帳戶單獨提出API請求。>在使用php的Google Analytics API V3使用PHP?
使用Google Analytics(分析分析)API API V3與PHP使用PHP時,我如何分頁結果。在您的API請求中。這些參數允許您指定要檢索的結果範圍。通過在API請求中指定排序參數,V3帶有PHP。這些參數允許您根據特定的指標或尺寸訂購API返回的數據。
>
以上是使用php的Google Analytics(分析)API V3:獲取數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Laravel使用其直觀的閃存方法簡化了處理臨時會話數據。這非常適合在您的應用程序中顯示簡短的消息,警報或通知。 默認情況下,數據僅針對後續請求: $請求 -

PHP客戶端URL(curl)擴展是開發人員的強大工具,可以與遠程服務器和REST API無縫交互。通過利用Libcurl(備受尊敬的多協議文件傳輸庫),PHP curl促進了有效的執行

這是有關用Laravel後端構建React應用程序的系列的第二個也是最後一部分。在該系列的第一部分中,我們使用Laravel為基本的產品上市應用程序創建了一個RESTFUL API。在本教程中,我們將成為開發人員

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显著减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

您是否想為客戶最緊迫的問題提供實時的即時解決方案? 實時聊天使您可以與客戶進行實時對話,並立即解決他們的問題。它允許您為您的自定義提供更快的服務

在本文中,我們將在Laravel Web框架中探索通知系統。 Laravel中的通知系統使您可以通過不同渠道向用戶發送通知。今天,我們將討論您如何發送通知OV

文章討論了PHP 5.3中介紹的PHP中的晚期靜態結合(LSB),允許靜態方法的運行時間分辨率調用以更靈活的繼承。 LSB的實用應用和潛在的觸摸

PHP日誌記錄對於監視和調試Web應用程序以及捕獲關鍵事件,錯誤和運行時行為至關重要。它為系統性能提供了寶貴的見解,有助於識別問題並支持更快的故障排除


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3漢化版
中文版,非常好用

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

WebStorm Mac版
好用的JavaScript開發工具

記事本++7.3.1
好用且免費的程式碼編輯器