report_job = {
'reportQuery': {
'dimensions': ['DATE', 'COUNTRY_NAME','CUSTOM_CRITERIA','AD_UNIT_NAME'],
'columns': ['TOTAL_LINE_ITEM_LEVEL_CPM_AND_CPC_REVENUE'
,'TOTAL_LINE_ITEM_LEVEL_IMPRESSIONS'
,'TOTAL_LINE_ITEM_LEVEL_CLICKS'
,'AD_SERVER_IMPRESSIONS'
,'AD_SERVER_CLICKS'
,'AD_SERVER_CPM_AND_CPC_REVENUE'
,'AD_EXCHANGE_LINE_ITEM_LEVEL_REVENUE'
,'AD_EXCHANGE_LINE_ITEM_LEVEL_TARGETED_IMPRESSIONS'
,'AD_EXCHANGE_LINE_ITEM_LEVEL_TARGETED_CLICKS'
,'ADSENSE_LINE_ITEM_LEVEL_REVENUE'
,'ADSENSE_LINE_ITEM_LEVEL_IMPRESSIONS'
,'ADSENSE_LINE_ITEM_LEVEL_CLICKS'
],
'dateRangeType': 'CUSTOM_DATE',
'startDate': {'year': single_date.year,
'month': single_date.month,
'day': single_date.day},
'endDate': {'year': single_date.year,
'month': single_date.month,
'day': single_date.day}
}
report_downloader = dfp.DfpClient.LoadFromStorage().GetDataDownloader(version='v201608')
try:
# Run the report and wait for it to finish.
report_job_id = report_downloader.WaitForReport(report_job)
except errors.DfpReportError, e:
print 'Failed to generate report. Error was: %s' % e
print 'report generated, downloading'
export_format = 'CSV_DUMP'
report_file = tempfile.NamedTemporaryFile(suffix='.csv.gz', delete=False)
report_downloader.DownloadReportToFile(report_job_id, export_format, report_file)
report_file.close()
from datetime import datetime
from datetime import timedelta
import csv
import gzip
from googleads import dfp
from googleads import errors
import tempfile
import socket
socket.setdefaulttimeout(15 * 60)
print socket.getdefaulttimeout()
from datetime import datetime
from datetime import timedelta
import csv
import gzip
from googleads import dfp
from googleads import errors
import tempfile
import socket
socket.setdefaulttimeout(15 * 60)
createddatetime = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
end_date = datetime.now()
start_date = end_date - timedelta(days=1)
single_date = start_date
# Create report job.
report_job = {
'reportQuery': {
#'dimensions': ['DATE', 'COUNTRY_NAME','CUSTOM_CRITERIA','AD_UNIT_NAME'],
'dimensions': ['DATE', 'CUSTOM_CRITERIA','AD_UNIT_NAME'],
# 'dimensionAttributes': ['ORDER_TRAFFICKER', 'ORDER_START_DATE_TIME',
# 'ORDER_END_DATE_TIME'],
# 'statement': filter_statement,
'columns': ['TOTAL_LINE_ITEM_LEVEL_CPM_AND_CPC_REVENUE'
,'TOTAL_LINE_ITEM_LEVEL_IMPRESSIONS'
,'TOTAL_LINE_ITEM_LEVEL_CLICKS'
,'AD_SERVER_IMPRESSIONS'
,'AD_SERVER_CLICKS'
,'AD_SERVER_CPM_AND_CPC_REVENUE'
,'AD_EXCHANGE_LINE_ITEM_LEVEL_REVENUE'
,'AD_EXCHANGE_LINE_ITEM_LEVEL_TARGETED_IMPRESSIONS'
,'AD_EXCHANGE_LINE_ITEM_LEVEL_TARGETED_CLICKS'
,'ADSENSE_LINE_ITEM_LEVEL_REVENUE'
,'ADSENSE_LINE_ITEM_LEVEL_IMPRESSIONS'
,'ADSENSE_LINE_ITEM_LEVEL_CLICKS'
],
'dateRangeType': 'CUSTOM_DATE',
'startDate': {'year': single_date.year,
'month': single_date.month,
'day': single_date.day},
'endDate': {'year': single_date.year,
'month': single_date.month,
'day': single_date.day}
}
}
# Initialize a DataDownloader.
report_downloader = dfp.DfpClient.LoadFromStorage().GetDataDownloader(version='v201608')
try:
# Run the report and wait for it to finish.
report_job_id = report_downloader.WaitForReport(report_job)
except errors.DfpReportError, e:
print 'Failed to generate report. Error was: %s' % e
print 'report generated, downloading'
export_format = 'CSV_DUMP'
report_file = tempfile.NamedTemporaryFile(suffix='.csv.gz', delete=False)
# Download report data.
attempts = 0
while attempts < 10:
try:
report_downloader.DownloadReportToFile(report_job_id, export_format, report_file)
report_file.close()
print 'report downloaded'
attempts = 10
except:
attempts +=1
print 'failed download, retry attempt:' + str(attempts)
report_downloader.DownloadReportToFile(report_job_id, export_format, report_file)