Adwords UI stats and data from API does not match

348 views
Skip to first unread message

tarvind...@heyjobs.de

unread,
Mar 22, 2018, 10:13:42 AM3/22/18
to AdWords API Forum
Hello Guys,

I have imported the Keyword_performance_report (KPR)  and campaign_performance_report (CPR) from Adwords via smartly.
But when i compare costs with the adwords UI the numbers dont match.
Adwords UI gives a cost of x, KPR says 1.3x and CPR it is 2 x. Also the clicks and impressions does not match.

Is it something wrong i am looking at. 

Thanks in Advance

Sreelakshmi Sasidharan (AdWords API Team)

unread,
Mar 22, 2018, 6:38:00 PM3/22/18
to AdWords API Forum
Hi Tarvinder, 

Are you using the AdWords API directly to download the Keyword Performance Report and Campaign Performance Report? If so, could you confirm if you are comparing the stats with the right UI view? Please check this guide to understand which UI view corresponds to which API report. If the stats in the corresponding UI view for the same date range doesn't match with the reports downloaded via the API for the same fields and date range, could you please share the report definitions used via API along with your client customer id? I can take a closer look. 

You could use reply privately to author while sharing the details. 

Thanks,
Sreelakshmi, AdWords API Team

Eduard Gan

unread,
Mar 26, 2018, 10:41:07 AM3/26/18
to AdWords API Forum
Hi i've got the same kind of error.

When i login into my client's account i see the zero amount of availible funds but when i try to get remainder through API i got -9568,58! Furthermore when i download account_actitivies csv report i see in Total spent value of 71980.88 while in reply from api i got 81527.25. the "spent" from API is considerably higher so results calculated from API totally not match results from UI and report. If i try to get total spent from other services i got the same result, for example from CAMPAIGN_PERFORMANCE_SERVICE and BUDGET_PERFORMANCE_SERVICE.

How i calculate reminders with API, in short : (paid - spend)/1000000.

def get_paid(client, customer_id):

query = {
'service': 'BudgetOrderService',
'selector': {
'fields': ['SpendingLimit'],
}
}

billing_accounts = run_query(client, customer_id, query=query)

paid = 0
for account in billing_accounts['entries']:
paid += account['spendingLimit']['microAmount'] / 1000000
return paid

minus

def get_spent(client, customer_id):
query = '''
SELECT CampaignId, Cost, CampaignStatus, Amount
FROM CAMPAIGN_PERFORMANCE_REPORT
'''
for row in run_awql(client, customer_id, query):
if row['Campaign ID'] == 'Total':
return round(int(row['Cost']) / 1000000, 2)

As a result i usually get pretty precise and realistic results. But in case of this customer with customer_id 5668060624 i got this bizarre minus over 9000.

I asked a question about that in technical support - their answer in short was that this strange data deviations might occured of possible refunds.

I still have no way to get the correct result whatever reason data deviated. May be my method of calculations is wrong, please give an advise, thanks!
Reply all
Reply to author
Forward
0 new messages