googleads / googleads/googleads-python-lib

ad unit statement error.

Open
#546 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.