googlewrapper
General Connector Classes for Google Products
Current Wrappers Available
Wrappers In the Pipeline
STEPS
- <a href=https://github.com/jaceiverson/googlewrapper#Acquire-Google-Credentials-from-API-Console>Acquire Google Credentials from API Console
- <a href=https://github.com/jaceiverson/googlewrapper#installation>Install this package
- <a href=https://github.com/jaceiverson/googlewrapper/blob/master/documentation/Google%20Authentication.md>Create Connection in Python
- Use product wrapper to make API calls (see links to individual docs above)
Acquire Google Credentials from API Console
First we will need to get our own Google Project set up so we can get our credentials. If you don't have experience, you can do so here <a href=https://console.cloud.google.com/apis/dashboard>Google API Console
After you have your project set up, oAuth configured, and the optional service account (only for Google Big Query connections), you are good to install this package.
Make sure to download your oAuth credentials and save them to your working directory as 'client_secret.json'.
Installation
pip install googlewrapper
OR
python -m pip install googlewrapper
Virtual Environment
For each project it is reccomended to create a virtualenv. Here is a <a href=https://github.com/jaceiverson/googlewrapper/blob/master/documentation/VirtualEnv.md>simple guide on virtual environments.
Combining Products Examples
Example 1
Take a list of URLs from Sheets, grab Search Console Data, and import it into Big Query.
from googlewrapper import GoogleSearchConsole, GoogleSheets, GoogleBigQuery
import datetime as dt
sheets = GoogleSheets(YOUR_URL_HERE)
gsc = GoogleSearchConsole()
gbq = GoogleBigQuery()
sites = sheets.get_column(1)
'''
this one is a bit more technical
we can pull our column Branded Words right
from sheets then assign it to a dictionary to use
in our GSC object.
Make sure that your url column is the index for
your df. This will happen by default if the urls
are in the first column in google sheets
'''
branded_list = sheets.df()['Branded Words'].to_dict()
gsc.set_sites(sites)
gsc.set_date(dt.date(2021,1,1))
gsc.set_dims(['page','date','query'])
gsc_data = gsc.get_data()
for site in gsc_data:
print(f"{site}'s Data\n"\
f"Clicks: {gsc_data[site]['Clicks'].sum()}\n"\
f"Impressions: {gsc_data[site]['Impressions'].sum()}\n"\
f"Avg Position: {gsc_data[site]['Position'].mean()}\n\n")
gbq.set_dataset(site)
gbq.set_table('gsc')
gbq.send(gsc_data[site])
Pull Requests/Suggestions
I'd love to hear your feedback and suggestions. If you see something and you want to give it a shot and fix it, feel free to clone and make a pull request. OR you can submit and issue/feature request on GitHub.
Thanks for using my code
If you found this library useful, I'd appreciate a coffee. Thanks.