Skip to content

Google Ads API client library for Golang

License

Notifications You must be signed in to change notification settings

hurbcom/google-ads-go

 
 

Repository files navigation

google-ads-go

Google Ads API version v0_7_0
Build CircleCI
Release Release

Features

Installation

To install, simply run:

$ go get -d github.com/hurbcom/google-ads-go

Make sure your PATH includes the $GOPATH/bin directory if you want to use the CLI utils:

export PATH=$PATH:$GOPATH/bin

Example

package main

import (
  "fmt"

  "github.com/hurcom/google-ads-go/ads"
  "github.com/hurcom/google-ads-go/services"
)

func main() {
	// Create a client from credentials file
	client, err := ads.NewClientFromStorage("credentials.json")
	if err != nil {
		panic(err)
	}

	// Load the "GoogleAds" service
	googleAdsService := services.NewGoogleAdsServiceClient(client.Conn())

	// Create a search request
	request := services.SearchGoogleAdsRequest{
		CustomerId: "123",
		Query:      "SELECT segments.date, click_view.gclid FROM click_view WHERE segments.date = '2021-07-23'",
	}

	// Get the results
	response, err := googleAdsService.Search(client.Context(), &request)
	if err != nil {
		log.Fatal(err)

	}

	// Printing results
	for _, row := range response.Results {
		fmt.Println(row.ClickView)
	}
}

When using the NewGoogleAdsClientFromStorage method, you must provide a path to a valid google-ads.json file (containing your Google Ads API credentials).

{
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET",
    "refresh_token": "YOUR_REFRESH_TOKEN",
    "developer_token": "YOUR_DEVELOPER_TOKEN"
}

CLI

This library also provides some CLI utilities for generating/refreshing Google OAuth2 credentials. The newly generated token will be printed to stdout, as well as the expiry timestamp.

Generate Access Token from Refresh token

$ gads refresh -client-id CLIENT_ID -client-secret CLIENT_SECRET -refresh-token REFRESH_TOKEN

Generate Access Token from JSON credentials file

$ gads refresh -file credentials.json

Additionally, you can use the -help flag for more information: gads refresh --help

Contributing

Compiling

All build scripts use Makefile

Build and run

$ make run

Run with gRPC debugging output

$ make run-debug

Changelog

To see the changes between Google Ads API versions, take a look at the official Google Ads API Release Notes.

Manually Building Protos

Building .pb.go files from the original googleads protos should only be done when updating to a new Google Ads version.

Requirements:

Clone google ads repo:

$ make clone-googleapis

Or update:

$ make update-googleapis

Build .pb.go protos:

$ make protos

About

Google Ads API client library for Golang

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 79.2%
  • Shell 12.0%
  • Makefile 8.8%