Acentecom · Google Ads + Merchant Center + Search Console + Triple Whale

Portfolio audit

Full audit of the 9-brand DTC portfolio, built in phases: feed and organic (Aug 31), Google Ads accounts and Brand Search (Sep 1), brand × channel matrix with Triple Whale ACQ ROAS and geographic focus (Sep 2), 24-month change history (Sep 3), and targets confirmed in the Sep 3 kickoff. Everything is API-verifiable — no figure comes from a screenshot.

Window: Aug 3 – Sep 1, 2026 (30d) MCC 4378479642 Updated: Sep 3, 2026
01

Executive summary

USD 1.16M/month in Google, 96.9% of it in the United States. Measured against the targets confirmed on Sep 3, four findings hold almost all the actionable value.

$779,928
monthly spend running below 85% of its own ACQ ROAS target — 70% of the portfolio
216–296%
of target hit by brand PMax in all three brands that run it — on 2.4% of budget
1.79
purchase ROAS on the cheapest, purest brand query there is. The 5–6× brand target has a ceiling
37%
of the targeted inventory in Ledisa's PMax asset group disapproved in the feed
Finding 1

The money is not where the return is

Brand PMax returns 216–296% of its 1.6 target in Ledisa, Cleantra and Nervalley — and receives 2.4% of the budget. Meanwhile Cleantra Non-Brand Search sits at 78% of its 1.3 target on USD 437k, and Ledisa Non-Brand at 75% on USD 171k. This is an allocation problem, not an execution one.

Finding 2 — needs a decision, not a fix

A 5–6× brand ROAS target cannot be reached by lowering bids

Ledisa's brand traffic, sorted cheapest query to most expensive, tops out at 1.79 on ledisa alone at a $2.87 CPC. Cutting bids lifts ROAS only until the cheap clicks run out, and they run out at 1.79. What lower bids do achieve is ceding the auction on our own brand term — partly to our own metabolicreviews account, which buys the same exact keywords. The real question is whether 5–6× is measured on first order or on subscription LTV. See §03.

Finding 3

The single highest-return fix in the portfolio is nine product titles

They unblock 24 of 65 item IDs (37%) in the asset group that spends USD 68,786/month at the brand's best channel ROAS. The copy is the problem, not the product — and the eleven safe variants are already written and approved.

Finding 4

Brand Search is missing or starved in five of nine brands

Wellanova, RejuvaPaw and GL-ME have no brand campaign at all. Cleantra has six, funded at 0.7% of the brand's spend while returning ACQ ROAS 2.97 against 1.02 for its non-brand. Brand PMax is already capturing 9,310 brand clicks a month with no per-term bid control.

02

Portfolio structure

The split into accounts (Brand - Search, Brand - Shopping / PMAX, Brand - DGEN) is billing plumbing, not a decision unit. What gets decided is brand × channel. The in-house naming convention already makes that cut machine-readable: ONB = own brand · COMP = generic and competitor · PMAX_BRAND vs PMAX_GENERIC · MR_* = campaigns from the metabolicreviews.com comparison site.

How to read the three ROAS columns

They answer different questions and are not supposed to reconcile

Purchase-only ROAS — Google Ads, with conversions_value decomposed by segments.conversion_action_name and summed over purchase actions only. Google's own attribution, last click within Google.
ACQ ROAS — Triple Whale, literal column new_customer_order_revenue / spend on pixel_joined_tvf (the metric TW calls new_customer_roas). This is the acquisition ROAS the team steers on. It appears twice because TW returns a different number per model: TA = Triple Attribution, 7_days window — the operating metric — and LC = Last Click, same window, the honest floor. Query TW without pinning the model and it silently returns Triple Attribution.

Targets confirmed Sep 3, all on ACQ ROAS · TA: Non-Brand Search 1.3 · Shopping and PMax 1.6. Brand is under review — see §03. Demand Gen has no stated target. The vs target column is ACQ TA divided by that number.

BrandChannelSpend 30dPurchase-only ROAS
Google Ads
ACQ ROAS
TW · TA · 7d
vs target
ACQ ROAS
TW · LC · 7d
Read
Cleantra
$502,493
Search Brand$2,9642.362.97
54%
2.18exists but starved: 0.7% of the brand’s spend
Search Non-Brand$436,8990.841.02
78%
0.82$437k at 78% of target — the single largest gap
PMax Brand$14,0103.443.46
216%
2.69best ACQ in the portfolio
PMax Non-Brand$45,5311.501.25
78%
0.93
Demand Gen$3,0880.25no rows in TW
Ledisa
$348,697
Search Brand$74,2111.391.57
29%
0.9753% goes to “reviews” queries — §03
Search Non-Brand$170,7601.040.98
75%
0.64
PMax Brand$11,9734.223.50
219%
2.24best ACQ in the brand
PMax Non-Brand$68,2921.551.38
86%
0.7237% of targeted inventory disapproved — §04
Demand Gen$23,4600.630.260.13paused on policy · no geo set
Nervalley
$134,087
Search Brand$6,6203.364.55
83%
3.49
Search Non-Brand$122,5641.211.38
106%
1.10inflated report — §05
PMax Brand$1,2842.694.73
296%
3.50296% of target on $1.3k
PMax Non-Brand$3,6191.361.84
115%
1.48
Wellanova
$51,314
Search Non-Brand$51,3141.041.15
89%
1.04no brand campaign
Rejuvapaw
$44,423
Search Non-Brand$44,4230.981.16
89%
1.10no brand campaign · inflated §05
Blueforce
$20,683
Search Brand$1,8514.686.10
111%
4.65above target
Search Non-Brand$18,8320.960.84
64%
0.66
metabolicreviews
$14,182
Search Brand$14,1821.012.40
44%
1.33the comparison site — buys other brands’ review terms
Celmor
$12,466
Search Brand$2282.546.81
124%
3.32
Search Non-Brand$12,2381.161.37
106%
0.03ACQ LC 0.03 · pixel, not performance
GL-ME
$9,928
Search Non-Brand$9,9280.260.26
20%
0.25feed suspended, still spending
Serabel
$6,322
Search Brand$2052.311.79
33%
0.77
Search Non-Brand$6,1171.181.41
109%
1.27

$779,928 a month — 70% of the spend that has an ACQ reading — runs below 85% of its own target. $164,029 sits close (85–99%) and $173,657 is on or above. The two cells furthest above target, brand PMax in Ledisa and Cleantra, together carry $25,983.

Shopping Brand and Shopping Non-Brand are absent for every brand, and that is not neglect. Selmore and BlueForce are built and waiting on shopping images. More fundamentally, Shopping does not accept subscription offers under Google policy — it requires a genuine one-time purchase — which is the real constraint on every subscription-first brand in the portfolio, and the root of the BlueForce Merchant Center notice in §06.

Geographic focus

Measured on each campaign's actual location criteria (campaign_criterion.location), not on the name.

MarketSpend 30dShareWho serves there
United States$1,109,22496.9%all nine brands plus the comparison site
Canada$8,0850.7%Cleantra and Ledisa only, Non-Brand Search only
Australia$3,8260.3%Cleantra and Ledisa only, Non-Brand Search only
No location criterion$23,4602.0%7 Ledisa Demand Gen campaigns
How countries are separated

One campaign per country, with the country in the name

No geo bid modifiers, no ad-group segmentation: each market is a separate campaign with a single location criterion and the country token in the name — _US_, _CAN_, _AUS_. This is the right architecture: budget, bids and creative stay isolated per market.

Label that does not match reality

Ledisa's seven Demand Gen campaigns are named _US_ and carried no country restriction

The name says US, the location criterion does not exist, so they served worldwide on $23,460. All seven are paused today — for policy reasons, per the Sep 3 kickoff — and a 0.63 purchase ROAS with 0.13 ACQ Last Click is consistent with out-of-market traffic. Set the geo as part of the funnel rebuild, not before it.

Outside the United States the portfolio is marginal (1.0% of spend) and exclusively Non-Brand Search: no international market has a brand campaign, PMax, Shopping or Demand Gen. The bottleneck is execution speed — getting Canada and Australia URLs for Ledisa took roughly a week when the only change needed was currency.

New to the inventory

The portfolio is larger than nine brands

metabolicreviews.com ($14,182/30d — the comparison site), plus FaithValley APP, Monier, Patch4U, VIORY and the Honest Care sub-MCC. The 24-month history adds Serabel Advertorial, GL-ME GIGI Advertorial and GL-ME GIGI PDP: the editorial funnel architecture is long-running and deliberate, not an experiment.

Idle capacity

12 active accounts at $0 spend

The Shopping/PMAX accounts for BlueForce, Celmor, GL-ME, RejuvaPaw, Serabel and Wellanova all exist and none is used. Part of it is the subscription-vs-Shopping policy constraint; part is Wellanova, which has 199 healthy products in 26 countries and simply is not linked to Ads.

12-week trend — weekly purchase-only ROAS

Bars run Jun 8 → Aug 24 (the partial week of Aug 31 is omitted). Red = week below ROAS 1.0. Google Ads series, purchase conversions only.

Cleantra Search 1.17 → 0.75

Jun 8Aug 24

Ledisa Search 1.50 → 1.11

Jun 8Aug 24

Ledisa PMax 3.44 → 1.66

Jun 8Aug 24

Cleantra PMax 2.48–3.03 → 1.61

Jun 8Aug 24

The decline is broad — Search and PMax, two brands — which fits seasonality plus creative fatigue plus competition rather than one discrete mistake. Creative fatigue has a specific cause here: ads have been paused on policy grounds since July, so iteration stopped (§07).

03

Brand Search (ONB)

All 22 enabled brand campaigns lose impression share, and the loss is entirely to rank — 0% to budget (the one exception is 0.5% on LD_GLP_ONB_US_mCPC). That is by design: brand CPCs were reduced deliberately in pursuit of a higher brand ROAS. This section is about whether that target is reachable.

BrandACQ ROAS
TW · TA · LC
Campaign · biddingSpend 30dCPCPurchase ROAS
Google Ads
Impr. share
Ledisa1.32 · 0.79LD_GLP_ONB_US_Search_REVIEW
tROAS
$49,377$4.161.21
68.1%
Ledisa2.07 · 1.32LD_GLP_ONB_US_mCPC
Manual CPC
$24,834$2.831.73
60.6%
metabolicreviews1.05 · 0.49MR_LD_GLP_ONB_US_Search_REVIEW_tROAS_Portfolio
tROAS portfolio
$9,793$2.641.32
42.5%
Nervalley4.55 · 3.49NV_MAGCR_ONB_US_Search
tROAS
$6,620$1.923.36
73.9%
metabolicreviews— · —MR_CL_LYMPH_ONB_US_Search_REVIEW
Manual CPC
$2,843$2.160.23
52.1%
Blueforce6.10 · 4.65BF_FUSION_ONB_US_Search
Manual CPC
$1,851$1.604.68
32.9%
Cleantra4.29 · 3.13CL_ONB_GENERAL_US_Search_mCPC
Manual CPC
$1,387$1.273.99
59.8%
Cleantra1.76 · 1.66CL_PARA_ONB_US_Search_mCPC
Manual CPC
$771$3.090.68
61.5%
Cleantra2.21 · 1.14CL_LYMPH_ONB_US_Search_mCPC
Manual CPC
$616$1.341.16
25.3%
metabolicreviews— · —MR_NV_MAGCR_ONB_US_Search_REVIEW
Manual CPC
$606$1.250.67
51.0%
metabolicreviews— · —MR_SB_BALM_ONB_US_Search_REVIEW
Manual CPC
$530$1.550.38
49.3%
Celmor6.81 · 3.32CL_Oil_ONB_US_Search
Manual CPC
$228$1.272.54
47.6%
Serabel1.79 · 0.77SB_BALM_ONB_US_mCPC
Manual CPC
$205$1.152.31
51.2%
metabolicreviews— · —MR_BF_FUSION_ONB_US_Search_REVIEW
Manual CPC
$169$1.240.35
66.7%
metabolicreviews— · —MR_CL_OREG_ONB_US_Search_REVIEW
Manual CPC
$91$1.470.00
40.0%
metabolicreviews— · 0.00MR_CL_Oil_ONB_US_Search_REVIEW
Manual CPC
$89$1.230.00
35.2%
Cleantra0.00 · 0.00CL_SOUR_ONB_US_Search_tCPA
Max Conv
$86$2.160.00
50.0%
Cleantra2.23 · 2.23CL_ASTA_ONB_US_Search_mCPC
Manual CPC
$55$1.283.99
32.3%
Cleantra0.00 · 0.00CL_OREG_ONB_US_Search_mCPC
Manual CPC
$50$1.280.00
31.8%
metabolicreviews— · —MR_CL_ASTA_ONB_US_Search_REVIEW
Manual CPC
$41$1.280.00
23.1%
metabolicreviews— · 0.00MR_CL_PARA_ONB_US_Search_REVIEW
Manual CPC
$15$1.270.00
29.1%
metabolicreviews0.00 · 0.00MR_CL_SOUR_ONB_US_Search_REVIEW
Manual CPC
$4$1.240.00
36.2%

The brand ROAS ceiling

Ledisa's brand traffic, mined from 30 days of actual search terms and sorted from the cheapest query to the most expensive. The last column is the ROAS that would remain if everything below that row were removed.

Query typeExampleClicksSpendCPCPurchase ROASROAS if you cut here
Coreledisa2,853$8,176$2.871.791.79
Productsledisa patches, does ledisa patches work7,168$21,493$3.001.541.61
Where to buyledisa website, ledisa patches amazon394$1,098$2.791.721.61
Couponsledisa coupon code, how much is ledisa70$198$2.820.521.61
Reviewsledisa reviews, is ledisa legit7,596$35,094$4.621.211.39
The number that decides the brand strategy

Not even the cheapest, purest brand query reaches 1.8

ledisa on its own, at a $2.87 CPC, returns 1.79. Everything above that price returns less. Lowering bids raises ROAS only until the cheap clicks run out, and they run out at 1.79 — so a 5–6× brand target is not reachable through the bid lever at any level. What lower bids do accomplish is ceding auction share on our own brand term, part of it to our own metabolicreviews account, which buys the same exact keywords at a $2.64 CPC.

That turns "get brand to 5–6×" into two questions, and both belong to leadership rather than to the account: is 5–6× measured on first order or on subscription LTV? And if it is first order, does 5–6× mean spending less on brand and accepting the lost auction share? Either answer is workable. What does not work is holding a first-order target the traffic cannot produce.

The structural answer: five exact-match campaigns per brand

Today Core (1.79 at $2.87) and Reviews (1.21 at $4.62) share a campaign and a bid target, so they cannot be priced differently. Split, the core term is defended cheaply and the expensive tier gets its own ceiling. This is the only route to a higher brand ROAS that does not involve giving away the brand term.

Proposed campaignWhat it capturesWhy it deserves its own bid
Corethe brand alone — ledisa, cleantraHighest return, lowest CPC. Bid to hold near-total impression share.
Products / Modifiersbrand plus product or doubt — ledisa patches, ledisa patches side effectsLargest click volume. Mid return, mid CPC.
Reviewsledisa reviews, is ledisa legit53% of brand spend at the worst CPC and the worst ROAS. Needs its own ceiling — and its own landing page.
Where to buyledisa website, ledisa costcoNear-core return, tiny volume. Cheap to own outright.
Coupons / Discountsledisa coupon code, ledisa cost0.52 ROAS. Either a margin decision or a candidate to stop buying.

Cleantra's brand mirrors the point from the other side: Core returns 3.96 on 958 clicks while Reviews has only 15 clicks — not because the demand is absent, but because the campaign is not pursuing it on 0.7% of the brand's budget.

Mining the brand queries PMax is already buying

Brand PMax campaigns are capturing brand queries today, with no per-term bid control, no negatives and no way to separate intent. That is exactly the inventory that should migrate into the new structure, on exact match.

PMax campaignClicks 30dOwn-brand clicks% brandConversions from brand
LD_GLP_PDP_US_PMAX_BRAND_tROAS6,3604,74974.7%679
CL_LYMPH_PDP_US_PMAX_BRAND_tROAS6,7793,55352.4%428
CL_OREG_PDP_US_PMAX_BRAND_tROAS83240148.2%35
CL_ASTA / CL_SOUR / CL_PARA PMAX_BRAND1,26635227.8%33
The six GENERIC PMax campaigns30,6732550.8%18

The GENERIC campaigns are clean at 0.8% brand leakage, so the brand negatives are correctly placed. The work is in the BRAND campaigns: 4,788 brand clicks in Ledisa and 4,522 in Cleantra bought blind. The categories returned by campaign_search_term_insight fall straight into the five buckets — ledisa patches (2,916), cleantra lymphatic drainage (1,324), ledisa glp 1 patches reviews (267), cleantra reviews (325).

Method note: campaign_search_term_insight returns aggregated categories, not raw queries, and accepts only one campaign_id per request. It is good for sizing and for seeding the exact-match set; fine negatives get tuned afterwards from Search terms. The reverse leak is already controlled: Cleantra's and Ledisa's COMP campaigns spent $16 in 30 days on brand queries.

Structural gap

Cleantra has brand campaigns; three brands have none

Cleantra runs six enabled ONB campaigns spending $2,964 against $436,899 of non-brand — 0.7% — while returning purchase ROAS 2.36 and ACQ Last Click 2.18 against 0.84 and 0.82 for non-brand. Wellanova, RejuvaPaw and GL-ME have no brand campaign at all.

Deliberate architecture

Ledisa and metabolicreviews bid the same review terms

Ledisa's account: $49,377 at 68.1% IS. The MR account: $9,793 at 42.5% IS, on the same exacts. With roughly 90% of portfolio spend flowing through top-five editorial comparison funnels, this is near-certainly intentional dual SERP presence. What is worth confirming is who sets the split, and that the eight non-Ledisa MR campaigns — running between 0.00 and 0.67 purchase ROAS — are meant to.

Where the expansion is

  1. Settle the brand target first. Everything below depends on whether 5–6× is a first-order or an LTV number. Bring the ceiling table to that conversation.
  2. Build the five-campaign exact structure in Ledisa and Cleantra, which are 88% of brand spend — seeded from the mined Search terms plus the brand categories PMax captures today.
  3. Fund Cleantra's brand. It exists, it returns 2.36 against 0.84 for non-brand, and it gets 0.7% of the money at 25–62% impression share. Nothing needs building.
  4. Create brand campaigns for Wellanova, RejuvaPaw and GL-ME. The internal benchmark holds: brand PMax returns 2.69–4.22 and brand Search 2.31–4.68 on purchase ROAS.
  5. Give Reviews its own landing page, not just its own bid. It is 53% of brand spend at a $4.62 CPC against a $2.87 core — and review intent is the one brand query an editorial comparison page is actually built to answer.
04

PMax ↔ Merchant Center: the bridge nobody crosses

The asset groups are "Feed Only" and hand-pick product item IDs. If an ID is disapproved for the DisplayAds destination — the one that feeds PMax — the group is bidding on inventory it cannot serve. Google reports this as ordinary auction loss; Merchant Center reports it as a feed statistic; nobody joins the two.

Asset groupSpend 30dROASTargeted IDsDisapproved
Ledisa · GLP-1 Feed Only$68,7861.526524 · 37%
Ledisa · NAD+ Patches$070 — healthy and switched off
Cleantra · LYMPH Feed Only$11,0643.46100
Cleantra · SOUR Feed Only$5402.06103 · 30%
Cleantra · OREG Feed Only$1,1683.21102 · 20%
Cleantra · ASTA Feed Only$1,1253.20101 · 10%
Cleantra · PARA Feed Only$3523.37100

In Ledisa the cause is copy, not product: the same physical SKU appears in around 30 title variants, and Google blocks only the ones using body-outcome language (personal_hardships_policy_violation). The same five to nine variants repeat across US/UK/CAN/AUS — fixing nine titles unblocks all 24 IDs.

✓ Approved — wellness language
  • "GLP 1 Patches – Daily GLP 1 Patches for Wellness and Balance"
  • "GLP 1 Patches – Gentle GLP 1 Patches for Daily Wellness"
  • "GLP 1 Patches – Modern GLP 1 Patches with Plant-Based Support"
✗ Blocked — outcome language
  • "Fastest Way to Lose Weight – GLP-1 Weight Loss Patch…"
  • "Ledisa Slim Patch – GLP-1 Slimming Patch… for Fat Loss"
  • "Weight Loss Patch for Women – … Slimming"

Words present only in the blocked set: glp-1 (hyphenated), fat, burn, cravings, berberine. The eleven safe variants are already written and approved — nothing needs drafting, only withdrawing. Cleantra's six blocks follow no title pattern and need manual review.

05

Measurement: the report is inflated, the bidding is not

In two accounts, Advertorial Click (fixed $1 value) counts inside conversions and conversions_value. The biddable account-level goal is purchase only, so the algorithm optimises correctly. The damage is human: tROAS targets look met when they are not. Both ROAS columns in this table are Google Ads, not Triple Whale — see §09.

AccounttROAS targetReported ROAS
Google Ads, as-is
Purchase-only ROAS
Google Ads
Status
Nervalley - Search1.401.491.3588% of the count is advertorial click
RejuvaPaw - Search1.201.080.99below 1.0 real against a 1.20 target
The other 12 accountsreported value = purchase valueclean

With editorial funnels carrying roughly 90% of spend, an advertorial-click signal may well be deliberate — but if so it belongs outside conversion value. Either way the targets need recalibrating: to demand a real 1.40 in Nervalley the tROAS would have to read about 1.55. Also worth stating plainly: zero bleeding — no search term above $300 with 0 purchases in 30 days, verified counting purchases only — and one primary conversion per account.

06

Merchant Center & Search Console

Summary of the Aug 31 phase, re-read against what the Sep 3 kickoff clarified.

Deadline Sep 6

BlueForce: the suspension notice is a policy collision, not a feed bug

Google flagged the account for Unsupported Shopping content (Recurring billing). The mechanism is now clear: Shopping requires a genuine one-time purchase and does not accept subscription offers. Every visible CTA on the sales page routes to CheckoutChamp's recurring branch with no visible disclosure, and someone hid the disclosure with CSS (display:none on the subscription row). Hiding it converts a policy notice into Misrepresentation — the same cause that already took down CELMOR and GL-ME. The fix is a real one-time purchase path with clear disclosure, not better concealment.

Active suspensions

GL-ME and CELMOR suspended for Misrepresentation

GL-ME: 165 products, 0 active, 8 countries — which explains the Aug 20 blackout; its Search still spends $9,928/month at ROAS 0.26. CELMOR: all 38 products arrive without a link attribute from the Shopify app, and the declared domain is not the indexed one. Every account in the portfolio has been suspended at least once; there is a dedicated policy owner and a Google rep meeting every 14 days.

Unused asset

Wellanova: 199 healthy products in 26 countries, not linked to Ads

The largest catalogue in the portfolio cannot serve anywhere. The Wellanova - Shopping / PMAX account already exists and sits at zero — link it and test.

Search Console

Organic is entirely navigational and support traffic

Not one generic query in the top results of any property — it is all "ledisa login", "cleantra customer service number". The double domains are one Shopify store with no redirect (same shopId): on trycleantra.com, "cleantra" ranks p10 competing against its own twin. The comparison sites are not in Search Console, so the "it builds an organic asset" thesis remains unevidenced.

Coverage gaps confirmed with the team on Sep 2: there is no Search Console property for Nervalley, BlueForce, RejuvaPaw or GL-ME, and no Merchant Center account for RejuvaPaw, Serabel or Nervalley. These are not pending permissions — the properties do not exist. That reframes one finding: Nervalley runs PMax on $4,902/30d with no Merchant Center account of its own, which needs understanding before it is scaled.

07

Account management

Two overlapping readings: the 28 days the API returns (Aug 4 → Sep 1) and the 24 months of the full export (21,144 changes, Sep 2024 → Sep 2026). The second corrects the first on important points, and the Sep 3 kickoff corrects both.

18,457
changes by the lead operator — 87% of all activity, across three sign-in identities
13 months
tenure, from Aug 2025, with 24–30 active days every single month
100%
via the web interface — no scripts, no rules, no Editor, no API
2nd
handover in 14 months: the accounts came from another agency in Jul 2025
MonthChangesActive daysKeyword bidsBid targets / strategyAds and assets
2026-039922920612111
2026-042,94229513241282
2026-052,31024314141474
2026-062,31526412300197
2026-078762610821315
2026-081,2922523340912
The 28-day window was misleading

