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 vote
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

The Differences Between Entrepreneurship and Self-Employment

Self-employed individuals perform services on a contract basis for a range of clients. Entrepreneurs organize productive assets to create and maintain a business. The definitions of...

Here’s a List of App Ideas You Can Start Coding Today

Like with any other skill, getting good at coding requires you to put the effort and time in. One of the best ways of...

7 Reasons to Use Illustrations on Your Website (And Examples of How to Do It)

Are you having a hard time finding photos for your website? The solution might be a simple one: use illustrations. This post will show you how and when they make sense to use.

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

Learn how to integrate Google Analytics API to get summary and api will return data in Laravel.

Five Online Businesses Anyone Can Start

I want to start any kind of online business that generates a monthly cashflow. What's the correct way to start? originally appeared on Quora:...
0 0 vote
Article Rating
0
Would love your thoughts, please comment.x
()
x