Our innovative data-driven approach drives a 72% increase in sales for luxury homeware retailer Cuckooland despite the tough economic headwinds.
The Challenge
Cuckooland approached DemandMore in mid-2022 to help across paid search and shopping, after having a poor ROAS in peak season 2021 (seen below in the red rectangle). ROAS had been at an all-time low, which intensified in October 2021 when they tried using a more consolidated campaign structure.

Cuckooland had three main challenges that they needed to address:
- Cuckooland needed to improve ROAS before the peak season, as a repeat of the previous year would have been devastating, considering the more difficult trading conditions this year. Despite having to move quickly from the existing campaign setup to our more optimised version, we also needed to move carefully, making sure that we fully AB-tested new concepts against the old ones to ensure that they were improving performance. We ran dozens of micro-split tests to prove our methodology throughout the transition.
- Cuckooland struggled to get volume through some of their higher-value products when they tried using more automated structures, so they reverted back to using a much more granular structure through the use of manual bidding and standard shopping campaigns, which is not optimal.
- Cuckooland couldn’t measure their return accurately as 3 of 4 ways to purchase were not properly tracked. Their customer journey was complex, with 4 different methods of purchasing their products. Conversions, where users bought online, were being tracked, however purchases over the phone, as well as finance orders, were not being fully tracked, making it difficult for Cuckooland to determine the value of the paid media channel. Instead, they were reverting to using the total revenue of the website as a proxy for paid media performance.
The Solution
We applied our M.A.D.S framework (Measurement data, Audience data, Feed data, Structure consolidation) methodology that we have devised to be both first-party data-centric, while simultaneosuly being aligned with Google’s vision for a more automated future.
1) Plugging The Conversion Tracking Gaps
One of the core pillars of our methodology at DemandMore is to ensure that the machine-learning inside Google can optimise using the best possible data. This allows us to use a value-based approach to optimisation, with a clear picture of the impact of paid media.
When we first spoke with Cuckooland we identified that there were 4 different ways of making a purchase, but only one route was being tracked:
- Online purchase with card (tracked)
- Online purchase with finance (not tracked)
- Offline, customer calls to purchase (not tracked)
- Offline, Cuckooland calls to users who abandoned the cart to purchase (not tracked)
Tracking Finance Order value
We identified that finance orders were not being tracked because customers were redirected to Dekopay, and were not redirected back to the thank-you page for a conversion to be registered through eCommerce tracking.
Therefore, we devised a solution using Google’s offline tracking solution. This works by storing a GCID (Google Click ID) that is unique to each click, so Google can determine which keywords and ads generated the GCID.
This can then be imported back into Google Ads, along with a value, to register a conversion if an order is completed offline, in this case when the finance was approved.
Our solution worked to capture the Google Click ID at the point where users were redirected from the checkout to the finance provider (Dekopay). We also worked with Cuckooland’s developers to store this identifier, along with the order ID, in a table.
When Dekopay agreed to finance an order, it sent an approval back to Cuckooland via its API, enabling us to create a second table. This table contained only the orders from the first table that had been approved, along with the Google Click ID and the value of the order.

Once we had this table, we built an application that ran on top of Google Ads API: it sent the Google Click ID and the value of the order back to Google Ads, and a conversion could be registered. This allowed us to track the finance orders and their value back to keyword and ad level, despite the users not returning to Cuckooland’s website.
To ensure a full set of data, we also passed these back through the same conversion into Google Analytics, via a user ID using the measurement protocol.
Tracking Call Conversion Order Value
The second gap in our tracking was insufficient tracking of orders through customers calling Cuckooland regarding an order. We only had tracking for the number of calls that came in, not the value of each call.
To track these call purchases, we used Google’s offline conversion tracking for calls, which changes the numbers on Cuckooland’s website to a Google forwarding number.
When a customer makes a call to Cuckooland, Google keeps a record of the number that the customer used, and is able to determine which keywords and ads triggered that call.
We worked alongside their customer service team to then record the phone numbers that users had called in on, in addition to the value of their transactions.
Finally, we passed these phone numbers that users had converted into a customer Google Ads via the API and matched the call purchases to the ads and keywords that triggered them.
Tracking Outbound Cart Abandonment Call Remarketing Conversion Value (Rejoiner)
The final customer journey of which we had no visibility was outbound call remarketing.
When users abandoned their carts, Cuckooland’s team would make outbound calls to these customers to identify any issues they were having and incentivise them to return and complete their checkouts.
As part of tracking finance conversions, we had been capturing and storing the GCID at the point of checkout.

We pushed this data into their back-end system that they used for cart abandonment remarketing. When they made an outbound call that converted, these were moved into a table that had the GCID and the value of the order.
Once we built this into the application, the GCID and the order value were passed back through Google Ads in the following weeks.
By tracking these 4 routes, we were able to give Google a full value-based picture of the performance of the channel, primarily so we could implement value-based strategies, such as tROAS, with full confidence.
2) Account Consolidation For Dynamic Margin Approach To Profit-Based Bidding (POAS)
To move to a profit-based bidding strategy, we needed to follow a particular process: we needed to know the margin per product, then group the products into budgets based on margin and ultimately ensure that those buckets had 50+ conversions per month, so that the automated bidding would work effectively.
When we took over the account Cuckooland had over 200 campaigns that contained their 2500 unique SKUs with an average number of conversions per month per campaign well below 50.
So we started by getting the margin into the feed. Here we had a challenge that the margin wasn’t static. As Cuckooland ran sales and decreased the price, similarly with rampant inflation suppliers and costs such as shipping were moving up and down frequently. We, therefore, needed a solution that would allow us to calculate the margin dynamically.
So we used a platform called Shoptimised that the feed data would run into. We took the cost of goods sold data that was dynamically updated in a back-end system that gave us SKU-level cost of goods sold data including the raw cost of goods that changed dynamically as suppliers changed their pricing, shipping costs, and VAT.

Once we had this data we exported both the SKU-level performance data from Google and the margin data that we had in the feed at SKU level to determine the number of products and the relative conversion volume in each margin group (ensuring no bucket had less than 50 conversions per month).
Now we had determined these margin groups we went back to Cuckooland to determine the margin that they wanted to achieve on each of these buckets.
3) Optimising The Data Feeds
The final pillar of our strategy was to optimise the data within the product feed for maximum return. As shopping has become more automated optimising the feed has become a key area for improvement.
To do this first we needed some shiny new technology. Ensuring our clients own their first part data is key and that we have a robust platform for optimising the feed we opted to use Shoptimised. This gave Cuckooland their own instance and full control over their feed data so should they move in-house in the future they retain all of their data.
With any type of optimisation, it’s key to prioritise activity to ensure that the most effort is focused in areas where it makes the greatest impact. So we segmented the feed into two groups.
Top performers, these products represented 5% of the total SKUs and generated 93% of the total sales. As Cuckooland is a seasonal company with different products for different times of the year we took a year-long view of performance to determine these products.
We labelled these top performers using a custom label so we could work with them easily. All of the other SKUs become our second bucket “all other products”.

When it came to optimisation of the feed we started with the title as this has one of the greatest impact on what queries the shopping ads appear for. Cuckooland has a wealth of search query data from running shopping campaigns in the past so we took the best-performing queries and inserted them into the titles of products.
We also took the decision to place the brand name “Cuckooland” at the end of the title to incentivise Google to show the ads for non-brand terms. Google by default favours showing your shopping ads for terms that are closer to the front of the title.
For the best-performing products we did this manually, for the rest of the products we did this using a rule-based formula to add all of the relevant attributes to the product tiles.
Once we had optimised the titles it was then onto the feed attributes, from GTINs to MPNs to colours and materials. We conducted an audit of their feed and requested key missing data such as GTINs and MPNs.
We then set about manually filling in the missing attributes for the top-performing products, for the rest of the products we opted to use a series of rules to take attributes that appear in the title of products such as the colour and then insert these into missing fields if they were blank.
An example of this would be that if the title contains the colour “blue” and the attribute colour is empty then insert the colour blue into the colour attribute.
A final win for Cuckooland was to move from Google CSS to a third-party CSS. This allowed us to pay a fixed fee for the cost of the CSS as opposed to paying 20% for the cost ofGoogle Merchant Center. This allowed us to immediately make significant cost savings for Cuckooland that could then be reinvested.