How to add Google Analytics API code in Laravel PHP to get summary

Introduction

Google provide powerful programmatic method to get report from Google analytics in your custom dashboard.

You can see real time activity by integrating Google Analytics API.

You can pass custom date ranges to see the report in your dashboard.

I am going to integrate Google Analytics API to get summary and api will return following things in summary parameter by following this code.

  • ga:sessions
  • ga:users
  • ga:pageviews
  • ga:bounceRate
  • ga:hits
  • ga:avgSessionDuration
  • active_users

Step1: Setup service account

Before going to integrate Google Analytics API, you must have project in the Google API Console if don’t have project then click on Create a project link to create project.

It will take few minutes to active after that you can create service account by clicking this link Create service account.

Image for post

You must enable your google app.

Here you will get service account email which will be used to configure with Google Analytics API.

You will need also view id which you will get in your analytics dashboard > admin > view setting somewhere it is known as table id.

Step2: Update composer to install package for Google Client

Add this line in your composer file and update composer command in your terminal.

"google/apiclient" : "^1.1",

Step3: Add Routes

Route::get(‘google-analytics-summary’,array(‘as’=>’google-analytics-summary’,’uses’=>’HomeController@getAnalyticsSummary’));

Step3: HomeController.php

<?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 = ‘your service account email’;
// Create and configure a new client object.
$client = new \Google_Client();
$client->setApplicationName(“{application name}”);
$analytics = new \Google_Service_Analytics($client);
$cred = new \Google_Auth_AssertionCredentials(
$service_account_email,
array(\Google_Service_Analytics::ANALYTICS_READONLY),
“{your private_key}”
);
$client->setAssertionCredentials($cred);
if($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion($cred);
}
$optParams = [
‘dimensions’ => ‘ga:date’,
‘sort’=>’-ga:date’
] ;
$results = $analytics->data_ga->get(
‘ga:{View ID}’,
$date_from,
$date_to,
‘ga:sessions,ga:users,ga:pageviews,ga:bounceRate,ga:hits,ga:avgSessionDuration’,
$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:{View ID}’,
‘rt:activeUsers’,
$optParams);
// Success.
} catch (apiServiceException $e) {
// Handle API service exceptions.
$error = $e->getMessage();
}
$active_users = $results1->totalsForAllResults ;
return [
‘data’=> $rows_re_align ,
‘summary’=>$results->getTotalsForAllResults(),
‘active_users’=>$active_users[‘rt:activeUsers’]
] ;
}
}

If you are getting error “User does not have any Google Analytics Account” then add service account user in analytics by clicking admin option on analytics dashboard and go to User Management.(Within account,property or view).

If you are getting error “Google Analytics API has not been used in project {project id} before or it is disabled” then follow given url in error message and enable api.

There are several package to integrate Google Analytics API too.

You can use spatie/laravel-analytics package but this package are using same google api client version.

Now use this code to get summary of Google Analytics in your dashboard using Laravel.

This article was written by Arslan Ali.

0 0 votes
Article Rating
Creative Entrepreneurshttps://creattiv.net
My name is Reza Barauntu. I am passionate about entrepreneurship, technology, web design, art, and music. I design and develop experiences that make people's lives simpler. Follow Creative Entrepreneur on Instagram @founders.guides
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments

Sponsor

Discover

Latest

Principles of Website Design Every Web Professional Should Know

In this article, we’ll explain what design principles are and why you should know them. We’ll also discuss some of the most popular and effective guidelines to follow. Let’s get started!

10 Criteria for a Winning Product

If your product is earmuffs with built-in headphones, your premise is that people want to hear music when they wear earmuffs. Do people agree...

4 Secrets of Success From a 32-Year-Old To Turn Your Side Hustle Into a Career

Meade’s company operates out of the Fulton Fish Market in the Bronx, which is one of the world’s largest seafood markets. After first visiting the...

Billy Graham: Technology, Faith and Human Shortcomings

www.creattiv.net - Speaking at TED in 1998, Rev. Billy Graham marvels at technology's power to improve lives and change the world -- but says...

How to Optimize Your T-Shirt Designs for Max Wearability

We want people to wear the shirts we make. And sometimes, despite top-notch graphics, it’s subtle misfires that keep these shirts on the hangers...
0 0 votes
Article Rating
0
Would love your thoughts, please comment.x
()
x