About Services Cases Blog Tools Reviews Partners Contacts

Turnkey Google Ads for a Footwear Store: Offline Conversions Without a CRM and a Relaunch After an Audit

Half the conversions were fake: footwear store, offline conversions without a CRM — 50% → 0 fake conversions, 19,540 excluded placements, Performance Max Feed Only

This project first came to me for an audit. A branded footwear online store on Khoroshop. The audit showed that half of the conversions in the account were fake. The ads were learning from garbage, and the owner was looking at numbers that did not exist in reality.

After the audit, the client ordered a turnkey setup — the light package. The budget is small, so the task was not to “go big” but to make every hryvnia go into learning from real sales.

Contents
  1. What it looked like at the start
  2. Offline conversions without a CRM
  3. Two new goals: actual purchase and actual margin
  4. A nuance the owner needs to know: the click date
  5. Wiping three months of fake data
  6. Product feed: titles and attributes
  7. One Performance Max Feed Only campaign
  8. 19,540 excluded placements
  9. Search terms
  10. What’s next
  11. FAQ

What it looked like at the start

At the start, the account had three problems:

  • about 50% of “purchase” conversions were fake;
  • the ads were showing on what were probably children’s YouTube channels. Most likely, that is where the fake orders came from: kids clicked and checked out. It is impossible to verify this 100%, but the picture looks very similar;
  • the algorithm was learning from exactly these “dirty purchases”.

So the problem was not in the bids or the campaigns. The problem was in the data everything was running on.

Offline conversions without a CRM

First and most important — I gave the ads real sales instead of “purchases” from the website.

The store has no CRM system — orders live in the Khoroshop admin panel. So I built the client a simple web interface for sending sales to Google Ads. The manager enters:

  • the gclid — the ad click ID;
  • revenue from the sale;
  • margin — how many hryvnias of gross profit the sale brought;
  • transaction ID — the order number from the Khoroshop admin. This field is optional: if it is left empty, the system inserts a random five-digit number, so duplicates are almost impossible.
Web interface for sending sales to Google Ads without a CRM
Web interface for sending sales to Google Ads without a CRM

Orders can be entered right after confirmation, not after the deal is fully closed. Customers here make a prepayment, and according to the owner, if a person has confirmed the order, they almost certainly pick it up. So there is no point in waiting until the parcel is received: the sooner a conversion reaches Google Ads, the faster the algorithm learns.

Once a day, between 2 and 3 a.m., the data is automatically uploaded to Google Ads through Data Manager.

Data Manager: daily upload of offline conversions
Data Manager: daily upload of offline conversions
Google Ads Offline Conversions Without a CRM: Ctrl+C, Ctrl+V — and Your Ads Learn from Real Sales Google Ads case study · End-to-end analyticsGoogle Ads Offline Conversions Without a CRM: Ctrl+C, Ctrl+V — and Your Ads Learn from Real SalesHow to send qualified leads, real sales and margin to Google Ads without a CRM: a simple web interface, gclid and a daily upload.Oct 14, 2026Read

Two new goals: actual purchase and actual margin

For this setup, I configured two goals. Their names say “CRM”, but in essence these are sales the manager enters manually from the admin panel:

  • “Actual purchase CRM” — revenue from real sales;
  • “Actual margin CRM” — margin from the same sales.
Goals “Actual margin CRM” and “Actual purchase CRM”
Goals “Actual margin CRM” and “Actual purchase CRM”

The campaign is now optimizing for actual purchases. The owner says his margin is more or less fixed, without a spread like “20% here, 70% there”. If there is a spread after all, the campaign can be switched to actual margin. Then the system will look for combinations of audiences and products that bring the highest margin, not the highest revenue.

I no longer use the old “purchase” conversion in the account. Those are dirty purchases.

A nuance the owner needs to know: the click date

This method of sending offline conversions does not work the way owners are used to. The usual logic: a conversion came in yesterday, so it was counted yesterday. Here it is different. In the standard metrics — “Conversions”, “Conversion value” — a sale is recorded not on the day of the order, but on the day of the ad click.

That is why these metrics can only be analyzed over a longer period. To assess things “here and now”, I added other columns to the account and to the main dashboard:

  • Conversions (by conv. time) — conversions by conversion date;
  • Conv. value (by conv. time) — value by conversion date;
  • Value / conv. (by conv. time) — average order value: value divided by the number of conversions by conversion date.
Columns by conversion date in the account
Columns by conversion date in the account

The data arrives with a one-day delay: the conversion is uploaded at 2 a.m. But analyzing ads day by day makes no sense on any project anyway. Look at a week at least — then you see the real numbers.

Wiping three months of fake data

Even though the goal is new and learning effectively starts from zero, I played it safe. Using data exclusions in the bidding settings, I removed conversions for the last three months so the strategy would not take into account the history with 50% fakes.

Data exclusion for August — October 2026
Data exclusion for August — October 2026

Three months is enough: Google’s strategies do not use data older than 90 days anyway.

Product feed: titles and attributes

