-
-
Save BradRuderman/81fc37a16a9f8a9d45d1 to your computer and use it in GitHub Desktop.
Adwords Error
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from googleads import adwords | |
from googleads import oauth2 | |
import logging | |
import sys | |
import psycopg2 | |
import datetime | |
import csv | |
logging.basicConfig(level=logging.ERROR) | |
logging.getLogger('suds.transport').setLevel(logging.ERROR) | |
# OAuth 2.0 credential information. In a real application, you'd probably be | |
# pulling these values from a credential storage. | |
SERVICE_ACCOUNT_EMAIL = '{STRIPPED_DATA}' | |
KEY_FILE = 'adwords.pem' | |
SERVICE_ACCOUNT_USER = '{STRIPPED_DATA}' | |
# AdWords API information. | |
DEVELOPER_TOKEN = '{STRIPPED_DATA}' | |
USER_AGENT = '{STRIPPED_DATA}' | |
CLIENT_CUSTOMER_ID = '{STRIPPED_DATA}' | |
oauth2_client = oauth2.GoogleServiceAccountClient(oauth2.GetAPIScope('adwords'), SERVICE_ACCOUNT_EMAIL, KEY_FILE,sub=SERVICE_ACCOUNT_USER) | |
adwords_client = adwords.AdWordsClient(DEVELOPER_TOKEN, oauth2_client, USER_AGENT, CLIENT_CUSTOMER_ID) | |
report_downloader = adwords_client.GetReportDownloader(version='v201502') | |
report_dt = (datetime.datetime.now() - datetime.timedelta(days=1)).strftime('%Y%m%d') | |
#customer = adwords_client.GetService('CustomerService').get() | |
#print 'You are logged in as customer: %s' % customer['customerId'] | |
def clicks(report_dt): | |
print(report_dt) | |
report_query = ('''SELECT AdFormat, | |
AdGroupId, | |
AdNetworkType1, | |
AdNetworkType2, | |
CampaignId, | |
CityCriteriaId, | |
ClickType, | |
CountryCriteriaId, | |
CreativeId, | |
CriteriaId, | |
CriteriaParameters, | |
Date, | |
Device, | |
GclId, | |
MetroCriteriaId, | |
MonthOfYear, | |
Page, | |
RegionCriteriaId, | |
Slot | |
FROM CLICK_PERFORMANCE_REPORT | |
DURING {0},{0}''').format(report_dt) | |
data = report_downloader.DownloadReportAsStringWithAwql(report_query, 'CSV', skip_report_header=True, skip_report_summary=True).strip("\n").split("\n") | |
headers = data.pop(0) | |
def performance(report_dt): | |
# Create report query. | |
report_query = ('''SELECT Id, | |
AccountCurrencyCode, | |
AccountDescriptiveName, | |
AccountTimeZoneId, | |
AdGroupAdDisapprovalReasons, | |
AdGroupId, | |
AdGroupName, | |
AdGroupStatus, | |
AdType, | |
AverageCpc, | |
AverageCpm, | |
CampaignId, | |
CampaignName, | |
CampaignStatus, | |
Clicks, | |
ConvertedClicks, | |
Cost, | |
CostPerConvertedClick, | |
CreativeApprovalStatus, | |
CreativeDestinationUrl, | |
CreativeUrlCustomParameters, | |
Ctr, | |
CustomerDescriptiveName, | |
Date, | |
DayOfWeek, | |
Description1, | |
Description2, | |
DisplayUrl, | |
ExternalCustomerId, | |
Headline, | |
Impressions, | |
Month, | |
MonthOfYear, | |
PrimaryCompanyName, | |
Quarter, | |
SharedSetName, | |
Status, | |
CreativeDestinationUrl, | |
Week, | |
Year | |
FROM AD_PERFORMANCE_REPORT | |
WHERE Impressions > 0 | |
DURING {0},{0}''').format(report_dt) | |
data = report_downloader.DownloadReportAsStringWithAwql(report_query, 'CSV', skip_report_header=True, skip_report_summary=True).strip("\n").split("\n") | |
headers = data.pop(0) | |
if __name__ == "__main__": | |
report_dt = (datetime.datetime.now() - datetime.timedelta(days=1)) | |
r_dt = report_dt.strftime('%Y%m%d') | |
clicks(r_dt) | |
performance(r_dt) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment