Get the reason for zero impressions

108 views
Skip to first unread message

Peter Kingswell

unread,
Sep 22, 2015, 3:47:02 PM9/22/15
to AdWords API Forum, Peter Kingswell
Hi,

when you use the AdWords UI (i.e. at https://adwords.google.com/mcm/Mcm) you may see various reasons for zero (or low) impressions such as:

2 ads disapproved
1 keyword conflict
1 campaign may be losing clicks due to a limited budget
Your ad is disapproved and can't run.
None of your ads are running - Your campaigns and ad groups are paused or removed.

How do I pull these reasons via the API?

Many thanks,
Pete

Anthony Madrigal

unread,
Sep 22, 2015, 4:54:50 PM9/22/15
to AdWords API Forum, pe...@pricingengine.com
Hi Peter,

There are several different ways to get these reasons via the API:
  • Ads disapproved - check the disapprovalReasons field in the AdGroupAdService
  • Keyword conflict - please check this Ruby example on how to deal with keyword conflicts
  • Campaign may be losing clicks due to a limited budget - use the IsBudgetExplicitlyShared field in the Campaign Performance Report
  • None of your ads are running - check the status field of the campaign and/or adgroup
Cheers,
Anthony
AdWords API Team

Peter Kingswell

unread,
Sep 22, 2015, 5:17:55 PM9/22/15
to AdWords API Forum, pe...@pricingengine.com
many thanks Anthony.  

I don't understand - how would the status field of the campaign and/or adgroup possibly tell us that none of the ads are running?  It's just an enum { UNKNOWN, ENABLED, PAUSED, REMOVED } right?

Also, how would the IsBudgetExplicitlyShared field tell us about lost clicks due to budget?  It's just a bool right?

Thanks, Pete

Zweitze

unread,
Sep 23, 2015, 5:08:57 AM9/23/15
to AdWords API Forum, pe...@pricingengine.com
More reasons:

Campaign serving status: tells you whether a campaign is ended or not yet started.

ImpressionShare fields of campaigns and groups - they state whether which % of ads were not shown due to insufficient budgets, poor quality etc.

I know one reason that cannot be detected by API: when Google suspends an account for whatever reason you cannot find out that situation through the API - accounts have no status field. If you find out please let us know.

About the campaign and group status fields may give you a reason why none of the ads were displayed - if a campaign is deleted or paused its ads are not shown. If it is enabled its ads may be shown, depending on other circumstances.

In other words: AdWords has a lot of reasons to not serve an ad, and you have to check all those reasons.

Peter Kingswell

unread,
Sep 23, 2015, 9:21:21 AM9/23/15
to AdWords API Forum, pe...@pricingengine.com, ninjas, Shobu Filho
Hi Zweitze,

many thanks for your reply - most complete.  It seems to me that it's a right PITA to even partially replicate those notifications that you see in the UI.  

AdWords guys - if you're listening, we'd be a big +1 for an Account.ServingStatus field, which would be list of statii for all entities under that account (perhaps with an upper limit e.g. 50).  E.g. a simple but very useful implementation would be :

Account.ServingStatus = [
   
{ AdGroup, "Limited by budget" },
   
{ Account, "Invalid payment method" },  // e.g. expired credit card
   
{ Ad, "Inappropriate content" },  // e.g. Vaporizers, too many exclamantion marks
   
{ Keyword, "Conflict with negative variant" }
   
// etc.
]

Right now it's just not feasible nor worthwhile for us to code-up hitting multiple services, entities and properties to get something that's not as complete as the UI's notifications.

Many thanks, Pete 

Anash P. Oommen (AdWords API Team)

unread,
Sep 23, 2015, 5:06:52 PM9/23/15
to AdWords API Forum, pe...@pricingengine.com, nin...@pricingengine.com, sh...@pricingengine.com
Hi Peter,

As far as I know, there's a feature request that we filed with the Alerts team about making this available through AdWords API. I'll need to check with them about its status.

Cheers,
Anash P. Oommen,
AdWords API Advisor.

Peter Kingswell

unread,
Sep 23, 2015, 8:46:45 PM9/23/15
to AdWords API Forum, pe...@pricingengine.com, nin...@pricingengine.com, sh...@pricingengine.com
Many thanks Anash.

Peter
Reply all
Reply to author
Forward
0 new messages