How to build an automated PPC product feed

Angus Hamilton

Chief Technology Officer


In ecommerce PPC campaigns, relevance is key. If you create ads which include correct price and stock level information and take a product-specific landing page, everyone will benefit. Customers will find exactly what they are looking for more quickly, and will be more likely to click on your ad and possibly make a purchase. From Googles perspective, the relevancy of these ads will warrant a higher Quality Score, improving your ads position and reducing the cost-per-click.

In the examples below, the first ad uses keyword insertion to make it appear to be relevant, but the landing page and ad text are completely generic. On the other hand, the second ad shows the price, a link to a specific product page, and that the item is in stock. This gives a clear signal to the user (and Google) that they can quickly purchase this item from this store.

PPC product feed


automated product feed

Getting started

The first step is to get your product data into a suitable format for processing. Content management systems can output a list of all your products, but youll need to be able to handle the format and delivery mechanism for these files – typically CSV, TSV or XML files delivered via e-mail, FTP or HTTP.

The data may also need some manipulation before being suitable for creating ads. For example, you may not want to create an advert for each size and colour of each product, so you will need to filter the output to provide just one entry for each ad group you want to create. If you have any products you’re not able to advertise for any reason, it’s also a good idea to block them at this stage too, to prevent them accidentally appearing later on. This is the most important part of the process – data from content systems is notoriously varied in its structure and content, but time spent getting the output right here is essential for the rest of the process to work.

Creating your campaigns

Having generated a suitable list of products, you need to consider the campaign structure in AdWords. Existing campaigns and ad groups may exist for some or all of the products, in which case you’ll need to find a way to match up these existing ad groups with the products in your list. This can be tricky, so it’s usually simpler and more effective to create a new campaign and most importantly an ad group per product. This allows for the creation of specific ads, keywords and bids at product level, and makes managing product-level changes easier as the feed updates.

Creating ads

To achieve relevant ads such as the one above, each advert needs to be created individually with highly targeted text. This isn’t practical to do manually if you have many products, so it is essential to automate the process. With smaller lists, this could be done using some good Excel skills (and a fair degree of patience). However, for larger volumes of data, and more importantly for managing on-going changes and updates, an automated database-driven solution is required.

To keep the ads relevant, you need to include variable elements into your ads such as the price, product or brand name. The generation process therefore needs to consider the length of the adverts – even a simple price change from £99 to £100 could take you over the headline character limit and corrupt the ad. Conversely, a short product name might leave a large gap in the ad text, so its good to have some fillers to pad out the ads to make the most of the character limits.

The issues continue around availability. If the product is out of stock, you will probably want to pause the ad group, rather than place an ad which shows “Out of Stock”. But what about pre-order or temporary stock changes? Do you want to advertise the product and an availability date, or perhaps re-direct to a different landing page to reserve the item?

Finally, to allow for ad testing, we need to take into account the creation of multiple adverts per product, whilst ensuring they are all created properly and kept in sync with the product details.

Keeping it all in sync

To be accurate and up-to-date, your ads need to change whenever product information changes. This could be to handle price changes, items dropping in and out of stock, or short-term discount/sales on specific product ranges which you want to highlight in your adverts.

An automated system can do this by checking the latest product listing against the previous version on a daily or even hourly basis, and only updating ads where relevant changes have occurred. To enable tracking of performance in AdWords, its important to keep changes to a minimum (each time you modify the ad text, Google creates a completely new advert). For example, if the price and URL changes, we dont want to re-create the ad twice. If the item goes out of stock and the price changes, you can pause the AdGroup and not worry about re-creating the ad. The goal here is to process the entire feed first, and then decide which changes are required in light of all the changes which have occurred.

Submitting to Google

The final part of the process is getting the data into AdWords. This could be done by exporting the ads in a format suitable for uploading through AdWords Editor or the web interface, but this is a manual process. To be truly automated it requires the use of the search engines APIs or AdWords scripting, but that’s another topic.


There’s a lot more I’ve not covered here which needs to be considered for a full product feed system – keyword generation, support for other search engines (possibly in different languages), error handling (e.g. policy violations or corrupt product data) and auditing, to mention a few.

However, once set up, a well-planned automated feed system should help everyone. Your customers find what they want more quickly and accurately, you are able to ensure your ads react to changes in your product listings more quickly, and your ranking with Google should improve.