Cadence never dropped, and the response used the right lever

24 to 30 active days every month for thirteen months, never below 24 — the "19 of 28 days" from the short window was simply the normal rhythm. And bid-target changes peak at 409 in August, the highest of the thirteen months, while keyword bids fall from 412 in June to 108 in July. In a portfolio almost entirely on tROAS, moving the target is the lever that works and the keyword bid is not.

Explained by the kickoff

Creative work stopped for a policy reason, not a resourcing one

Ad and asset changes fall from 474 in May to 15 in July and 12 in August. The cause is Google policy: ads are flagged and paused on landing-page copy, quiz funnels and native-style creative. Every account has been suspended at least once. This is an external constraint on the account, not an omission by it — and it is the strongest available explanation for the creative-fatigue half of the portfolio decline.

What still stands

Timing, allocation of attention, and the absence of automation

The strategic response landed roughly six weeks after the decline began, and there is no written record of it being communicated — the lead operator has not posted in Slack since May 9, and his entire Slack footprint (Apr 20 – May 9) is MCC architecture and tracking rather than performance. In the 28-day window, 83% of changes went to one account while Cleantra, at 39% of spend, received 6%. The Aug 25 batch of 2,624 keyword bids sat inside tROAS campaigns where they are inert, running against his own July shift. Cleantra's fourteen COMP campaigns still carry a flat tROAS of 0.9 while returning between 0.40 and 1.11 — and against a stated non-brand target of 1.3, the written objective is below the real one. And there is no automation of any kind across a USD 1.16M/month portfolio.

Fair reading

Defensible, and more of it than the short window suggested: thirteen months at 24–30 active days, no weak month; zero bleeding in search terms; one correctly configured primary conversion per account; the COMP/ONB/PMAX-brand separation and the brand negatives in generic campaigns are deliberate, clean architecture; the MCC-per-brand proposal with shared conversion learning was his and it was right; and in August he moved to the lever that actually operates under tROAS. He also inherited these accounts from another agency fourteen months ago.

What the audit cannot see, and should be asked rather than inferred: whether proposals were made and not approved, and whether the creative stop was a block imposed elsewhere. Both would change the reading, and neither is derivable from the data.

How we improve it

  1. Effort proportional to spend: a fixed weekly review per account weighted by spend. Cleantra cannot receive 6% of the attention on 39% of the money.
  2. The right lever per bid strategy: under tROAS you move the target and the terms; keyword bids only under Manual CPC.
  3. Automate the mechanical work: a brand impression-share watchdog, a bleeding rule, a feed ↔ PMax monitor, and a daily Slack performance report with day-over-day, week-over-week, target comparison and RAG status — built on top of the existing daily data pull rather than beside it.
  4. Differentiated tROAS per campaign based on real purchase ROAS, recalibrated without advertorial-click value, and aligned to the stated 1.3 / 1.6 targets.
  5. Inefficient spend paused within 48 hours: GL-ME at 0.26 and MR_CL_LYMPH at 0.23 should not wait for a monthly cycle.
08

