Thanks to visit codestin.com
Credit goes to github.com

Skip to content

๐Ÿ“ˆ Unofficial Google Ads API Client Library for Go

License

Notifications You must be signed in to change notification settings

felicson/google-ads-go

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

60 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

google-ads-go

Google Ads API version v9.0
Build CircleCI
Release Release

Features

Installation

To install, simply run:

$ go get -d github.com/kritzware/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/kritzware/google-ads-go/ads"
  "github.com/kritzware/google-ads-go/services"
)

func main() {
  // Create a client from credentials file
  client, err := ads.NewClientFromStorage("google-ads.json")
  if err != nil {
    panic(err)
  }
  
  // Load the "GoogleAds" service
  googleAdsService := services.NewGoogleAdsServiceClient(client.Conn())
  
  // Create a search request
  request := services.SearchGoogleAdsRequest{
    CustomerId: "2984242032",
    Query:      "SELECT campaign.id, campaign.name FROM campaign ORDER BY campaign.id",
  }
  
  // Get the results
  response, err := googleAdsService.Search(client.Context(), &request)
  for _, row := range response.Results {
    campaign := row.Campaign
    fmt.Printf("id: %d, name: %s\n", campaign.Id.Value, campaign.Name.Value)
  }
}

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",
    "login_customer_id": "YOUR_CUSTOMER_ID"
}

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:

Build .pb.go protos:

$ make protos

About

๐Ÿ“ˆ Unofficial Google Ads API Client Library for Go

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 86.2%
  • Makefile 13.8%