The next block is fine-tuning the product feed. Through a supplemental feed I:

  • completely rewrote the titles the way they should look;
  • added item_group_id. Sneakers of one model in five sizes are five SKUs. Without item_group_id, Google treats them as different products and learns from each one separately. With it, the system understands that it is one product in different sizes and learns from the group;
  • added product_detail, mpn, size and size system, gender, age group, plus color and material where possible.
Supplemental feed with titles and attributes
Supplemental feed with titles and attributes
Product attributes in Merchant Center
Product attributes in Merchant Center

Why do this? So the system understands more clearly what the product is and matches it better to search queries. Before, it was roughly “Asics Patriot sneakers”, and now the product has a whole set of characteristics.

It is not a game changer. But when there is a chance to do something that could potentially improve the result, you should do it.

The feed is static for now, so the client received instructions on how to update it when new products appear.

One Performance Max Feed Only campaign

There is only one campaign for now, because the budget does not allow much room. It is built on the Feed Only principle, meaning it works only with the feed.

This is no guarantee that Performance Max will not go into other networks looking for an audience. But I did everything possible to keep it from going there.

PMax Feed Only campaign optimizing for actual purchases
PMax Feed Only campaign optimizing for actual purchases

How it is segmented:

  • two pairs of asset groups — for men’s and women’s footwear. This is mostly for convenience: it makes the initial analysis faster than expanding the products in each group;
  • in each pair, one group is without signals and the other with search themes. An important point: search themes are not targeting. They are a signal that gives the system a better understanding of the audience;
  • within a group, products are segmented by brand. Later, once there are statistics, weak brands can be turned off.
Asset groups: men’s and women’s footwear, with search themes and without signals
Asset groups: men’s and women’s footwear, with search themes and without signals

One more thing. I kept only the Ukrainian feed. In the audit, the client saw for himself that the Ukrainian feed performs better than the Russian one. When the budget is small, you need to narrow down as much as possible, not expand so much that the system collects statistics for ten years.

Only one thing is needed from the client here: turning off seasonal products in the Khoroshop admin. If it is winter footwear season now, summer shoes might still be bought, but it is unlikely. They should not eat the budget.

19,540 excluded placements

Next, I cleaned up placements: I added an exclusion list of just over 19,000 entries — mostly children’s YouTube channels. Cartoons, nursery rhymes and everything along those lines.

19,540 excluded placements at account level
19,540 excluded placements at account level

That is exactly where the ads used to show, and most likely that is where the fake orders came from. Even if not, for a store selling adult branded footwear it is definitely not superfluous.

Search terms

I reviewed the search terms. Honestly, there was very little irrelevant traffic. But what there was, I removed:

  • children’s footwear — the store does not sell it;
  • “from the manufacturer” queries — searches for footwear from specific Ukrainian factories. By all appearances, these are competitors’ brands.

One cluster I deliberately did not exclude — weightlifting shoes, special footwear for weightlifting. I did not find them on the site, but it is the client’s call: if they definitely are not sold, the cluster should be added to exclusions.

What’s next

During the first week, I am watching that the campaign runs normally and does not wander into YouTube. Once statistics accumulate, the first conclusions will appear: which brands work, which do not, and whether it is worth switching to margin optimization.

I will add the results separately once there is enough data. Analyzing ads a week after launch is exactly what I warn clients against.

01 — LaunchTurnkey Google Ads launchOne-time setup + one week of support. Includes basic tracking setup, Google Merchant Center setup and launch (for online stores), Google Ads setup and launch.$250Learn more
Related services
Google Ads consultation Your specific question worked through on Zoom or Google Meet: performance drops, conversions, launch strategy. $50 / hourLearn more Offline conversions without a CRM for online stores and lead gen A lightweight semi-automated integration: sending real sales or leads to Google Ads without a CRM system. Suitable for small businesses. from $100Learn more
Need a turnkey Google Ads launch that learns from real sales? Get in touch

FAQ on the topic

Frequently asked questions

What are offline conversions in Google Ads?
These are sales recorded not on the website but in a CRM, the store admin panel or manually, and then sent to Google Ads by the gclid click ID. This way ads learn from real sales, not from leads or button clicks.
Why do offline conversions appear in Google Ads “retroactively”?
In the standard columns, Google Ads records a conversion on the day of the ad click, not the day of the sale. To see sales by the date they happened, use the “by conversion time” columns.
Why item_group_id in a product feed?
It groups variants of one product — sizes, colors — together. Google understands that it is one product and does not spread learning across separate SKUs.
What should you do if Google Ads had fake conversions?
Remove their source, switch the goal to real sales and exclude the period with incorrect data through data exclusions in the bidding settings, so the strategy does not learn from it.
Can you remove YouTube from Performance Max?
You cannot turn the channel off completely, but you can restrict it significantly: a Feed Only campaign, placement and content type exclusions at account level.
Are search themes in Performance Max targeting?
No. It is a signal that helps the system understand whom to look for. The campaign can still show for other queries.



Contact

Let's discuss
your project

Leave a request — we'll assess your situation, discuss your goals and find the best solution for your business and budget.

🏆
As a Google Partner, I can help you get a Google Ads bonus of up to 55,000 UAH ($1.2K) for your first campaigns.
❌ I don't work with: gambling · betting · alcohol · tobacco · crypto · grey niches · payday loans
▸ new_project.init()
Discuss a project