I'm trying to use the AdWords API to determine what the expected clicks and cost would be if I change the max cpc bid for existing keywords in existing campaigns and ad groups. In my TrafficEstimatorService API requests, I included existing campaign ids, existing ad group ids, and existing keyword ids. My question is what does the TrafficEstimatorService do with these ids when it generates traffic estimates? The docs (
https://developers.google.com/adwords/api/docs/reference/v201502/TrafficEstimatorService.CampaignEstimateRequest) are very vague about this:
For existing campaigns, the campaign and optionally the ad group will be used as context to produce more accurate estimates.
and
To make a keyword estimates request in which estimates do not consider existing account information (e.g. historical ad group performance), set campaignId to null
.
This is about all of the documentation that I can find on this. When I read that "the context" of the campaign/ad group/keyword would be used, then I assumed that the estimate would consider all of the keywords (including negative keywords) that were already in place in the given ad group. However, this does not appear to be the case. What seems to be happening is that the estimate is generated by considering only the keywords that are sent as part of the API request. If the existing keywords aren't used when generating the estimate, then what "context" is used? The docs seem to be too vague on this.
Does the TrafficEstimatorService use the keyword id at all? I'm wondering about this because even when I pass an existing keyword id in my request, I am required to specify a keyword text, a keyword match type, and a keyword max cpc bid. If I don't include these, I get an API error saying these are required. I would have expected the TrafficEstimatorService to use my keyword id to retrieve the keyword text, match type, and max cpc bid, but it doesn't seem to work this way.
The TrafficEstimatorService documentation works is intended to provide estimates for existing campaigns/ad groups. Is it intended to provide estimates for existing keywords as well, or is it mostly intended for use in generating estimates for new keywords? I'm now wondering if the bid landscape functionality is really where I should be looking for estimates on existing keywords.
In summary, my questions are:
1. Is the keyword id used at all when included in the KeywordEstimateRequest sent to the TrafficEstimatorService, or are only and campaign id and ad group id used by this service?
2. If the answer to #1 is no, then this means that an existing keyword's quality score, ctr, etc. aren't factored into an estimate, right?
3. Does the TrafficEstimatorService consider other existing keywords, in an existing ad group (when the ad group id is specified) besides those included in the API request? If not, then it would seem that it would be necessary to send all of the keywords in an ad group in a single API call in order to get accurate estimates because some keywords in an ad group may "steal" traffic from other keywords.
4. Similar to question #2, but does the TrafficEstimatorService consider existing negative keywords for an existing ad group id when generating estimates when the negative keywords aren't included in the request?
5. Can you describe in a bit more detail what "context" is used by the TrafficEstimatorService when existing campaign ids/ad group ids (and maybe keyword ids) are included in the request? How does sending these ids result in more accurate estimates?
6. Do bid landscapes consider the existing keywords in an ad group (including negative keywords) when a bid landscape is requested for a given keyword id?
7. Which is the better way to get estimates for cost and clicks for existing keywords for various max cpc bids (and thus set a new max cpc bid)--the TrafficEstimatorService or bid landscapes? The TrafficEstimatorService is a forward looking service in that it makes estimates for the future, so that would seem to be an advantage for it. Unfortunately, I have doubts about how much data about existing keywords is applied for estimates on existing keywords. On the other hand, bid landscapes are backwards looking (but we would prefer estimates for the future), but since they only require a keyword id to be specified, perhaps bid landscapes are able to utilize all of the context information of the keyword (other keywords in the ad group, negative keywords in the ad group, ctr, quality score, etc.). If the bid landscape is for recent traffic, then it is also likely a good predictor of future traffic (which is why this functionality was created in the first place).
8. Bid landscapes only return a handful (I've seen 3 at the least and 9 at the most) of landscape points for various cpc bids. Is the decision on the number of landscape points to return determined by big differences in cost/clicks/etc. at various bid points, so bidding in between these landscape points wouldn't result in much different results in terms of cost/clicks/etc.? What if my ideal max cpc bid happens to be somewhere in between two landscape points? The TrafficEstimatorService allows the max cpc bid to be specified in the request, so it has that working to its advantage since we can decide how many estimates we want to retrieve.
Thanks,
Jon