2016-12-03 87 views
0

我正在開發一個電子商務學生項目使用php(laravel框架),我發現了很多關於使用谷歌分析的教程,但很少關於如何檢索數據到我的網站使用API​​。我有以下問題:谷歌分析API實現跟蹤特定用戶活動在PHP

  1. 如何檢索所有數據從谷歌分析到我的網站使用API​​。
  2. 如何檢索UserID視圖的所有數據?因爲我想獲取關於特定用戶的所有數據,以便知道他/她(瀏覽器,語言,國家,Os ......等)的用途,以便使用它來個性化我的網站。

請任何想法或幫助將不勝感激,我跑出來的時候,人們幫助

下面

的是,我用我的API代碼:

<?php 
    namespace App\Http\Controllers; 
    use Illuminate\Http\Request; 
    use App\Http\Controllers\Controller; 


    class HomeController extends Controller 
    { 
     public function getAnalyticsSummary(Request $request){ 
      $from_date = date("Y-m-d", strtotime($request->get('from_date',"7 days ago"))); 
      $to_date = date("Y-m-d",strtotime($request->get('to_date',$request->get('from_date','today')))) ; 
      $gAData = $this->gASummary($from_date,$to_date) ; 
      return $gAData; 
     } 
      //to get the summary of google analytics. 
     private function gASummary($date_from,$date_to) { 
      $service_account_email = '[email protected]unt.com';  
      // Create and configure a new client object. 
      $client = new \Google_Client(); 
      $client->setApplicationName("any name"); 
      $analytics = new \Google_Service_Analytics($client); 
      $cred = new \Google_Auth_AssertionCredentials(
       $service_account_email, 
       array(\Google_Service_Analytics::ANALYTICS_READONLY), 
        "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCrzw1R6ca16zYQ\n3ozuTlNVbvNWDPODW6NVrnny08V4ycd/ugvTQeU3EKno6mJ8iXNJ/3GXOz52iaRd\nGRKbfrPomK7gt6+F7EHVdpTfbc/u7TIJi5NbYzXS4jIXhIJhB4bGjzsnTGTY/6pF\nFmW/wgX2Y6n31EWyz2q5MiZDC5lEPrmNk/gOgWOyRHCVNHtBcyFdA3+w2or6ix5l\nrKlCwUkkzKAPb4OSvfDMz8o+h6r433E4+6MMHE/mf53CkX1DbDZIlZbUntYLoh19\n0oxKCufjfFEKqzxgTZxIbG5rK7jdrOFLuQwnaoKkUT0HAQTGnGoYrABo9HGjlgwg\n7rHzh+OzAgMBAAECggEBAKcRq8E41Ft4w1V6JI9jqRON1aCa7X2R8e3SwZFJL2C6\nzn28+9zN2khGswLkUSsLOgn+FYZbPO1mAWfqhragafBH8N5ioJNZX9dk/XWbQjTz\ngNHZYUzf16oe/VjzKRmTiRKym3ImjnaZfwi5s+3ZjZS/67ssNy6fFgfK5XwS3lKG\nFzAZYgCMyJIz8Cz9mHAHKmQELH29xiPNDSSCuAbScptOdNJvBB9Vvpu5b+/LtdWI\naBYLuZgMOSNgJiQFBjj/+RY5yBi9pL5aHYGHJJZnWp1CbxRQIN+xe5jBbpHZ6PWH\nUjoCfMkM+IWBNjlKOWCC/APFpGuDqYMRuHfakPvWIXECgYEA4otETO0hR00SceKt\nGXYtIX6ZfdK6K87EPTFofMXAvcH7CWU3Tr2+3pI/DWUD1pPEEfsOZpaS5Ry37IrQ\nVmhkS2j5QxYJ+NfEvjc17rdJuuwJeCeELDFNxsTvhk7yK6y75F7BFQH/dIcc7MYg\nTL11B340TpPlJtulnxLTW7G3nFkCgYEAwiXfGnpmuPE1yyGdux4mY1Eyp6ZmxC0o\nb+DIBqRRlwY23m7pv3g7a0GAqLIFaW7c/1iVlyoDg24eZ8YtSehtR0B5LEiExBaY\n7UpkqHosvCqgCH94O/Mas+DUv9Sfqy82geEagB65Cf+uLr/ixNbKiK12G29O/V7M\nCar/=========================================================================================================================================================================================================================================x/NCNpGaW7zKvAoGAffG7PqgXYNtqQ3MavgLF\nKtQFMzT65kI5AfXPpyzgBDKr84lhvdUddvK/FZg/mIuoLRLSgnYPnAv3s5yhleZ5\n7LGyo5fXXH7XUm2nNt+XZoV1rt6y+WgZi103M+fuv3GXYBdbOonPHopRzw3uzLIA\n9ovyAV95jOu9ybk4YgQXm5I=\n-----END PRIVATE KEY-----\n" 
      );  
      $client->setAssertionCredentials($cred); 
      if($client->getAuth()->isAccessTokenExpired()) { 
       $client->getAuth()->refreshTokenWithAssertion($cred); 
      } 

      $optParams = [ 
       'dimensions' => 'ga:date', 
       'sort'=>'-ga:date' 
      ] ; 

      $results = $analytics->data_ga->get(
       'ga:133119102', 
       $date_from, 
       $date_to, 
       /*'ga:sessions,ga:users,ga:pageviews,ga:bounceRate,ga:hits,ga:avgSessionDuration',*/ 
       'ga:bounceRate', 
       $optParams 
       ); 

       $rows = $results->getRows(); 
       $rows_re_align = [] ; 
       foreach($rows as $key=>$row) { 
        foreach($row as $k=>$d) { 
         $rows_re_align[$k][$key] = $d ; 
        } 
       }   
       $optParams = array(
          'dimensions' => 'rt:medium' 
        ); 



       try { 
        $results1 = $analytics->data_realtime->get(
         'ga:132964552', 
         'rt:activeUsers', 
         $optParams); 
        // Success. 
       } catch (apiServiceException $e) { 
        // Handle API service exceptions. 
        $error = $e->getMessage(); 
       } 

       $active_users = $results1->totalsForAllResults ; 



       return view('myGoogle.getGoogle', [ 

        'data'=> $rows_re_align , 
        /* 'summary'=>$results->getTotalsForAllResults(),*/ 
        /* 'active_users'=>$active_users['rt:activeUsers']*/ 
        ]) ; 
     } 
    } 

回答

0

用戶id用於跨多個季節的用戶內部處理。例如,你有一個使用你的網站和你的moblie應用程序的用戶,這在技術上會是兩個會話。但是,如果您在用戶登錄到系統中的帳戶時傳遞了此用戶的用戶標識。你告訴谷歌分析這是同一個人。

用戶標識不是你可以從API中提取出來的,它主要用於內部處理。假設您的用戶標識是非用戶特定值,您也可以將其設置爲自定義維度,然後使用API​​將其提取出來。

+0

感謝您的重播,請給我建議最簡單的PHP API代碼?我會嘗試按照你的建議使用服裝尺寸。 –