googleads / googleads/googleads-python-lib
ad unit statement error.
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 749
- Forks
- 967
- PR merge metrics
- No merged PRs in 30d
Description
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()
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The relevant entry points shown are report_downloader.WaitForReport and DownloadReportToFile; begin by isolating the reportQuery statement and adUnitView settings from the pandas read step. Done means the filtered report produces a readable CSV with the requested ad unit IDs instead of EmptyDataError.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100