PHP Google Analytics API - Simple example

前端 未结 3 774
既然无缘
既然无缘 2021-02-04 16:49

I am trying to set some basic example of using Google Analytics with this library: https://github.com/google/google-api-php-client

For starter I have:

相关标签:
3条回答
  • 2021-02-04 16:54

    what you could do is create a new function...

    function ga_campaign_transactions($gaEmail, $gaPass, $gProfile, $limit)
    {
        require_once('classes/google-analytics/gapi.class.php');
    
        $gDimensions = array('campaign');
        $gMetrics = array('transactions');
        $gSortMetric = NULL;
        $gFilter = '';
        $gSegment = '';
        $gStartDate = '2013-12-25';
        $gEndDate = '2014-01-08';
        $gStartIndex = 1;
        $gMaxResults = $limit;
    
        $ga = new gapi($gaEmail, $gaPass);
        $ga->requestReportData($gProfile, $gDimensions, $gMetrics, $gSortMetric, $gFilter, $gSegment, $gStartDate, $gEndDate, $gStartIndex, $gMaxResults);
    
        $gAnalytics_results = $ga->getResults();
    
        //RETURN RESULTS
        return $gAnalytics_results;
    
    }
    
    
    $gProfile = '123456';              // The Profile ID for the account, NOT GA:
    $gaEmail = 'YOUR GOOGLE EMAIL';    // Google Email address.
    $gaPass  = 'YOUR GOOGLE PASSWORD'; // Google Password.
    // NOTE: if 2 step login is turned on, create an application password.
    
    $limit   = 50;
    $ga_campaign_transactions = ga_campaign_transactions($gaEmail, $gaPass, $gProfile, $limit)
    
    //OUTPUT
    if(!empty($ga_campaign_transactions))
    {
        $counter=0;
        $gaCampResults= array(); // CREATE ARRAY TO STORE ALL RESULTS
        foreach($ga_campaign_transactions as $row)
        {
    
            $dim_list = $row->getDimesions();
            $met_list = $row->getMetrics();
    
            $gaCampResults[$counter]['campaign'] = $dim_list['campaign'];
            $gaCampResults[$counter]['transactions'] = $met_list['transactions'];
        $counter++;
        }
     }
    
    
     if(!empty($gaCampResults))
     {
         $totalCampTransactions = count($gaCampResults);
         ?>
         <h2>We Found ( <?php echo number_format($totalCampTransactions,0);?> ) Results</h2>
         <ul>
         <?php
         foreach($gaCampResults as $gaRow){
           echo "<li>Campaign:".$gaRow['campaign']." | Transactions: ".$gaRow['transactions']."</li>";
         }
         ?>
         </ul>
         <?php
     }
    

    find Analytics Profile ID

    Create Google Application password

    Hopefully that puts you on the right track :) untested this, but similar to what I've been using...

    Marty

    0 讨论(0)
  • 2021-02-04 17:10
    $client->setDeveloperKey("MY_SECRET_API");
    

    First of all, for as far as I experienced this won't work for authentication, you'll need to use a OAuth2 authentication. There are two options to do this, using client ID for web application or using a service account. Authorization api

    After you have this, you can make a call like this. (I use a service account here)

    First authenticate:

    $key = file_get_contents($key_file_location);
    $cred = new Google_Auth_AssertionCredentials(
        $service_account_name,
        array('https://www.googleapis.com/auth/analytics.readonly'),
        $key
    );
    $client->setAssertionCredentials($cred);
    

    Make a call:

    $ids = 'ga:123456'; //your id
    $startDate = '2013-12-25';
    $endDate = '2014-01-08';
    $metrics = 'ga:transactions';
    
    $optParams = array(
        'dimensions' => 'ga:campaign',
        'max-results' => '50'
    );
    
    $results = $service->data_ga->get($ids, $startDate, $endDate, $metrics, $optParams);
    
    //Dump results
    echo "<h3>Results Of Call:</h3>";
    
    echo "dump of results";
    var_dump($results);
    
    echo "results['totalsForAllResults']";
    var_dump($results['totalsForAllResults']);
    
    echo "results['rows']";
    foreach ($results['rows'] as $item) {
        var_dump($item);
    }
    
    0 讨论(0)
  • 2021-02-04 17:15

    You will need to do a http get to get the information from the url.

    http://www.php.net/manual/en/function.http-get.php

    Remember you will still need to add the Oauth2 auth code to the string before you can send that request. This link might help if you dont have auth code already. https://developers.google.com/analytics/solutions/articles/hello-analytics-api#authorize_access

    0 讨论(0)
提交回复
热议问题