Skip to content

Fetch Google AdWords Manager Accounts data #236

@cosbgn

Description

@cosbgn

Hi,

I'm following a very standard approach from the examples and I'm able to successfully get standard adwords account's data. My code looks like this:

 def update_adwords_campaigns(user):	start_date = 'LAST_30_DAYS'	creds = AdWordsCredentials.objects.get(user=user)	oauth2_client = oauth2.GoogleRefreshTokenClient(settings.GOOGLE_CLIENT_ID, settings.GOOGLE_CLIENT_SECRET, creds.refresh_token)	adwords_client = adwords.AdWordsClient(settings.ADWORDS_DEV_TOKEN, oauth2_client)	campaign_service = adwords_client.GetService('CampaignService', version='v201708')	customers = adwords_client.GetService('CustomerService').getCustomers() 
for customer in customers:	client_customer_id = str(customer.customerId)	print(client_customer_id)	## Get current USER	oauth2_client = oauth2.GoogleRefreshTokenClient(settings.GOOGLE_CLIENT_ID, settings.GOOGLE_CLIENT_SECRET, creds.refresh_token)	adwords_client = adwords.AdWordsClient(settings.ADWORDS_DEV_TOKEN, oauth2_client, 'user_agent', client_customer_id=client_customer_id)	campaign_service = adwords_client.GetService('CampaignService', version='v201708')	PAGE_SIZE = 100	# Construct selector and get all campaigns.	offset = 0	selector = { 'fields': ['Id', 'Name', 'Status'], 'paging': {	'startIndex': str(offset),	'numberResults': str(PAGE_SIZE) }	}	more_pages = True	while more_pages:	page = campaign_service.get(selector)	print(page)	# Display results.	if 'entries' in page:	report_downloader = adwords_client.GetReportDownloader(version='v201708')	report = { 'reportName': 'AdWords Report', etc etc} abc = report_downloader.DownloadReportAsString(report, skip_report_header=True, skip_column_header=False,skip_report_summary=True) offset += PAGE_SIZE	selector['paging']['startIndex'] = str(offset)	more_pages = offset < int(page['totalNumEntries'])	time.sleep(1) 

However this doesn't return any campaigns for manager accounts. How can I get their campaigns & metrics? Also, why do I need the time.sleep(1) it makes my code incredibly slow. Is there a way to avoid it. Thanks?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions