In [1]:
from googleads import adwords

In [22]:
def disapproved_ads(client, ad_group_id):
    PAGE_SIZE = 100
    ad_group_ad_service = client.GetService('AdGroupAdService', version='v201705')

    qry = ('SELECT Id, PolicySummary '
           'WHERE AdGroupId = {0} AND CombinedApprovalStatus = DISAPPROVED '
           'ORDER BY Id'.format(ad_group_id))
    more_pages = True
    disapproved_count = 0
    offset = 0

    while more_pages:
        page = ad_group_ad_service.query(qry + ' LIMIT {0}, {1}'.format(offset, PAGE_SIZE))
        print type(page)

        if 'entries' in page:
            for ad in page['entries']:
                disapproved_count += 1
                policy_summary = ad['policySummary']

                print ('Ad with id "{0}" was disapproved with the following policy '
                       'topic entries:'.format(ad['ad']['id']))

                for policy_topic_entry in policy_summary['policyTopicEntries']:
                    print '  topic ID: %s, topic name: %s' % (
                         policy_topic_entry['policyTopicId'],
                         policy_topic_entry['policyTopicName'])

        offset += PAGE_SIZE
        more_pages = offset < int(page['totalNumEntries'])

    print '%d disapproved ads were found.' % disapproved_count
    
def run(adgroup_id, account_id):
    adwords_client = adwords.AdWordsClient.LoadFromStorage()
    adwords_client.SetClientCustomerId(account_id)
    disapproved_ads(adwords_client, adgroup_id)

In [23]:
AD_GROUP_ID = '39246902358'
ACCOUNT_ID = '185-945-1522'
run(AD_GROUP_ID, ACCOUNT_ID)


<class 'suds.sudsobject.AdGroupAdPage'>
0 disapproved ads were found.

In [ ]: