ATC/BC Primary Conversion Analysis
Whether promoting Add to Cart and Begin Checkout to primary conversion actions helps or harms this account. Focused on signal dilution across a large, sparse catalogue.
All data sourced from local database queries against synced Google Ads data.
What changed
On Feb 12 2026 (approximately 2pm), the agency promoted two conversion actions from secondary to primary:
| Action | ID | Category | Attribution |
|---|---|---|---|
| Analyzify - Add To Cart | 6501968382 | ADD_TO_CART | DDA |
| Analyzify - Begin Checkout | 6502185858 | BEGIN_CHECKOUT | DDA |
Analyzify - Purchase (6502064113) remains the only purchase-type primary action.
Prior to the switch, ATC and BC were tracked as secondary actions: visible in all_conversions but excluded from conversions (the metric Smart Bidding optimises toward).
Retroactive DDA credit
Because Google uses data-driven attribution and attributes conversions back to the click date, the switch created a small retroactive bleed:
| Date | ATC primary | BC primary | Purchase primary |
|---|---|---|---|
| Feb 9 and before | 0.00 | 0.00 | 7.00 |
| Feb 10 | 1.82 | 0.00 | 5.98 |
| Feb 11 | 6.00 | 1.00 | 6.99 |
| Feb 12 | 7.98 | 3.42 | 4.99 |
| Feb 13 | 11.98 | 1.00 | (no purchase data yet) |
Feb 10-11 were not the result of an earlier switch. DDA recalculated and credited clicks from those days after the action became primary on the 12th.
Confirmation: on Feb 13, primary_conv == all_conv for both ATC and BC, proving they are currently primary.
Other changes in the same window
The agency made additional changes around the same dates, complicating any before/after comparison:
| Date | Change |
|---|---|
| Feb 10 | Shopping Catch All Over 20: tROAS lowered 4.00x to 3.50x |
| Feb 11 | Brand Search: Hairpin ad group paused, CPC cap cut from £5 to £2 |
| Feb 12 | PMax Table Tops: tROAS raised 3.00x to 3.50x |
Conversion value inflation
Analyzify assigns the current cart value to ATC and BC events. This is the value of the items in the cart at the moment of add-to-cart or begin-checkout, not the value of a completed purchase.
Average value per conversion (Feb 10-12):
| Action | Total conversions | Total value | Avg value per conversion |
|---|---|---|---|
| Add to Cart | 27.8 | £1,950.53 | £70.21 |
| Begin Checkout | 5.4 | £557.01 | £102.77 |
| Purchase | 18.0 | £2,184.22 | £121.62 |
ATC averages 58% of purchase value. BC averages 85%.
But the real inflation problem is worse than the per-event value ratio suggests. An ATC does not predict a purchase at 100% probability. With typical cart abandonment at 60-70%, the true expected value of an ATC is roughly £70 x 0.30-0.40 = £21-28, not £70.
ROAS distortion on Feb 12
| Level | Reported ROAS | Purchase-only ROAS | Inflation factor |
|---|---|---|---|
| Account | 14.76x | 5.42x | 2.7x |
| Product (Shopping) | 16.38x | 6.00x | 2.7x |
Pre-switch 30-day baseline (purchase-only, since ATC/BC were secondary): 2.83x account ROAS.
The reported number is now meaningless for decision-making. Every metric that uses conversions or conversion_value — ROAS, CPA, conversion rate — is inflated.
Product-level examples
| Date | Offer | Total conv | Purchase conv | Total value | Purchase value |
|---|---|---|---|---|---|
| Feb 12 | desk-s-grey-ye | 3.92 | 0.99 | £599 | £140 |
| Feb 12 | shopify_gb_…524806 | 3.50 | 0.50 | £1,017 | £312 |
| Feb 11 | j-hook-ye | 5.00 | 1.00 | £75 | £25 |
The desk-s-grey-ye offer shows 4.3x value inflation on a single day. Smart Bidding sees this offer as generating £599 in value from £186 in spend (3.2x ROAS) when actual purchase revenue was £140 (0.75x ROAS, a loss).
The signal volume argument
The stated rationale for making ATC/BC primary is that Smart Bidding needs more conversion signals to optimise effectively. Google’s own guidance suggests 30+ conversions per month per campaign for tROAS to work well.
Per-campaign conversion volume (last 30 days, purchase only)
| Campaign | Type | Purchases/30d | Clicks | Spend |
|---|---|---|---|---|
| Shopping Catch All Over 20 | Shopping | 94.4 | 3,447 | £2,561 |
| Brand Search | Search | 59.6 | 955 | £3,257 |
| Shopping Top Performers | Shopping | 50.8 | 1,293 | £1,621 |
| Shopping Catch All Under 20 | Shopping | 27.0 | 534 | £334 |
| PMax Table Tops | PMax | 22.3 | 858 | £723 |
| Brand Shopping | Shopping | 19.0 | 550 | £516 |
| PMax Knife Rack (paused) | PMax | 14.2 | 2,394 | £705 |
Three campaigns comfortably exceed the 30-conversion threshold on purchases alone. They do not need ATC/BC signal.
Four campaigns fall below. Of these:
- Shopping Catch All Under 20 (27.0) is close enough that minor volume fluctuations will push it over. ATC/BC signal adds marginal benefit.
- PMax Table Tops (22.3) and Brand Shopping (19.0) are meaningfully below threshold. These are the candidates where more signal has the strongest theoretical justification.
- PMax Knife Rack (14.2) is paused.
The problem: the agency applied the change account-wide rather than per-campaign. Google Ads allows setting conversion actions as primary at the campaign level. The three high-volume campaigns didn’t need this change.
How Smart Bidding uses signal across the catalogue
This is the core question: with 720 active offers and most of them converting rarely or never, does ATC/BC signal help Smart Bidding make better per-product decisions?
The sparsity problem
Last 30 days across all Shopping/PMax campaigns:
| Metric | Value |
|---|---|
| Total active offers | 720 |
| Offers with any conversion | 96 (13.3%) |
| Offers with 1+ conversions | 70 (9.7%) |
| Offers with 5+ conversions | 10 (1.4%) |
| Average conversions per offer | 0.30 |
87% of the catalogue had zero conversions in a month. Smart Bidding has no per-SKU purchase signal for the vast majority of products.
Hairpin legs: the dominant category
310 of 720 offers (43%) are hairpin legs. Their signal is just as sparse:
| Bracket | Offers | Conversions | Clicks |
|---|---|---|---|
| 5+ conversions | 4 (1.3%) | 44.9 | 827 |
| 1-4 conversions | 12 (3.9%) | 19.3 | 267 |
| < 1 conversion | 8 (2.6%) | 4.5 | 68 |
| Zero conversions | 286 (92.3%) | 0.0 | 161 |
Four hairpin leg offers drive 65.4% of all hairpin leg conversions. The remaining 306 offers share the other 34.6%, and 286 of them converted zero times.
Product type cluster signal
| Product type | Offers | Conv/30d | Clicks |
|---|---|---|---|
| Hairpin Leg | 310 | 68.7 | 1,323 |
| Wall Hook | 49 | 37.0 | 784 |
| Table | 62 | 21.0 | 626 |
| Table Leg | 32 | 20.8 | 644 |
| Box Section Leg | 81 | 20.1 | 1,142 |
| Knife Rack | 5 | 19.0 | 2,290 |
| Table Leg Frame | 35 | 14.0 | 653 |
| Table Top | 15 | 6.0 | 431 |
| Furniture Knob | 24 | 3.0 | 20 |
| Bench Leg | 3 | 2.0 | 133 |
| Floor Protector | 10 | 2.0 | 30 |
| Furniture Handle | 42 | 1.0 | 92 |
| Shelving | 6 | 1.0 | 66 |
| Stool | 15 | 1.0 | 47 |
| Adjustable Foot | 1 | 0.0 | 3 |
| Shelf Brackets | 2 | 0.0 | 7 |
| Stool Base | 2 | 0.0 | 20 |
| Stool Top | 2 | 0.0 | 32 |
How Google handles sparse per-SKU signal
Smart Bidding does not learn at the individual SKU level alone. It uses a multi-level hierarchy:
-
Audience signals (highest level): Device, location, time of day, demographics, in-market audiences, remarketing lists. These apply across the entire account and don’t depend on per-product data at all.
-
Product type / category clustering (mid level): Google groups products by attributes from the feed — product type, brand, custom labels, price range. Conversion patterns for “Hairpin Leg” as a category inform bids for individual hairpin leg offers, even those with zero individual conversions.
-
Individual SKU (lowest level): Click-through rate, price, historical conversion rate for this specific offer. Only meaningful for the ~10% of offers with conversion data.
The audience-level learning is already happening. Google knows that “someone searching for ‘metal table legs uk’ from Birmingham on a desktop at 7pm” converts at X rate, regardless of which specific table leg they click. This signal comes from purchases across the entire account.
The product-clustering level is where the question gets interesting. The hairpin leg cluster has 68.7 conversions/month — well above the 30-conversion threshold. Google already has enough purchase signal at the cluster level to bid on any individual hairpin leg. Wall hooks (37.0), tables (21.0), table legs (20.8), box section legs (20.1), and knife racks (19.0) all have material cluster-level signal too.
Does ATC/BC signal add value?
At the audience level: No. Google already has 250-300 purchase signals per month at the account level. The audience model is not data-starved.
At the product cluster level: Marginal at best. The top 6 product types have 10-70 purchases each, giving Google reasonable cluster-level signal. ATC events would increase the hairpin leg cluster from ~69 purchase signals to ~69 + ~200 ATC signals (extrapolating from the daily rate), but the added signals carry distorted value data (£70 ATC vs £122 purchase) and uncertain conversion probability.
At the individual SKU level: This is the only level where more signal has a plausible benefit. An offer with 0 purchases but 3 ATCs gives Google something to work with. But the value signal is wrong — Smart Bidding would see those 3 ATCs at £70 each and bid as though the offer generates £210 in value, when it may generate £0 (3 abandoned carts).
The fundamental issue: ATC signal increases volume but decreases signal quality. Smart Bidding is designed to maximise conversion value. If it receives conversion signals whose stated value is 2-4x their true value, its bid calculations will be systematically too high.
Concrete risks
1. Bid inflation on high-ATC, low-purchase products
Products that attract browsing (ATCs) but don’t convert to purchases will receive disproportionate bidding. Smart Bidding sees high conversion value and bids aggressively. In reality, those ATCs largely represent abandoned carts.
This is the desk-s-grey-ye problem from Feb 12: Smart Bidding sees £599 in value from £186 in spend. The actual purchase revenue was £140.
2. Unreadable reporting
Every metric that relies on conversions or conversion_value is now a blend of three different event types with different completion probabilities and different values. ROAS, CPA, conversion rate, and conversion value all become misleading.
The reported 14.76x ROAS on Feb 12 is not just inflated — it’s unactionable. You cannot compare it to pre-switch data or to business targets denominated in revenue.
3. tROAS target invalidation
All existing tROAS targets were set based on purchase-only conversions. The Shopping Catch All Over 20 campaign had its tROAS lowered from 4.00x to 3.50x on Feb 10 — calibrated to purchase ROAS. With ATC/BC inflating conversion values by ~2.7x, a 3.50x tROAS target becomes trivially easy to hit. The algorithm will bid more aggressively (higher CPCs, lower-intent auctions) because it “sees” more value per click.
4. Learning period disruption
Changing primary conversion actions triggers a Smart Bidding relearning period, typically 1-2 weeks. Combined with the other changes made in the same window (tROAS adjustments, Brand Search restructuring), there is no stable baseline to measure against.
5. The ATC-to-purchase ratio is unstable
The daily ATC volume from all_conversions data ranges from 15 to 33 per day (Feb 5-12). Purchase volume ranges from 5 to 14 per day. The ATC:Purchase ratio fluctuates from 1.8:1 to 7.4:1 daily. This instability means Smart Bidding receives a noisy signal — the relationship between ATC count and actual revenue is not consistent enough to be predictive.
What to monitor
These metrics should be tracked weekly, using purchase-only data (filtered by conversion action ID 6502064113, 6496401347, 6581855675):
| Metric | Pre-switch baseline | What to watch for |
|---|---|---|
| Purchase-only ROAS | 2.83x (30d avg) | Drop below 2.5x = overbidding |
| Daily purchase count | ~9.8/day | Drop below ~7/day = signal problem |
| Cost per purchase | ~£34 | Rise above £45 = bid inflation |
| ATC:Purchase ratio | n/a (new metric) | Rising ratio = more wasted ATCs |
| Avg CPC | varies by campaign | Rising CPCs = overbidding on auctions |
| Impression share (Shopping) | check current | Could increase if bids rise |
The purchase-only columns (purchase_conversions, purchase_conversion_value_micros) in google_ads_product_raw_daily and google_ads_search_term_daily provide clean signal regardless of the primary/secondary switch.
Alternatives
1. Revert ATC/BC to secondary (recommended first step)
Return ATC and BC to secondary status. Smart Bidding goes back to optimising on purchases only. Reporting becomes clean again. The 3 high-volume campaigns lose nothing. Allow 2 weeks for the algorithm to restabilise.
2. Fractional conversion values
If the goal is to add funnel signal without inflating value, assign ATC and BC fixed fractional values that reflect their true expected contribution:
| Event | Current avg value | Estimated true value | Suggested fixed value |
|---|---|---|---|
| Purchase | £122 (actual revenue) | £122 | Keep as-is |
| Begin Checkout | £103 (cart value) | ~£85 (70% conversion rate) | £15-20 |
| Add to Cart | £70 (cart value) | ~£25 (30-35% conversion rate) | £5-10 |
This requires Analyzify/GTM configuration changes. The fractional values should be based on the account’s actual ATC-to-purchase conversion rate, not just a guess.
3. Per-campaign primary actions
Google Ads supports campaign-level conversion goals. Apply ATC/BC as primary only for campaigns that genuinely lack signal:
| Campaign | Purchase signal | ATC/BC primary? |
|---|---|---|
| Shopping Catch All Over 20 | 94.4/month | No |
| Brand Search | 59.6/month | No |
| Shopping Top Performers | 50.8/month | No |
| Shopping Catch All Under 20 | 27.0/month | Maybe |
| PMax Table Tops | 22.3/month | Maybe |
| Brand Shopping | 19.0/month | Maybe |
Even for the sub-30 campaigns, the fractional value approach from option 2 should be applied.
4. Enhanced Conversions
If signal quality is the concern rather than signal volume, Enhanced Conversions improves attribution accuracy by matching more conversions to clicks (using hashed customer data). This increases the conversion count without adding non-purchase events. Already partially configured via Analyzify.
Assessment
The agency’s argument has one valid premise: Smart Bidding performs better with more conversion signals. But the execution is wrong for this account, for three reasons:
First, the signal volume problem is overstated. Three of seven campaigns already exceed the 30-conversion threshold on purchases alone. The account generates 250-300 purchase conversions per month. Google’s multi-level learning hierarchy (audience > product cluster > SKU) means even the sparse long-tail of the catalogue gets reasonable bid decisions from cluster-level and audience-level signal.
Second, the value signal is distorted. Analyzify assigns cart value (not expected purchase value) to ATC/BC events. An add-to-cart valued at £70 that has a 30-35% chance of becoming a purchase has a true expected value of ~£25. Smart Bidding doesn’t know this. It will systematically overbid for clicks that generate ATCs but not purchases.
Third, the change was applied account-wide rather than targeted. Even if ATC/BC signal helped the 3-4 campaigns below the 30-conversion threshold, applying it to the high-volume campaigns adds noise to a system that was already working.
Recommendation: Revert ATC/BC to secondary. If the agency wants to experiment with funnel signals for the low-volume campaigns, do it per-campaign with fractional values calibrated to the actual ATC-to-purchase conversion rate. Measure the impact over 4-6 weeks against purchase-only metrics before expanding.