Google Analytics dashboard. Shows a lit of all your experiments with Bootstrap 3 and the current progress of those experiments.
<?php | |
// Service account code from http://stackoverflow.com/questions/18258593/using-a-service-account-getaccesstoken-is-returning-null | |
// Analytics code from https://code.google.com/p/google-api-php-client/source/browse/trunk/examples/analytics/simple.php?r=474 | |
require_once 'google-api-php-client/src/Google_Client.php'; | |
require_once 'google-api-php-client/src/contrib/Google_AnalyticsService.php'; | |
// Set your client id, service account name (AKA "EMAIL ADDRESS"), and the path to your private key. | |
// For more information about obtaining these keys, visit: | |
// https://developers.google.com/console/help/#service_accounts | |
const CLIENT_ID = 'CLIENT ID'; | |
const SERVICE_ACCOUNT_NAME = 'SERVICE ACCOUNT NAME (IS AN "EMAIL ADDRESS")'; | |
const KEY_FILE = 'KEY FILE'; | |
const SCOPE = 'https://www.googleapis.com/auth/analytics.readonly'; | |
// OPEN GOOGLE ANALYTICS AND GRANT ACCESS TO YOUR PROFILE, THEN PASTE IN YOUR SERVICE_ACCOUNT_NAME | |
$key = file_get_contents(KEY_FILE); | |
$auth = new Google_AssertionCredentials( | |
SERVICE_ACCOUNT_NAME, | |
[SCOPE], | |
$key | |
); | |
$client = new \Google_Client(); | |
$client->setAuthConfig(KEY_FILE); | |
$client->setScopes([SCOPE]); | |
$service = new \Google_Service_Analytics($client); | |
?> | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<title>Google Experiments Dashboard</title> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" media="screen"> | |
</head> | |
<body class="container"> | |
<h1>Your experiments</h1> | |
<table class="table"><tr><th><th>Experiment<th>Page<th>Started<th>Status | |
<?php | |
$progressClasses = array('progress-bar progress-bar-success','progress-bar progress-bar-info','progress-bar progress-bar-warning', 'progress-bar progress-bar-danger'); | |
$profiles = $service->management_profiles->listManagementProfiles("~all", "~all"); | |
foreach ($profiles['items'] as $profile) { | |
// var_dump("PROFILE",$profile); | |
$experiments = $service->management_experiments->listManagementExperiments($profile['accountId'], $profile['webPropertyId'], $profile['id']); | |
foreach ($experiments['items'] as $experiment) { | |
// var_dump("EXPERIMENT",$experiment); | |
// if ($experiment['status'] != 'RUNNING') continue; | |
echo "<tr>"; | |
if ($experiment['status'] == 'RUNNING') | |
echo '<td><a class="btn btn-xs btn-success"><i class="glyphicon glyphicon-ok"></i></a>'; | |
else | |
echo '<td><a class="btn btn-xs btn-danger"><i class="glyphicon glyphicon-remove"></i></a>'; | |
$expHref = "https://www.google.com/analytics/web/?pli=1#siteopt-experiment/siteopt-detail/a{$profile['accountId']}w{$experiment['internalWebPropertyId']}p{$experiment['profileId']}/%3F_r.drilldown%3Danalytics.gwoExperimentId%3A{$experiment['id']}/"; | |
echo "<td><a href='$expHref' target='_blank'>{$experiment['name']}</a>"; | |
echo "<td>{$experiment['variations'][0]['url']}"; | |
echo "<td>".date('Y-m-d',strtotime($experiment['startTime'])); | |
echo "<td>"; | |
echo '<div class="progress" style="width:400px">'; | |
foreach ($experiment['variations'] as $i => $variation) { | |
echo '<a href="'.$variation['url'].'" target="_blank"><div class="'.$progressClasses[$i].'" role="progressbar" style="width: '.(100*$variation['weight']).'%">'.$variation['name'].'</div></a>'; | |
// echo "$i -> {$variation['name']} {$variation['weight']}"; | |
} | |
echo '</div>'; | |
// echo "\nEXP\n"; | |
// var_dump($experiment['variations']); | |
} | |
} | |
/* | |
$segments = $service->management_segments->listManagementSegments(); | |
print "<h1>Segments</h1><pre>" . print_r($segments, true) . "</pre>"; | |
$goals = $service->management_goals->listManagementGoals("~all", "~all", "~all"); | |
print "<h1>Segments</h1><pre>" . print_r($goals, true) . "</pre>"; | |
*/ | |
?> |
This comment has been minimized.
This comment has been minimized.
Updated auth workflow |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Can you please help me on http://stackoverflow.com/questions/33754177/google-analytics-custom-plugin-getting-error-invalid-grant