googleads-python-lib
googleads-python-lib copied to clipboard
ad unit statement error.
Hi, I am trying to run a report by filtering the data with Ad unit ID. However when I set 'adUnitView':'HIERARCHICAL' the code produces zero data. When I remove 'statement': ad_unit_filter_statement, the code works but brings all data of all ad unit IDs.
How can I rewrite the ad_unit_filter_statement?
The error
EmptyDataError: No columns to parse from file
The Code
ad_unit_ids = [1111, 2222]
ad_unit_filter_statement = {
'query': 'WHERE AD_UNIT_ID IN (%s)' % ','.join(map(str, ad_unit_ids))
}
report_job = {
'reportQuery': {
'dimensions': [
'DATE',
'ADVERTISER_ID' ,'ADVERTISER_NAME',
'ORDER_ID' ,'ORDER_NAME',
'LINE_ITEM_ID' ,'LINE_ITEM_NAME',
'AD_UNIT_ID' ,'AD_UNIT_NAME',
'DEVICE_CATEGORY_NAME','DEVICE_CATEGORY_ID'
],
'columns': ['TOTAL_LINE_ITEM_LEVEL_IMPRESSIONS',
'TOTAL_LINE_ITEM_LEVEL_CLICKS',
'TOTAL_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS'
],
'adUnitView':'HIERARCHICAL',
'dateRangeType': 'CUSTOM_DATE',
'startDate': first_date,
'endDate': last_date,
'statement': ad_unit_filter_statement
}
}
report_job_id = report_downloader.WaitForReport(report_job)
export_format = 'CSV_DUMP'
directory='/home/sgocen/git_tree/xxx'
report_file = tempfile.NamedTemporaryFile(suffix='.csv', dir=directory, delete=False)
report_downloader.DownloadReportToFile(report_job_id, export_format, report_file, use_gzip_compression=False)
chunk_size = (16 * 1024) # chunk size used for report downloader
file_size = os.path.getsize(report_file.name)
df_report = pd.read_csv(report_file.name)
report_file.close()