>
鑰匙要點在這種情況下,結果是一個數組,但是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>
如果您想具有結果分頁,可以始終將更多選項傳遞給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>
<span>$this->client->setUseObjects(true);</span>
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>
為了加快流程,我們將使用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>
從屏幕截圖中可以看到
>,當用戶選擇一個帳戶時,我們異步更改屬性和視圖。為了實現這一目標,我編寫了一些簡單的JS,您可以在最終的存儲庫中檢查一下。 >
通過提供所選視圖,指標和維度,我們可以獲得有關用戶和交互的詳細統計信息。用戶提交後的結果類似於:
>[ { id: "UA-52317977-1", name: "Prop1" }, { id: "UA-52317977-2", name: "Prop1" } ]
我們的ga_service ::報告接受四個參數:視圖ID,開始日期和結束日期以及一系列指標。
第三個參數是我們從用戶選擇中已經擁有的指標列表。
>第四個可選參數是選項的數組。
- 最大值:結果的最大數量。 (我們使用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>
>
>過濾
<span>$this->client->setUseObjects(true);</span>
段
>您可以通過在可用段列表中添加新的選擇元素來擴展演示,並如前所述將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(分析)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 Analytics(分析)帶有PHP的API V3跟踪實時數據。 API提供了一個實時報告API,您可以使用該API檢索實時數據,例如網站上的活動用戶數量。
>>您可以通過在API請求中指定過濾器參數時使用Google Analytics API V3過濾數據。這些參數允許您限制API返回的數據以滿足特定條件。
>
以上是使用php的Google Analytics(分析)API V3:獲取數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!