Feed-Driven Search Ads Implementation at Easons.com

The Problem

Easons.com sells over 400,000 products across the books, stationery and games & toys categories.

Especially when it comes to books, it proved essential to advertise the right product at the right time following the sales trends of the season.

Books’ commercial success is usually due to the PR coverage they might get from institutional media and, more often, from social media influencers and celebrity endorsements. Tweets about the “the book Donald Trump doesn’t want you to read” has been a recurrent trend over the last 4 years and determined the success of books like “Fire & Fury” by Michael Wolff and “The Room Where It Happened” by John Bolton. Sales for these books suddenly skyrocketed at the same pace a hashtag spreads on social media.

It was my job to make sure Easons.com was on top of the trend and customers were able to find those books in Google search results.

Because these trends come and go at an incredible speed and might involve hundreds of books per season, manually writing search ads for each product proved unfeasible and inefficient.

 

The Solution

I realised I needed something that would write search ads automatically and would place higher bids based on the book’s popularity.

I was confident that book-specific search ads, coupled with existing Google Shopping Ads, will have given Easons a valuable competitive advantage on the search result page.

Step 1: retrieve book sales data in real-time

Connecting Google Analytics with Google Spreadsheets I was able to retrieve book sales data almost in real-time. I wanted to use this information to let the system know which books were worth writing an ad for and what bid to use.

Step 2: retrieve books’ info

In order to write ads automatically, I needed some information to feed the system with. In particular, I wanted to retrieve the book title, the book author and even more specific information like the book price, stock level, sales data and a potential discount price. I wanted to show all this information in search ads (see images below).

Becoming by Michelle Obama
The Magic Moment by Niall Breslin. The ad dynamically shows weekly sales data.

This data could be found in the Easons’ main product feed, the same I would use for Google Shopping. However, because the feed was too large to be easily manipulated in a spreadsheet, I had to find another solution.

I used Google Tag Manager to scrape Easons.com and retrieve all the information I needed from the product pages. The script would then use this data to populate a Google Spreadsheet, which became my purpose-built product feed.

My Google Tag Manager Script was able to scrape the product data highlighted above

I quickly realised that this solution also had an extra benefit. The script would scrape product pages only when visited by users. This means that it would scrape the most visited pages, which of course were the ones showing the most popular books. This way, my feed was always relevant to the trends of the moment.

Step 3: populate an ad-template spreadsheet

Once I was able to build a product feed on Google Spreadsheets, I could start writing the ads. Using advanced formulas and data transformation techniques, I was able to create a template that would write hundreds of ads at a time. I used the same concept to build both extended search ads and responsive search ads. The combination of the two made sure I always showed the right ad copy at the right time.

Step 4: create the ad groups

Just creating search ads wouldn’t have been enough. I wanted each book to sit in a separate ad group. This way, the whole campaign was easier to control. I could pause some books from showing, I could use bid adjustments and specific targeting options, and so on.

The biggest challenge was dealing with books that were out of stock. In fact, I wanted to create new ads and ad groups for books that became trending, but at the same time I had to remove them should they went out of stock. Because of the fast pace of the industry, popular books would go in and out of stock very quickly.

Based on the scraping script I mentioned above, I was able to retrieve stock data and use this to inform Google Ads. Thanks to a Google Ads script, I could pause and reactivate ad groups based on stock data.

Having an ad group per book proved to be essential for managing out of stock items.

Step 5: create the keywords

Thanks to the same product feed I built for search ads, I could also create the keywords. I would use a combination of book title and book author to create relevant keywords. eg “+john +bolton +books”, “the room where it happened”

Step 6: adjust the bids

Although I initially opted for a smart bidding strategy so I didn’t need to adjust bids at the keyword or ad group level, I soon realised that the pace books were going in and out of stock was too fast for the automated bid engine to work properly. It is common knowledge that smart bidding strategies need some time (even weeks) to collect enough data to properly feed their machine learning algorithms. Well, my ads didn’t have this time. Books might be trending even for just a couple of days and I couldn’t afford any “learning period“.

Therefore, I opted for the Enhanced CPC bid strategy. This way I could manually set my bids but also let them being adjusted by Google based on conversion data. It was definitely an excellent compromise between a fully manual bid strategy and a fully automated one.

I decided to set bids at the ad group level, effectively bidding per each book. I would set a default bid for all ad groups and then adjust it based on sales data retrieved from Google Analytics. The more revenue a book was generating, the higher the bid. Thanks to this I could make sure that I would bid higher for the most popular books and show them at the top of the SERP. At the end of the day, the whole purpose of this project was to make sure Easons was found when people were searching for the top-trending books.

Step 7: pass all this information to Google Ads

Using Google Ads Scripts I was able to bulk upload ad groups, ads and keywords on a daily basis, automatically. Because the ad templates were built on Google Spreadsheets, the integration was fairly easy to implement.

 

The Outcome

This new feed-driven search ads implementation allowed me to show hundreds of book-specific ads that would dynamically change every day based on sales trends. As soon as a book became popular, whether or not myself or the Easons team were aware of it, the day after one of my ads would show up. It is essentially Google Ads on autopilot!

This helped the whole performance marketing function boost revenue and ROAS, achieving over +20% revenue and +27% ROAS YoY between 2018 and 2017.

 

The Marketing Strategy

Although I developed this system trying to solve a specific problem, I quickly realised that this had massive marketing potential as well. Using the information in the product feed I could customise the messaging in the ads to drive specific user’s responses.

Drive FOMO (fear of missing out)

I used sales data to highlight the quantity sold. “If 55 were already sold this week, this definitely means that it is a book worth reading and I can’t miss out.”

 

 
Drive urgency

I used stock data to highlight low stock left. This drove purchase urgency as customers didn’t want to miss out.

 
Highlight sale price

I used real-time price data to calculate the exact discount percentage and now/was price. Because prices would constantly change, this was definitely one of the most valuable features of the feed-driven search ads implementation.

 

check my full resume.