Unlock Real-time Insights: A Beginner’s Guide to Accessing Google Analytics GA4 Data with PHP and the Google Analytics Data AP


Google Analytics GA4 provides powerful insights into website traffic, and with the Google Analytics Data API, PHP developers can tap into real-time data for even more dynamic analytics. In this beginner’s guide, we’ll walk you through the process of accessing Google Analytics GA4 data using PHP and the Google Analytics Data API.

Understanding Google Analytics GA4

Google Analytics GA4 is a robust analytics platform that allows website owners to track user interactions, gather valuable insights, and make data-driven decisions. Real-time analytics, a feature of GA4, enables instant visibility into user activities on your site.

The Google Analytics Data API is a powerful tool that lets developers interact with GA4 programmatically. This API allows you to retrieve various types of data, including real-time metrics, giving you a deeper understanding of user behavior.

Setting Up Your Google Analytics Project

To get started, create a new project on the Google Cloud Console. Obtain the necessary credentials and API key, which will be used for authenticating your PHP application with the Google Analytics Data API.

  • Create service account credentials
  • Enable the Google analytics data API Under library
  • Go to the admin section of the Google analytics website and grant your service account access by adding it as a user.

Installing the Required PHP Libraries

Before diving into the code, make sure to install the necessary PHP client library for Google APIs. This library streamlines the process of interacting with the Google Analytics Data API in your PHP project.

composer require google/cloud-analytics-data

Writing PHP Code to Access Google Analytics GA4 Data

Now, let’s delve into the PHP code. Replace your/path/to/ServiceAccountCred.json with the actual path to your service account credentials file.

require 'vendor/autoload.php';

$service_account_key_file_path = "your/path/to/ServiceAccountCred.json";

use Google\Analytics\Data\V1beta\BetaAnalyticsDataClient;

try {
    // Authenticate using a keyfile path
    $client = new BetaAnalyticsDataClient([
        'credentials' => $service_account_key_file_path

    $property_id = 'YOUR_PROPERTY_ID';

    $dimensions = [ new \Google\Analytics\Data\V1beta\Dimension(['name' => 'city']), ];
    $metrics = [new \Google\Analytics\Data\V1beta\Metric(['name' => 'activeUsers'])];

    $response =  $client->runRealtimeReport ([
        'property' => 'properties/' . $property_id,
        'dimensions' => $dimensions,
        'metrics' => $metrics,

    foreach ($response->getRows() as $row) {
        foreach ($row->getDimensionValues() as $dimensionValue) {
            print 'Dimension Value: ' . $dimensionValue->getValue() . PHP_EOL;
        foreach ($row->getMetricValues() as $metricValue) {
            print 'Metric Value: ' . $metricValue->getValue() . PHP_EOL;
} catch (\Google\ApiCore\ValidationException $e) {

Interpreting and Visualizing Data

This code fetches real-time data for a specific property, dimension (city), and metric (activeUsers) from Google Analytics GA4.

You can customize the $property_id, $dimensions, and $metrics variables based on your analytics needs. The retrieved data can then be further processed and visualized to gain actionable insights into user behavior on your website. Remember you are limited by the Dimensions and metrics available in the real-time API.

The code snippet above retrieves real-time data for a specific property, dimension (city), and metric (activeUsers) from Google Analytics GA4. Now, let’s break down what each part of the code does:

  • Authentication: The $client is created using the provided service account credentials, establishing a secure connection with the Google Analytics Data API.
  • Report Configuration: Specify the target GA4 property using $property_id, and define dimensions (e.g., ‘city’) and metrics (e.g., ‘activeUsers’) you want to retrieve.
  • Executing the Query: The $client->runRealtimeReport method executes the query based on the provided configuration, fetching real-time data from Google Analytics.
  • Processing and Displaying Results: The obtained data is then processed and printed to the console. You can customize this part to store the data in a database, generate reports, or integrate it into a dashboard for better visualization.


Congratulations! You’ve successfully set up a PHP application to access real-time data from Google Analytics GA4 using the Google Analytics Data API. This is just the beginning – you can explore more dimensions and metrics provided by GA4 to tailor the data retrieval to your specific needs.

In future blog posts, we’ll dive deeper into advanced functionalities, such as historical data retrieval, setting up cron jobs for regular data updates, and creating interactive visualizations. Stay tuned for more insights into maximizing the potential of Google Analytics for your website.

Final Thoughts

Understanding your website’s real-time performance is crucial for making timely decisions. By harnessing the power of PHP and the Google Analytics Data API, you’ve taken the first step toward unlocking a wealth of data-driven insights. Experiment with different dimensions and metrics, explore the API documentation, and continue building on this foundation to elevate your analytics game.

Thank you for joining us on this journey! If you have any questions or topics you’d like us to cover in future posts, feel free to reach out. Happy coding!

About Linda Lawton

My name is Linda Lawton I have more than 20 years experience working as an application developer and a database expert. I have also been working with Google APIs since 2012 and I have been contributing to the Google .Net client library since 2013. In 2013 I became a a Google Developer Experts for Google Analytics.

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.