This Python 3 code snippet demonstrates the usage of the Google Ads API (formerly known as AdWords API), to generate and retrieve a report. The code can be modified to retrieve all kinds of reports (in the example, a report of type CLICK_PERFORMANCE_REPORT is requested as CSV).
Prerequisites
- App Setup in the Google Developer Console with Google Ads API enabled
- Google Ads API key (to get from your MCC under TOOLS & SETTINGS > SETUP > API Center)
- Generate a refresh token using the generate_refresh_token.py script from the Google Ads API examples
- Copy the googleAds.yaml example file from the Google Ads API Examples to your script directory and insert your client-id, client-secret, API key and refresh token
- Install the Google Ads Python Library (pip install googleads)
Code Snippet
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
from googleads import adwords
from googleads import errors
import time
import datetime
import os
import sys
if __name__ == '__main__':
## initialize google adwords client object
adwords_client = adwords.AdWordsClient.LoadFromStorage("googleAds.yaml")
## set your customer-ID
adwords_client.SetClientCustomerId('123-456-7890')
report_downloader = adwords_client.GetReportDownloader(version='v201809')
## get CLICK_PERFORMANCE report for yesterday as an example
report_date = datetime.datetime.now()-datetime.timedelta(days=1)
report_date_string = report_date.strftime("%Y%m%d")
## build the report query
report_query = (adwords.ReportQueryBuilder()
.Select('GclId','CampaignName', 'AdGroupName', 'CriteriaParameters')
.From('CLICK_PERFORMANCE_REPORT')
.During(start_date=report_date_string,end_date=report_date_string)
.Build())
## download the report as CSV into string
csv_report = report_downloader.DownloadReportWithAwql(
report_query, 'CSV', skip_report_header=True,
skip_column_header=True, skip_report_summary=True,
include_zero_impressions=False)
## do whatever you want with the generated report