Site icon R-bloggers

How to connect to Google Ads API with R (Advanced AdWords)

[This article was first published on R – JC Chouinard, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

In this tutorial, I will help you to analyze Google Adwords data with R using the Google Ads API. This will be a useful tool in automation or programmatic strategies that can help you save a massive amount of time and supercharge your revenues.

Let’s learn how to pull data in with Google Apps Script from R.

How to connect to the Google Ads API

If this is your first time using an API, don’t worry, I was once a beginner not so long ago. I will make it as easy as possible to set up an API call in Google Ads from R.


Requirements

To be able to use Google Ads API you need to meet the following requirements:


What is an API?

The Google Ads API, or Application Programming Interface, was built for advertisers and developers to interact directly with the Google AdWords server to help them manage large Google Ads Accounts.

Step 1: Create a Project in Google AdWords API

The first step to create your AdWords API is to set-up your first project.

1. Go to Google’s developers console, and sign-in.

Here, I will call my project Adwords-API

Create a new project in Google Ads API

2. Go to Dashboard and click “Enable APIs and Services”

Click Enable APIs and Services

3.  Search for the terms “Google Ads API” and click on the API to create

Select Google Ads API

4. Click on “Enable”

Enable Google AdWords api

Step 2: Create your credentials

Now, that you have enabled your Google Ads API. It is time that you create your credentials. The goal of this part of the tutorial is to generate your client.id and your client.secret.

Go in the “credential” tab on the left, click on “Credentials in APIs & Services”.

Select Credentials in APIs & Services

Then click on “create credential” and select “OAuth Client ID”.

Create AdWords API

Now it is time to name your project. So click on “configure consent screen”.

3. You will now have to set your product name and Save your product. Here I will call it Google Ads API.

Once you have < g class="gr_ gr_32 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar multiReplace" id="32" data-gr-id="32">save your project, a new screen appears. Choose the application type: Other. Name it whatever you want. I will call it Google Ads API. Click on “Create”.

5. Bravo, you now have access to your client.id and client< g class="gr_ gr_26 gr-alert gr_gramm gr_inline_cards gr_run_anim Style multiReplace" id="26" data-gr-id="26">.secret < g class="gr_ gr_26 gr-alert gr_gramm gr_inline_cards gr_disable_anim_appear Style multiReplace" id="26" data-gr-id="26">.

OAuth Client Id and Client Secret

This is it, you can now connect to the Google Ads API using R.

Soon, I will update this post to show you how to use the < g class="gr_ gr_3 gr-alert gr_spell gr_inline_cards gr_disable_anim_appear ContextualSpelling ins-del multiReplace" id="3" data-gr-id="3">adwordsR package, to get batch keywords < g class="gr_ gr_67 gr-alert gr_gramm gr_inline_cards gr_disable_anim_appear Grammar only-ins replaceWithoutSep" id="67" data-gr-id="67">search volume for thousands of keywords.

Connect to AdWords API using Radwords package

If you have followed every step you should now have access to: a Google Ads Manager Account, a valid client id, a client secret and a developer token with “Basic Access” level. Here you can learn how to apply for access to the adwords api.

If you have all of this, you are now ready to connect to the Google Ads API using Radwords package.

Step 1: Install the required packages

The Radwords package can be either installed from CRAN or from github. Here I will use CRAN.

Add this bit of code to your R script to install and load the Radwords library.

#Install the Radwords package
install.packages("RAdwords")
library(RAdwords)

Step 2: Authenticate to the API

It is now time to load your credentials in the authentication process. This step is like adding your password to the API. This is where you will need your client id, client secret and developer token.

We will start the authentication using doAuth() and store the credential in a R object called google_oauth.

#Authenticate
google_oauth <-doAuth()

By adding this bit of code, it will prompt you to import your keys within R. Follow the instructions in the R console:

1. Add the client.ID that we created earlier from the Developer console and press Enter:

Paste the Client secret here :=>
xxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com # Copy the API key from Google developer console

2. Paste your client secret and press Enter:

Paste the Client secret here :=>
xxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com # Copy the API key from Google developer console

3. Add the AdWords developer token that you were given when requesting access to the API center

Paste the Developer Token here :=>
xxxxxxxxxxxxx  #This was given to you when you requested for API access. A popup window will open, copy the client token.
Paste the client token here :=>
4/8xxhSxxxxxxxbQxxxxxxxxxxxxxxxxxxx 

4. A window should open automatically in your browser asking you to authorize the access. 

5. Connect with your email that you used to create your API project and to access the Google Ads Manager Account.

6.  Click on Authorize

7. Copy the client token and paste it in the console

Paste the client token here :=> 4/8xxhSxxxxxxxbQxxxxxxxxxxxxxxxxxxx  

Awesome! You are now connected to the Google AdWords API!

In your < g class="gr_ gr_3 gr-alert gr_gramm gr_inline_cards gr_run_anim Punctuation only-ins replaceWithoutSep" id="3" data-gr-id="3">< g class="gr_ gr_3 gr-alert gr_gramm gr_inline_cards gr_run_anim Punctuation only-ins replaceWithoutSep" id="3" data-gr-id="3">project you will now find an object google_oauth that contains all your credentials and an < g class="gr_ gr_4 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="4" data-gr-id="4">adwords < g class="gr_ gr_5 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="5" data-gr-id="5">api refresh token that will automatically refresh your token when they expire. Next, we will learn how to load Google Adwords data into R.

How to set-up a Google Ads API Call with R

It is important to know that this R package is not officially supported in the AdWords API. This is only a workaround to help you access the Google Ads API from R. See the supported client libraries.

Explore the Radwords Package

Before we make our first AdWords API call, let’s explore what kind of reports we can do:

#See possible reports
reports()

#See metrics for a single report (e.g. campaign performance
metrics(report='CAMPAIGN_PERFORMANCE_REPORT')

Build a Query

To build your first query, you need to use the statement() function. You can save each of those query in a R object to mannage each query.

#Authenticate
library(RAdwords)
google_oauth <-doAuth()
#Query a single campaign performance
campaign_performance <-statement(select=c('Date',
'AccountDescriptiveName',
'CampaignName',
'Impressions',
'Clicks',
'Cost',
'Conversions'),
report="CAMPAIGN_PERFORMANCE_REPORT",
start="2019-01-01",
end="2019-02-01")

#See your adwords data in r using getData()
data <- getData(clientCustomerId='XXX-XXX-XXXX', #Put your AdWords Account ID and not your Google Ads Manager Account.
                google_auth=google_oauth,
                statement=body)

Other APIs You Might Be Interested In

Looking for the next steps to improve your skills using APIs?How to Connect to a Google API

Congratulations, you’ve built your first Query in Google Ads reporting API using the Radwords package. You are now ready to manage all your Adwords data in R.

Jean-Christophe Chouinard

Sr SEO Specialist at Seek (Melbourne, Australia). Specialized in technical SEO. In a quest to programmatic SEO for large organizations through the use of Python, R and machine learning.

< svg aria-hidden="true" class="sab-linkedin" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">< path fill="currentColor" d="M100.3 480H7.4V180.9h92.9V480zM53.8 140.1C24.1 140.1 0 115.5 0 85.8 0 56.1 24.1 32 53.8 32c29.7 0 53.8 24.1 53.8 53.8 0 29.7-24.1 54.3-53.8 54.3zM448 480h-92.7V334.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V480h-92.8V180.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V480z">< svg aria-hidden="true" class="sab-twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">< path fill="currentColor" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z">< svg aria-hidden="true" class="sab-github" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512">< path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z">

L’article How to connect to Google Ads API with R (Advanced AdWords) est apparu en premier sur JC Chouinard.

To leave a comment for the author, please follow the link and comment on their blog: R – JC Chouinard.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.