Site icon R-bloggers

How to use Google Search Console API with R

[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.

This post is part of the Guide on Google Search Console API

Automation is a big hub in SEO and R is one of the greatest tools to help you do just that. But first, you need to be able to understand how to collect data from APIs.

In this guide, I will show you how to connect to the Google Search Console API and extract keywords from the API with the “searchConsoleR” package created by Mark Edmondson.

This guide is part of the complete tutorial on the Google Search Console API.

How to Get Google Search Console API Keys

You will need an API key to be able to connect to the Google Search Console API.

The API key is like your username and password to access the API.

Follow this guide to help you get your Google Search Console API key.

Once you have created your Google developer account and have downloaded your API key, you will be ready to connect to the Search Console API using R.

How to use the Search Console API in RStudio (Step-by-step)

Now that we have set-up our credentials for the Search Console API, I will show you how to use the searchConsoleR package to extract keywords data from Google Search Console.

1. The basics: downloading R and RStudio

For the next step, you will need to download R and RStudio.

If you don’t know what it is or how to use it, I strongly recommend that uou readHands-On Programming With R, especially the part that shows how to install R and RStudio.

R programming isn’t too hard to learn and RStudio makes it easy to work with this language.

2. Get ready: Install packages and load libraries

Now that you understand the basics of R and RStudio, I will show you how to Install packages and load libraries.

What are packages and why use them?

Packages in R are collections of functions and compiled code. Most of the best R functions are not in R when you download it. They can be installed on top of R so you can gain access to their libraries.

Install packages

In this project, we will use the googleAuthR  and the searchConsoleR packages. The first will allow you to authenticate and the second will give you access to the API from R. To use those packages, you must first install them on your computer.  Then you will load them in your current R session.

Copy this bit of code in your R session and run the code.

#install packages
install.packages("googleAuthR")
install.packages("searchConsoleR")
#Load Libraries
library(googleAuthR)
library(searchConsoleR)

3. Authenticate to the searchConsoleR

Now you will need to authenticate to the search console.  Copy this bit of code and add it next to what you already had, then run the code.

#Setting your data
website <- "https://www.example.com" # Enter your website here
nbrow <- 10000 #Number of rows you will collect from Search Console
#Authenticate in the Google Search Console API
options("googleAuthR.scopes.selected" =
c("https://www.googleapis.com/auth/webmasters",
"https://www.googleapis.com/auth/webmasters.readonly"))
#Add your client.id and client.secret here
options("googleAuthR.client_id" = "xxxxxxxx-.apps.googleusercontent.com")
options("googleAuthR.client_secret" = "xxxxxxxx_xxxxxxxxxxxxxx")
googleAuthR::gar_auth()
#Stop and authenticate in your browser

If everything goes right, you should have a pop-up in your browser looking like this:

Great! Now that you are set up, let’s dive-in the best part!

SEO Hack you can do using the Search Console API with R

In this part, I will show you how to export queries per page, get your Job Posting best ranked queries and to extract all your indexed pages from the Search Console API using R Studio SEO Hacks.

Export best queries per page from Google Search Console

To export best queries per page, you will need to copy and paste this bit of code in RStudio.

queries_page <- search_analytics(siteURL="https://www.example.com",
startDate = Sys.Date() - 93, #Start of analysis period (90 days before the end date)
endDate = Sys.Date() - 3 , #data given in search console is from 3 days ago, so we collect data from -3 days
dimensions = c('query', 'page'), #There are 6 dimensions you can dowload: date, searchAppearance, query, page, device, country
#searchType = c('image'), #Optional, default is "web"
rowLimit = nbrow,
#dimensionFilterExp = c("device==DESKTOP","country==GBR"), #optional
walk_data = "byBatch") 

Other APIs You Might Be Interested In

Looking for the next steps to improve your skills using APIs?

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 use Google Search Console API with R 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.