Prioritised action plan

  1. decision needed Settle the brand ROAS target. Is 5–6× measured on first order or on subscription LTV? The ceiling table in §03 shows the bid lever cannot deliver it on first order. Everything in brand depends on this answer.
  2. before Sep 6 BlueForce Merchant Center: define the real offer, remove the display:none on the disclosure, and expose a genuine one-time purchase path. Shopping does not accept subscription offers, so this is the structural fix, not a workaround. Check whether Ledisa and Cleantra share the funnel pattern — that is where USD 140k/month of PMax is exposed.
  3. highest return Ledisa: withdraw or rewrite the nine blocked titles → unblocks 37% of the inventory in a $68,786/month asset group at the brand's best channel ROAS.
  4. Reallocate toward brand PMax. It returns 216–296% of target in three brands on 2.4% of budget while $779,928/month runs below 85% of target. This is the largest single lever in the portfolio and it needs no new build.
  5. Brand structure: build the five exact-match campaigns in Ledisa and Cleantra, fund Cleantra's existing brand campaigns, and create brand Search for Wellanova, RejuvaPaw and GL-ME.
  6. Landing page velocity. Roughly 90% of spend flows through top-five editorial comparison funnels that have not been iterated in over a year, and requests to the internal team take weeks. Producing publish-ready HTML directly removes the bottleneck — starting with a dedicated page for review-intent brand traffic.
  7. Measurement: remove Advertorial Click from conversion value in Nervalley and RejuvaPaw and recalibrate targets (1.40 → ~1.55; review RejuvaPaw's 1.20 against a real 0.99).
  8. Cut dead spend: GL-ME Search (0.26 with a suspended feed) and MR_CL_LYMPH (0.23) — pause or justify.
  9. Unblock idle capacity: shopping images for Selmore and BlueForce, and the Merchant Center ↔ Ads link for Wellanova's 199 healthy products.
  10. Demand Gen: before reactivating Ledisa's seven campaigns, set their location criteria — they are named _US_ and served worldwide. The geo fix travels with the funnel rebuild, since the pause is a policy pause.
09

Metric glossary and traceability

Three systems measure the same thing and return three numbers. None is wrong; they answer different questions. This table fixes the name of each so there is no ambiguity — and where a figure comes from Triple Whale, it is named with Triple Whale's literal column.

Name used hereSourceExact definitionWhat it is for
Reported ROASGoogle Ads APImetrics.conversions_value / metrics.cost_micros, unfiltered. Includes every conversion action inside the account goal.What anyone opening the interface sees. In Nervalley and RejuvaPaw it includes a $1 Advertorial Click, which is why it inflates.
Purchase-only ROASGoogle Ads APISame data, with conversions_value decomposed by segments.conversion_action_name and summed over purchase actions only.Real performance as the platform sees it. Still Google's attribution, last click within Google.
ACQ ROAS · TATriple WhaleSUM(new_customer_order_revenue) / SUM(spend) on pixel_joined_tvf, with model = 'Triple Attribution' and attribution_window = '7_days'. TW calls this metric new_customer_roas.The acquisition ROAS the team steers on, and the basis of the 1.3 and 1.6 targets. Allows overlap between channels, so it is generous by design.
ACQ ROAS · Last ClickTriple WhaleIdentical, with model = 'Last Click', same 7-day window.The honest floor — zero overlap, one channel per order.

Rules needed to reproduce the TW figures: spend repeats identically across the ~35 model × window combinations, so a query that does not pin both multiplies it. Derived metrics (roas, new_customer_roas, ncpa, mer) exist in the UI but not in the API's column space — compute them from the measures. Google's channel in TW is google-ads, not google. And the join between TW and Google Ads is on campaign_id, never on name.

What is still open

Data coverage

Two ACQ ROAS figures not to trust yet

Celmor Non-Brand Search: ACQ Last Click 0.03 against 1.37 on Triple Attribution and 1.16 purchase ROAS. A 40× gap between models is pixel coverage, not performance — and it matches an open request to exclude organic overlap from Celmor's attribution. Cleantra Demand Gen returns no TW rows at all despite spending $3,088.

Contaminated window

LiveIntent spend landed in the wrong Triple Whale store

BlueForce and Nervalley LiveIntent spend was routed to Ledisa's TW from their launches (Aug 12 and Aug 25) until the fix on Sep 1. It does not affect this audit — every TW read here filters channel = 'google-ads' and LiveIntent arrives as custom spend — but it invalidates any blended Ledisa ROAS from those dates.

Access

GA4 is the last gap

The Acentecom token now covers Google Ads, Merchant Center, Search Console, Drive and Sheets. GA4 returns no accounts. Separately, the OAuth client lives in an external GCP project in Testing mode, where Google expires refresh tokens every 7 days — that needs moving to an Acentecom Workspace project with User Type = Internal before any daily automation depends on it.

To confirm

Questions the data cannot answer

Who sets the SERP split between Ledisa and metabolicreviews · why Cleantra's fourteen COMP campaigns carry a written tROAS of 0.9 against a real target of 1.3 · whether the advertorial click is a deliberate bidding signal · and whether the creative pause was a policy block or a resourcing one.