-
-
Save RobbiNespu/5dd7f87f386ff43927e7bff71e2b24e3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
function getService() | |
{ | |
// Creates and returns the Analytics service object. | |
// Load the Google API PHP Client Library. | |
require_once 'google-api-php-client/src/Google/autoload.php'; | |
// Create and configure a new client object. | |
$client = new \Google_Client(); | |
putenv('GOOGLE_APPLICATION_CREDENTIALS=file.json'); | |
$client->useApplicationDefaultCredentials(); | |
$client->addScope('https://www.googleapis.com/auth/analytics.readonly'); | |
return new \Google_Service_Analytics($client); | |
} | |
function getFirstprofileId(&$analytics) { | |
// Get the user's first view (profile) ID. | |
// Get the list of accounts for the authorized user. | |
$accounts = $analytics->management_accounts->listManagementAccounts(); | |
if (count($accounts->getItems()) > 0) { | |
$items = $accounts->getItems(); | |
$firstAccountId = $items[0]->getId(); | |
// Get the list of properties for the authorized user. | |
$properties = $analytics->management_webproperties | |
->listManagementWebproperties($firstAccountId); | |
if (count($properties->getItems()) > 0) { | |
$items = $properties->getItems(); | |
$firstPropertyId = $items[0]->getId(); | |
// Get the list of views (profiles) for the authorized user. | |
$profiles = $analytics->management_profiles | |
->listManagementProfiles($firstAccountId, $firstPropertyId); | |
if (count($profiles->getItems()) > 0) { | |
$items = $profiles->getItems(); | |
// Return the first view (profile) ID. | |
return $items[0]->getId(); | |
} else { | |
throw new Exception('No views (profiles) found for this user.'); | |
} | |
} else { | |
throw new Exception('No properties found for this user.'); | |
} | |
} else { | |
throw new Exception('No accounts found for this user.'); | |
} | |
} | |
function getResults(&$analytics, $profileId) { | |
// Calls the Core Reporting API and queries for the number of sessions | |
// for the last seven days. | |
return $analytics->data_ga->get( | |
'ga:' . $profileId, | |
'7daysAgo', | |
'today', | |
'ga:sessions'); | |
} | |
function printResults(&$results) { | |
// Parses the response from the Core Reporting API and prints | |
// the profile name and total sessions. | |
if (count($results->getRows()) > 0) { | |
// Get the profile name. | |
$profileName = $results->getProfileInfo()->getProfileName(); | |
// Get the entry for the first entry in the first row. | |
$rows = $results->getRows(); | |
$sessions = $rows[0][0]; | |
// Print the results. | |
print "First view (profile) found: $profileName\n"; | |
print "Total sessions: $sessions\n"; | |
} else { | |
print "No results found.\n"; | |
} | |
} | |
$analytics = getService(); | |
$profile = getFirstProfileId($analytics); | |
$results = getResults($analytics, $profile); | |
printResults($results); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment