January 15th, 2008 by Craig Danuloff · No Comments
Negative keywords are an important part of designing any paid search campaign. They’re also often overlooked and frequently under utilized.
Looking at search query reports on a campaign, ad-group, or keyword level certainly makes it clear that without the right negatives, you’re paying for a lot of clicks that just don’t have any chance of converting.
But reviewing query data makes it clear that there’s a use for negative keywords beyond keeping certain queries from displaying your ads altogether. It’s also necessary to use negatives to steer certain queries into the campaigns and ad-groups you’ve setup to target them.
The keyword ‘innova evo dog food’ for example, is matching queries for ‘only natural pet store’ despite the fact that ‘only natural pet store’ is an exact match keyword purchased in a different brand-targeted ad-group.
Innova dog food only represents a fraction of the OnlyNaturalPet inventory, and so it doesn’t make sense to show a brand-specific text ad (and landing page) to someone who might be looking for cat vitamins or even a dog collar. There’s a reason we didn’t put the ‘Innova’ brand keywords in our ‘Only Natural Pet’ brand-specific ad-group.
Yet throught the magic of broad match, it’s Innova dog food specific ads that are being served to these searchers, if we don’t prevent this with the proper use of negatives.
Also since we recently split up many categories and product lines into separate ‘dog’ ‘cat’ and ‘pet’ ad-groups, we’re seeing quite a bit of bleed there – both ‘dog’ and ‘cat’ show up in the ‘pet’ group, and ‘pet’ in each of the others. So now we’ve added the appropriate negatives so the queries respect our intentions; pet ad-groups have ‘dog’ ‘puppy’ ‘cat’ and related negatives, dog ad-groups have ‘pet’ negatives, and so on.
This is an interesting by-product of hyper-targeting the ad-groups, keywords, and text-ads. As our broad-match use is reduced over time the need to watch for this may be reduced, but right now with lots of broad-match still running it’s another thing to keep an eye on.
Tags: Case Studies · Paid Search
January 7th, 2008 by Craig Danuloff · 1 Comment
Keywords are over-rated.
The vast majority of paid search marketers track clicks and results (usually conversions) and tune their keywords as a result. They bid keywords up or down, perhaps even pause or delete them, as if the keyword was responsible for the result.
But the user frequently wasn’t searching for, or thinking about, the keyword.
They were searching for, and thinking about, whatever it was they typed into the ‘Search’ box. Or something that query represents – it’s often called their ‘intent’.
To run the most effective search campaigns your goal is to get as close as possible to their intent, and to the form or details of that intent. This is where the keyword problem appears. Keywords often mask search intent and even more regularly hide form and details.
Queries reveal intent and form.
(For anyone who didn’t read the earlier posts in this series, we’re calling keywords the terms you bid on in paid-search campaigns, and queries the search phrases users type into the search engines.)
By knowing the actual queries and reviewing their relationship to your keywords you can better understand what the searchers were looking for and thereby the keyword, match type, text-ad, bid, and even landing page changes that will lower your costs and increase your revenues.
An Example
We’re bidding on the keyword ‘dog remedy’ for onlynaturalpet.com (our blogging case-study).
Via ‘Broad Match’ it gets quite a few clicks and generates sales profitably.
It’s an interesting keyword for at least three reasons
- It’s a generic term which expresses a very broad intent.
- When someone searches for a ‘dog pneumonia remedy’ they’re thinking about the adjective (pneumonia) not the noun (remedy). It’s a really clear case where the keyword isn’t the users chief interest or concern.
- Isn’t remedy sort of a strange and dated word?
When we inherited the account, ‘Remedy’ was one large ad-group including keywords covering dogs, cats, pets, animals, etc. but no specific issues or ailments. Pulling a query report for the ad-group, we see a rather long list, excerpted at right.
Let’s take a look at all the changes this list suggests.
- Negatives. Many queries cover behavioral or medically severe conditions for which ONP doesn’t sell solutions. If we’re going to buy broad match there are going to be a lot of negatives.
- Ad-Groups. Breaking out ad-groups for the major market segments (dogs and cats seem obvious) and either specific or classes of ailments makes it possible to tailor text-ads and landing pages to more closely match searcher interest. It also makes it a lot easier to manage bids and thereby positions for the different segments, which very well might perform differently.
- Match-Types. Looking over the list we can adjust our keyword list to target the most common terms & phrases via exact match, common embedded combinations via phrase, and to carefully consider which broad match keywords to retain.
- Bids. Not all ailments are created, nor valued equally. With visibility into both clicks and conversions per query, we find that we make pretty good money on some remedy keywords or categories and a lot less on others. In conjunction with our keyword changes (particularly those phrase matched) we can bid rationally.
- Text-Ads. Beyond the obvious needs to match text ads to the now re-grouped keywords or the modified words and phrases, a look at the query list helps us imagine the state-of-mind or the scenario that the searcher may be in – we can use this to write and test text ads that would appeal to their emotional and intellectual state.
In another ad-group the query analysis would lead us to different conclusions, but in each by starting with what the user is trying to accomplish and both clarifying and being realistic (with ourselves) about our ability to satisfy that goal we can make very significant campaign improvements.
Tags: Paid Search
January 1st, 2008 by Craig Danuloff · 5 Comments
One good question left in the comments of our ‘Keywords and Queries’ post was: Can’t you get query-by-keyword info from the Google Adwords ‘Search Query Performance’ report?
The Search Query Performance report is the closest thing you can get from Google, or any of the engines as far as I’m aware, but it has several limitations.
First, it can’t associate queries with keywords. It’s a report for an entire campaign which means many ad-groups each full of keywords – often thousands. I’d argue that not knowing which keyword was matched to which query removes much (but certainly not all) of the utility of this report.
Second, Google groups large quantities of queries into buckets by match-type and hides the actual queries from you, listing only ‘other unique queries’.

Imaging your monthly credit card statement showed transaction detail for 50% of your purchases and lumped the rest in three groups based on size of the individual invoice (<$50, $50-$100, >$100) and just listed ‘Other Merchants’. Not a great way to review your budget is it?

Comparing the Google Report with a Campaign-By-Query report in Omniture SiteCatalyst (using the DB Universal Sources Vista Rule) shows Google disclosing only 38 unique keywords where Omniture lists 167 for the same period in one of our ad-groups.
And since Omniture can’t detect match-type differences (because Google doesn’t share that information via URL variables or their API), even that number is a bit low.
With a clear view of this level of detail (even at the campaign level, and moreso when we see which queries triggered which keywords) it’s possible to improve our ad-groups, negatives, text-ads, and even landing pages.
Next time I’ll dive deeper into making full use the information provided in keyword-by-query reports.
Tags: Paid Search · SEM Analytics
December 28th, 2007 by Craig Danuloff · 9 Comments
You buy keywords to run paid search ads. Users type keywords into search engines to perform searches. It’s easy to forget that they’re not the same things.
I’ve taken to calling the ones you buy ‘keywords’ and the ones people type ‘queries’. And about 100 times a week in one conversation or another I have to pose the question: Do you mean keywords or queries?
Beyond the linguistic fascination this poses, there is a very practical issue for paid search marketers. These diabolically similarly named elements interact in strange and important ways within your campaigns.
Confusion or indifference isn’t too good for the bottom line.
The Impossibly Simple Report
To understand the performance of any keyword (the kind you buy) it is vital to look at the queries (the ones users type) that get counted as clicks.
Of course, you probably can’t.
At least not using the tools and configurations you have today. Neither Google Adwords nor Yahoo Search Marketing or MSN AdCenter offers a report showing each keyword you buy and all the queries that were matched to it. Somehow they seem to think it’s unimportant (or perhaps not in their self-interest) to show exactly how your money is being spent.
There is a work-around of sorts: you can manually tag each keyword in every one of your campaigns to pass back the name of the keyword you purchased (see this post for info on the way to do this in Google, there are similar methods available for Yahoo and MSN) and then figure out how to grab that tag and marry it to the query string which is often (but not always) returned in the URL when the click actually arrives.
The actual process depends upon the tools you’re using, and in my experience this isn’t really complete, accurate, or practical.
That’s Why We Have Analytics Software, Right?
Nope. In their default state, neither Google Analytics or the larger more generally well equipped web analytics packages can tell you which of your purchased keywords drove traffic from which search queries either.
I can never decide if this is more or less startling.
- In Omniture SiteCatalyst the ‘Paid Search Keywords’ report is a query report. There is no capture of your paid search keywords (the ones you bought) unless you code them into the inbound URL’s and grab them as part of the Campaign tracking codes. If you do this, then use Excel to extract the keywords into a SAINT classification you should be able to run a classification report broken down by Paid Search Keywords and see the desired report. I’ve found this can work for queries which generate orders, but haven’t been able to make it work for every click. If you add SearchCenter, Keywords are tracked automatically so all that tagging and SAINT extraction goes away, but still only a fraction of the queries appear.
- HBX / WebTrends ML2 – I’m far less experienced at either of these, but haven’t seen nor been able to find simple complete keyword by query reports here either. Anyone with more definitive information is encouraged to comment.
- Google Analytics 2 – In GA2 you can pass in data via the target URL much as described for SiteCatalyst if you’re willing and able do tag the target for every keyword you buy (instructions here). I don’t believe (but am not 100% sure) that when tagged you can then produce a keyword by query report. Anyone?
What If I Pay More?
They say money can’t buy happiness, but let’s admit that it can make the misery a lot easier to put up with. In the case of search analytics, Omniture SiteCatalyst/SearchCenter can produce the report we all need and desire – if you’re aware of and then purchase the Unified Sources DB Vista Rule.
Once this little gem is setup, you get a new eVar with the user query properly populated (the vast majority of the time) and you can therefore break down SearchCenter keyword reports with an accurate query list.

There is still some separation between the SearchCenter data and the SiteCatalyst data (which the evar is) so not everything is full allocated across the queries (keyword cost for example so you can’t fully calculate ROI) but none-the-less this is fantastically useful for understanding and tuning your paid search campaigns.
Demonstrating some of the useful information in these reports was the reason I started writing this post, but as it’s far too long already, I’ll save the examples and details for another day.
(BTW: This feature is only a bonus of the Unified Sources Vista Rule – it’s main utility is to classify organic search traffic and referring URLs into your Campaign tracking code so that Campaign Reports cover nearly every traffic source, and you can SAINT organic and referring traffic along with other campaigns. This capability had also been very high on my wish list, so I recommend this Vista rule highly.)
The Developing Trend
If the core process of paid search marketing is buying keywords to connect with users when they type queries into search engines, then transparent reporting on the way our keywords are matched with user queries is essential.
Without knowing which queries are being matched to which keywords, it’s pretty hard to select or tune your use of match types. It’s a lot harder than it needs to be to see better ways to organize your ad-groups or rewrite text-ads to address user concerns or intent.
And across the performance metrics tied up in the CTRs, CPCs, and Conversion Rates of those keywords, match types, ad-groups, and creatives, it becomes virtually impossible to optimize your campaigns and your spend to maximize YOUR revenue.
This fact is the primary driver behind our development of ClickEquations – you don’t have a fair shot today due to both the complexity of the marketplace and the information you’re selectively not being provided.
There are undoubtedly many reasons why we don’t currently get clear complete information. The rapid development of the engines and their software and the complexity of what they’re trying to accomplish dictates that they haven’t had time to get to everything. It also seems reasonable to assume that since their economic interests and those of their advertisers don’t always align, some decisions and prioritizations are made without putting advertiser interests first.
But advertisers also own some of the responsibility. Without a loud and clear call for the kind of information and transparency we all need to manage our campaigns and budgets, we’re going to continue to get all kinds of bells and whistles from both the engines and the analytics vendors while some very basic features remain difficult or unavailable.
Tags: Paid Search · SEM Analytics
December 16th, 2007 by Craig Danuloff · 1 Comment
Onlynaturalpet.com makes money from their paid search marketing campaigns. Not just ROAS, but actual profit.
The amazing thing isn’t that it’s true. It’s that we know it.
We know exactly how much profit and where it comes from. Which engines. Which campaigns. Which ad-groups. Which keywords.
This is unusual because the search engines reporting systems, and most analytics packages, can’t report on profit or ROI. Isn’t it amazing that they ignore the goal?
Instead they focus on ROAS, which is a lousy measure, and just maybe tell you how you can manually calculate ROI if you’re willing to do the work – every time you want to know. (Some thoughts on what’s wrong with ROAS here, here, and here.)
But the software systems aren’t the only barrier to measuring profitability. Doing so also requires the advertiser know their cost-of-goods-sold (COGS) for each item and be willing and able to provide that information to the system on a regular basis. We’ve worked with many retailers where the marketing dept either doesn’t have access to the data, permission to share it, or can’t keep up with rapidly changing market prices.
The Omniture Solution for OnlyNaturalPet.com
Both of these obstacles have been overcome in our work for OnlyNaturalPet.com. We’ve augmented the standard Omniture SiteCatalyst and SearchCenter with an add-on Omniture Vista Rule that allows us to upload COGS data for each SKU which then becomes an available reporting metric.
From this COGS we create calculated metrics for a whole range of interesting measures like gross and net margin, profit and ROI.
Of course this works so well because onlynaturalpet.com provides us with complete cost/margin lists for their entire inventory. Given their expanding range of products, we plan to update these files monthly.
Reporting with Profit Visibility

Note that we’ve purposely chosen a small set of keywords, and not the most profitable at that, and changed a few numbers around, to provide this illustrative report.
When reports display profit and ROI right next to cost and revenue, it gets a lot easier to make what are typically hard decisions when running paid search campaigns.
For onlynaturalpet.com the loss from trying to sell dog collars over the last quarter has been clear, the keywords and creative while not perfect were not culpable, and so at least for now we’ve pulled the plug on much of the ad-group.
Elsewhere profitability makes it clear (even before our bidding tools and other software kick-in) where we can spend more, work to expand, test more creative, etc.
As compared to managing campaigns without clear profit visibility, it’s like someone switched the lights on.
This post is part of a case-study series on the Commerce360 management of paid search campaigns for onlynaturalpets.com. It is being done with the kind permission of Only Natural Pet Store, and some data has been changed to keep PetSmart guessing. For your convenience, we’re keeping a list of all posts in the series.
Tags: Case Studies · Paid Search · SEM Analytics
December 15th, 2007 by Craig Danuloff · No Comments
We were greeted today in the onlynaturalpet.com Adwords account by a new ‘warning’ message:
The keywords in your account are nearing an unmanageable size. We recommend that you reduce the number of keywords within your account. This will ensure that your account includes the most targeted and relevant keywords possible. Use our AdWords Editor to identify poor performing keywords within your account (such as keywords with few or zero impressions) and delete them. Note: Be careful when deleting keywords in campaigns that are only opted in to the content network. Impressions and other statistics aren’t attributed to individual keywords when ads show on content pages, but are attributed to the ad group as a whole. Therefore, keywords in content-only campaigns will always show zero impressions.
This isn’t a suprise.
The campaign we inherited had just above every keyword in every account included three times, as broad, phrase, and exact match. To make matters worse, many 3-4 word phrases are included in different word orders, which is obviously redundant at least to the broad match versions (and usually the phrase and exact match versions are nonsensical).
How bad is it? The Adwords Editor identifies 335309 out of 341203 keywords as being duplicates!
Thus far we’ve only cleaned these up in a few ad-groups while doing some other reorganization. The balance will be a project for the next week or two.
This post is part of a case-study series on the Commerce360 management of paid search campaigns for onlynaturalpets.com. It is being done with the kind permission of Only Natural Pet Store, and some data has been changed to keep PetSmart guessing. For your convenience, we’re keeping a list of all posts in the series.
Tags: Case Studies
December 14th, 2007 by Craig Danuloff · No Comments
It is very clear, to us anyway, that paid search has too many moving parts, too much mathematical complexity, and such a total lack of environmental stability, that attempting to optimize or maximize results without the assistance of some pretty serious software is a futile exercise.
But does that mean a reasonable goal is a black box that takes business models in one side and spits out keyword-ad-bid-landing-page combos out the other (directly to the engines via api, of course) ?
Not only are we a very long way from that, but it probably isn’t the right goal. Matt Leveque, a Paid Search Marketing Manager here at Commerce360, raises that point on his blog today – and shares some relevant and interesting lessons from the history of the Toyota Production System (TPS) and how this experience might impact PPC automation.
In the end he suggests that the system maintain a “human element that adds common sense and context around bid changes, ad creative testing and keyword strategy.”
This makes perfect sense, and we’re working on finding just the right balance with ClickEquations. For both SEM professionals like Matt and in-house marketing and search managers it will be interesting to see where the lines end-up based on both measurable results and personal comfort and trust.
Tags: PPC Automation · Paid Search
December 12th, 2007 by Craig Danuloff · 3 Comments
One small but important step in our setup of Onlynaturalpet.com is to configure their Omniture SiteCatalyst implementation to correctly assign revenue credit for search keywords.
As you probably know, many people execute several searches, often over the course of several days, clicking on different paid keywords along the way before finally making that purchase.
When this happens, which keyword(s) should get the credit for the sale?
- Is it the keyword they clicked on that last visit where they executed the transaction?
- Is it the keyword that first brought them to your site?
- Should the credit be distributed across the keywords in some fashion?
This might sound like a small matter. But what if 50% of your visitors didn’t buy during their first search or visit? What if nearly one-half of your revenue was being allocated at least partially to the ‘wrong’ keywords?
Would this impact the decisions you made about which ones to bid up and which ones to bid down or pause?
Importance of Proper Allocation
For onlynaturalpet.com nearly 35% of their paid search visitors do not buy on the first visit. (We learn this in Omniture Discover 2 – neither SiteCatalyst nor most other packages can separate this metric for paid search vs other visitors.)
We also know that around 50% of their purchases do not occur on the same day as the first visit. (Unfortunately that number can’t be broken out for paid vs other visitors, even in Discover.)
Both of these statistics, however, suggest that lots of paid search visitors are not buying based on the first keyword they click. Shifting 20-30-40% of our revenue to different keywords would have a huge impact on any analysis of success or future campaign recommendations.
Revenue Allocation in SiteCatalyst
We choose to use linear revenue allocation in SiteCatalyst, splitting the revenue evenly between all keywords that the user clicks on along the way. While imperfect, we think this is far better than having all of that revenue accrue to the last keyword, or putting all of it to the first one they searched.
It’s worth noting that most analytics packages including Google Analytics, and the search engine ‘conversion tracking’ systems do not allow you to control allocation. In reports from those systems, all revenue is assigned to the last keyword a users clicks. Yahoo Panama tracks the number of assists, but doesn’t shift the revenue. If like most sites you have a significant portion of your revenue coming from visitors not purchasing on the first visit, this limitation means you’re looking at numbers (when reviewing keywords and ad-groups) with a fairly serious distortion.
For onlynaturalpet we set this allocation method several months ago, so even our historical data in any reports is based on this linear allocation.
Summary
Soon we’ll be making important decisions based on the information available from the search engine reports and our analytics software. While it’s easy and tempting to just trust the numbers provided, very often it’s important to understand how these numbers are arrived at before making decisions based on them.
Revenue from paid search and its allocation to keywords is a great example of a tiny detail that has big implications for the success of your PPC campaigns.
This post is part of a case-study series on the Commerce360 management of paid search campaigns for onlynaturalpets.com. It is being done with the kind permission of Only Natural Pet Store, and some data has been changed to keep PetSmart guessing. For your convenience, we’re keeping a list of all posts in the series.
Tags: Case Studies · Paid Search
December 10th, 2007 by Craig Danuloff · No Comments
The first thing we look at when opening the Google or Yahoo accounts for new clients how well the current campaigns and ad-groups are organized. We want to know if the keywords are logically divided into ad-groups, and the ad-groups are logically divided into campaigns.
Organization matters because these structures determine how text-ads are matched to keywords, how budget is allocated, and the default breakdowns you’ll get in reports to analyze performance.
It can be difficult or impossible to recover from a bad campaign organization. Ad-groups full of dissimilar keywords mean that your text-ads don’t directly target your keywords which usually drives down both click-through and conversion rates.
More importantly, when ad-groups contain keywords with too wide a range of performance characteristics – such as a bunch of words which average click-through-rates in the 2-4% range and then a couple of outliers with high volume and CTRs over 20% – your ad-group summary reports are going to be full of misleading (and therefore useless) numbers.
[Read more →]
Tags: Case Studies
December 9th, 2007 by Craig Danuloff · 2 Comments
It’s always interesting to take a look inside an existing paid search account for the first time. If you know what to look for it’s easy to get a pretty quick sense for the depth and quality of the existing campaigns.
When we review an account, we want to take a look at the campaigns and ad groups, keywords, creative (text ads), bids, and the landing pages.
Here’s what we want to look for in each:
- Campaigns and Ad-Groups
- Is there a logical structure that can organize the account into reasonable and meaningful groups and sub-groups?
- Are the keywords in the ad-groups properly sorted according to this structure?
- Keywords
- Are the keywords of appropriate quality, quantity, and diversity?
- Are match-types set reasonably?
- Creative
- Are the existing text ads diverse and well written?
- How wide is the CTR range that the existing ads are achieving?
- How do these ads compare to those being run by competitors for similar keywords?
- Does the history suggest that there has been a lot of creative testing?
- Bids
- What are the average positions of the keywords in the different ad-groups? Within any ad-group are the positions within a tight or widely distributed range?
- What is the average cost per order, or ROAS within and between the ad-groups?
- What is the ROI being achieved at the ad-group and keyword levels. What’s the range of ROI within any ad-group?
- Landing Pages
- How diverse is the set of landing pages being used across the ad-groups and keywords?
- How well do the landing pages match the conceptual organization of the ad-groups?
The goal is to understand (and later improve) the alignment of keywords, text-ads, and landing pages and then properly value each grouping. Messy organizations, incomplete keywords, poorly written ads, inappropriate landing pages, or illogical bids are all opportunities for improvement.
We often do quick reviews of accounts for prospects, to gain an understanding of the level of existing management and provide some insights as to the potential for improvement and some examples of how we’d approach the opportunity.
But sitting down to review an account after we’ve taken over management is quite different. Now we need more than just a sense of potential, we need to create an actual task list.
In the next post we’ll talk about the first step of our review for onlynaturalpet.com, as we examine the organizational structure of their accounts and make our first changes since taking over account management.
This post is part of a case-study series on the Commerce360 management of paid search campaigns for onlynaturalpets.com. For your convenience, we’re keeping a list of all posts in the series.
Tags: Case Studies · Paid Search