Coded Geekery

BlogAboutContact
BlogAboutContact

Google Analytics

Page views over a given range.

Google Analytics
import { google } from 'googleapis'; export default async (req, res) => { const startDate = req.query.startDate; const auth = new google.auth.GoogleAuth({ credentials: { client_email: process.env.GOOGLE_CLIENT_EMAIL, client_id: process.env.GOOGLE_CLIENT_ID, private_key: process.env.GOOGLE_PRIVATE_KEY }, scopes: ['https://www.googleapis.com/auth/analytics.readonly'] }); const analytics = google.analytics({ auth, version: 'v3' }); const response = await analytics.data.ga.get({ 'end-date': 'today', ids: 'ga:187331021', metrics: 'ga:pageviews', 'start-date': startDate }); return res.status(200).json({ pageViews: response.data.rows[0][0] }); };

Usage

  • Get Access To Analytics

  • To gain access to the Google Analytics API, you need to:

    • Go to the Google Developer Console.
    • Create a new project.
    • Credentials -> Create Credentials -> Service-account key.
    • Click “Enable APIs and services.”
    • Find "Google Analytics API" and enable it.
  • Create Service Account

  • Since we're communicating server-to-server, we'll need a service account.

    • Go to your service accounts page.
    • Create a service account.
    • Click "Create Key" and choose JSON.

    You should now have a JSON file similar to this:

    { "type": "service_account", "project_id": "...", "private_key_id": "...", "private_key": "...", "client_email": "...", "client_id": "...", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "..." }

    Save this file. You will need these values for environment variables. Okay, back to the service account. We need to delegate domain-wide authority.

    • On the table row, click Actions -> Edit.
    • Show Domain-Wide Delegation -> Enable G-Suite Domain-Wide Delegation.

    Finally, we need to add our service account email to the Google Analytics account we want to use.

    • Go to the Admin panel inside Google Analytics.
    • Click "User Management."
    • Add the client_email from your service account.
  • Add Environment Variables

  • To securely access the API, we need to include the secret with each request. We also do not want to commit secrets to git. Thus, we should use an environment variable. Learn how to add environment variables in Vercel.

    Coded Geekery

    © 2021 Roger Stringer. All rights reserved.

    TwitterGitHubInstagram

    Stuff

    HomeAbout MeContact Me

    Not Playing

    Spotify