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. All performance below is measured in Triple Whale — new-customer revenue over spend, with the attribution model named every time. Google Ads figures appear only to explain mechanics, and are labelled ROAS Platform. Nothing is graded against an acquisition target: those belong to leadership and have not been set with me yet, so every comparison here is between lines inside the portfolio. Four findings hold almost all the actionable value.

4.6% / 88%
of spend on the seven best-returning lines, against the eleven worst
3.46–4.73
ACQ ROAS on brand PMax across the three brands that run it, on 2.4% of the budget
1.25
ACQ ROAS (TW Last Click) on the cheapest brand query there is. Bidding cannot get brand above this
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, but the fix is not simply moving budget

Rank every brand and channel line by TW new-customer ROAS and the portfolio sorts almost perfectly into brand and non-brand. Brand PMax returns 3.46, 3.50 and 4.73 in Cleantra, Ledisa and Nervalley on 2.4% of the budget. The four biggest lines, 70% of spend and USD 804k, return between 0.98 and 1.57. On the deduplicated Last Click read the brand PMax figures are still 2.69, 2.24 and 3.50 while Cleantra and Ledisa non-brand drop to 0.82 and 0.64. The ordering holds under either attribution model.

What the ranking does not say is that the money can simply move. These lines return well partly because they are small: they buy the cheapest demand first and stop. Seven of thirteen enabled PMax campaigns already use under 70% of the budget they have, and Google labels three of them bidding strategy constrained at a tROAS of 4.00, so more budget does nothing. Lowering the target would buy volume, but that extra volume comes at a worse return than the 3.46 to 4.73 shown here, because the good impressions were already being bought.

Brand Search has the same shape from the other side. It can absorb more spend, but only by paying more per click, and CPCs there were lowered on purpose precisely because they were considered too high. So there is room in both, and in neither is it free. The useful question is not where to move the money but what return the extra volume is worth, which is what section 03 works out.

Finding 2 — needs a decision, not a fix

Brand return has a ceiling, and lowering bids does not lift it past that point

Brand CPCs were cut deliberately to raise brand ROAS. Ledisa's brand traffic, sorted cheapest query to most expensive, tops out on ledisa alone at a $2.87 CPC — 1.79 ROAS Platform, about 1.25 on TW Last Click at the 0.70 ratio these campaigns actually show. Cutting bids lifts return only until the cheap clicks run out, and they run out there. 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. Whatever target is eventually set, this is the limit of the bid lever — the other lever is structure. See section 04.

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 TW ACQ ROAS 2.97 against 1.02 for its non-brand — and 2.18 against 0.82 on Last Click. Brand PMax is already capturing 9,310 brand clicks a month with no per-term bid control.

Finding 5 — a definition, before any target

"Brand ROAS" currently returns a different number depending on how it is cut

The working figure for brand in the Sep 3 call was around 3× in Triple Whale. I cannot reproduce 3× from any cut I can build: Ledisa Search Brand alone reads 1.57, Ledisa brand Search and PMax together 1.84, brand across all nine brands 2.35, Ledisa brand PMax alone 3.50. Two decisions close the gap — which channels count as brand, and which attribution model a target is stated on. Worth settling before any number is attached, and independently of it: the tROAS written into the campaigns is undifferentiated, with Cleantra's twenty-one Non-Brand campaigns all set to 0.90 while returning between 0.40 and 1.11. See section 02.

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

ROAS Platform (purchase only) — 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.

Triple Whale is the source of truth for results. Platform figures appear alongside it to explain mechanics — impression share, bid strategy, which conversion action fired, and anything Triple Whale does not measure — but a brand's or a campaign's performance is read off TW. Where a question can only be answered with platform data, that is stated in place, with the observed gap to TW.

A caveat on TW's own models. Triple Attribution allows overlap between channels, so it counts one order more than once: at store level it returns roughly 1.57× the real revenue, while Last Click, First Click and Linear All deduplicate to the exact figure. TA is shown because it is the metric the team operates on day to day. Last Click is the honest read — it is what leadership has called the real number. When the two disagree sharply, believe Last Click.

BrandChannelSpend 30dACQ ROAS
TW · TA · 7d
ACQ ROAS
TW · LC · 7d
ROAS Platform
purchase only
Read
Cleantra
$502,493
Search Brand$2,9642.972.182.36exists but starved: 0.7% of the brand’s spend
Search Non-Brand$436,8991.020.820.84the largest line in the portfolio, and among the lowest returning
PMax Brand$14,0103.462.693.44best ACQ in the portfolio
PMax Non-Brand$45,5311.250.931.50
Demand Gen$3,088——0.25no rows in TW
Ledisa
$348,697
Search Brand$74,2111.570.971.3953% goes to “reviews” queries — section 04
Search Non-Brand$170,7600.980.641.04
PMax Brand$11,9733.502.244.22best ACQ in the brand
PMax Non-Brand$68,2921.380.721.5537% of targeted inventory disapproved — section 06
Demand Gen$23,4600.260.130.63paused on policy
Nervalley
$134,087
Search Brand$6,6204.553.493.36
Search Non-Brand$122,5641.381.101.21inflated report — section 07
PMax Brand$1,2844.733.502.69best-returning line in the portfolio
PMax Non-Brand$3,6191.841.481.36
Wellanova
$51,314
Search Non-Brand$51,3141.151.041.04no brand campaign
Rejuvapaw
$44,423
Search Non-Brand$44,4231.161.100.98no brand campaign · inflated section 07
Blueforce
$20,683
Search Brand$1,8516.104.654.68highest ACQ in the portfolio
Search Non-Brand$18,8320.840.660.96
metabolicreviews
$14,182
Search Brand$14,1822.401.331.01the comparison site — buys other brands’ review terms
Celmor
$12,466
Search Brand$2286.813.322.54
Search Non-Brand$12,2381.370.031.16ACQ LC 0.03 · pixel, not performance
GL-ME
$9,928
Search Non-Brand$9,9280.260.250.26feed suspended, still spending
Serabel
$6,322
Search Brand$2051.790.772.31
Search Non-Brand$6,1171.411.271.18

The ordering is what matters here, not any single number. Read down the ACQ TA column and the portfolio sorts into two groups with almost no overlap: brand lines at 2.40 and above, non-brand lines at 1.41 and below. The two exceptions are Ledisa Search Brand at 1.57, which section 04 explains, and Nervalley PMax Non-Brand at 1.84.

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 section 08.

Nothing here is graded against a target. Acquisition targets exist and belong to leadership; they have not been set with me yet, and one number worth resolving first is below. Everything in this audit is therefore a comparison inside the portfolio — which line returns more than which other line, on the same metric, in the same window. That comparison does not need an external yardstick to be actionable.

The portfolio ranked by return

Click any column heading to re-sort the table.

Every brand × channel line with meaningful spend, sorted by TW new-customer ROAS. The last column is cumulative spend, which is where the argument lives.

#BrandChannelSpend 30dShare of spendACQ ROAS
TW · TA
ACQ ROAS
TW · LC
Cumulative spend
1BlueforceSearch Brand$1,8510.2%6.104.650.0%
2NervalleyPMax Brand$1,2840.1%4.733.500.0%
3NervalleySearch Brand$6,6200.6%4.553.491.0%
4LedisaPMax Brand$11,9731.0%3.502.242.0%
5CleantraPMax Brand$14,0101.2%3.462.693.0%
6CleantraSearch Brand$2,9640.3%2.972.183.0%
7metabolicreviewsSearch Brand$14,1821.2%2.401.335.0%
8NervalleyPMax Non-Brand$3,6190.3%1.841.485.0%
9LedisaSearch Brand$74,2116.5%1.570.9711.0%
10SerabelSearch Non-Brand$6,1170.5%1.411.2712.0%
11NervalleySearch Non-Brand$122,56410.7%1.381.1023.0%
12LedisaPMax Non-Brand$68,2926.0%1.380.7229.0%
13CelmorSearch Non-Brand$12,2381.1%1.370.0330.0%
14CleantraPMax Non-Brand$45,5314.0%1.250.9334.0%
15RejuvapawSearch Non-Brand$44,4233.9%1.161.1038.0%
16WellanovaSearch Non-Brand$51,3144.5%1.151.0442.0%
17CleantraSearch Non-Brand$436,89938.3%1.020.8280.0%
18LedisaSearch Non-Brand$170,76015.0%0.980.6495.0%
19BlueforceSearch Non-Brand$18,8321.7%0.840.6697.0%
20LedisaDemand Gen$23,4602.1%0.260.1399.0%
21GL-MESearch Non-Brand$9,9280.9%0.260.25100.0%
The shape of the portfolio

The seven best-returning lines carry 4.6% of the spend. The eleven worst carry 88%.

The ranking sorts almost perfectly into brand and non-brand: every line returning 2.0 or better is a brand line, and every line below 1.4 is non-brand with two exceptions. Brand PMax alone returns 3.46 to 4.73 on Triple Attribution — and still 2.24 to 3.50 on the deduplicated Last Click read — across $27,267, or 2.4% of spend. Meanwhile the four largest lines in the portfolio total $804,435, 70% of spend, and return between 0.98 and 1.57 on TA, between 0.64 and 1.10 on Last Click.

This holds under either attribution model, which is the point of showing both. Whatever the target turns out to be, the money is not sitting where the return is.

One number to reconcile before any of this gets graded

Definition, not performance

"Brand ROAS" does not currently mean one thing

In the Sep 3 kickoff the working figure for brand was described as around 3× in Triple Whale. I cannot reproduce 3× from any cut of brand I can build. Ledisa Search Brand alone reads 1.57 on Triple Attribution; Ledisa brand Search and PMax together read 1.84; brand across all nine brands reads 2.35; Ledisa brand PMax on its own reads 3.50. So the figure depends entirely on which lines are counted as "brand" — and the reading in this audit is Search Brand and PMax Brand kept separate, because they behave nothing alike.

That is not a disagreement about performance. It is that the same words currently return different numbers depending on who runs the query, which is worth fixing before any target is attached to them. Two decisions settle it: which channels count as brand, and which attribution model the target is stated on.

Related, and independent of any target

The tROAS written into the campaigns is undifferentiated

Cleantra's twenty-one Non-Brand Search campaigns all carry a tROAS of 0.90 while returning between 0.40 and 1.11 — the same instruction for every campaign regardless of how each performs. Wellanova's twenty-three all carry 1.20, RejuvaPaw's ten all carry 1.20, Nervalley's eight all carry 1.40. Sixteen campaigns spending more than $1,000 carry no tROAS at all, including the $68,292 Ledisa PMax and the $24,834 brand Manual CPC. Whatever the right level is, a flat value across twenty-one campaigns with a 2.8× spread in outcome is leaving the bidding no information to act on.

Which campaigns can actually take more money

Before moving budget anywhere it is worth knowing what is holding each campaign back. A campaign spending its full daily budget is limited by money. One spending half of it is limited by something else, and adding budget will not move it. Fourteen closed days, Aug 21 to Sep 3. Only enabled campaigns are counted, and all thirteen served every day of the window, so no paused or half-live campaign is dragging an average down. The last column is Google's own answer from campaign.primary_status_reasons, not an inference.

CampaignBudget
per day
Spend
per day
UseDays at cap
of days served
tROASWhat Google says limits it
LD_GLP_PDP_US_PMAX_GENERIC$1,500$2,405160%12 / 13not setasset groups limited by policy
CL_PARA_PDP_US_PMAX_GENERIC$250$345138%14 / 142.00budget
NV_MAGCR_PDP_US_PMAX_BRAND$100$105105%11 / 143.50learning + budget
CL_LYMPH_PDP_US_PMAX_GENERIC$1,000$1,019102%5 / 142.00budget
LD_GLP_PDP_US_PMAX_BRAND$500$42084%4 / 134.00asset groups limited by policy
NV_MAGCR_PDP_US_PMAX_GENERIC$400$31579%5 / 14not setstill learning
CL_LYMPH_PDP_US_PMAX_BRAND$500$28256%0 / 144.00—
CL_OREG_PDP_US_PMAX_GENERIC$500$23647%0 / 142.00—
CL_ASTA_PDP_US_PMAX_BRAND$150$5436%0 / 144.00—
CL_OREG_PDP_US_PMAX_BRAND$200$6633%0 / 144.00bid target
CL_PARA_PDP_US_PMAX_BRAND$100$1616%0 / 144.00bid target
CL_ASTA_PDP_US_PMAX_GENERIC$500$4910%0 / 142.20—
CL_SOUR_PDP_US_PMAX_BRAND$150$139%0 / 144.00bid target

Google can overspend a daily budget by up to double on any given day and balances it over the month, so anything above 100% here means the campaign genuinely wants more money than it has.

This changes what to do about it

Four campaigns are held back by budget. The best-returning ones are held back by their own bid target.

Seven of the thirteen spend under 70% of the budget they already have, and Google names the reason on three: bidding strategy constrained, all three carrying a tROAS of 4.00. That is the platform saying the target is the wall, not the money. Two more, both Nervalley, are still in learning and should be left alone until they settle. Raising budget on any of these does nothing.

Ledisa is the exception, and it is the most valuable row in this table. Its non-brand PMax spends $2,405 a day against a $1,500 budget and hits the cap 12 days out of 13, with no tROAS set at all, so nothing holds it back except money. And Google flags both Ledisa PMax campaigns as having asset groups limited by policy, which is the feed problem from section 06 arriving from a completely different field. The campaign is scaling hard on 63% of the catalogue it was built to sell, and asking for more budget while it does. Fix the titles, then raise the budget.

Geographic focus

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

MarketSpend 30dShareWho serves there
United States$1,132,68499.0%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
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.

Worth knowing where to look

Location can sit on the campaign or on the ad group, and Demand Gen uses the ad group

Seven of the eight Demand Gen campaigns set United States at ad group level rather than campaign level. Reading campaign criteria alone makes them look untargeted, which is wrong: every campaign in the portfolio is correctly targeted. Anyone auditing geography here has to union the two levels or they will find a problem that does not exist.

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 ROAS Platform, purchase only

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 and has not restarted.

03

What the economics say the floor is

Almost every order in this portfolio is a subscription, between 83% and 93% depending on the brand. That changes what a good acquisition number looks like, because the first order is not the whole sale. This section works out how low ACQ ROAS can go per brand before the brand stops paying for itself. It is not a target. It is the line below which a brand loses money on every new customer.

ACQ ROAS floor = 1 ÷ ( LTV multiple × gross margin )

Two inputs, both measured from Triple Whale orders over June to August, not assumed. The LTV multiple is total revenue divided by new-customer revenue, so it is how many dollars the business eventually collects for every dollar a new customer spends on their first order. The gross margin is already net of COGS, shipping, payment fees and refunds, which run between 8% and 15% depending on the brand.

BrandRepeat shareLTV ×MarginBreak-evenFloor +20% opexACQ actualVerdict
Ledisa50.7%2.03×74.2%0.660.911.22clears it
Cleantra44.0%1.79×69.3%0.811.131.12right on it
Nervalley30.0%1.43×64.6%1.081.571.58clears it
Wellanova56.2%2.28×63.3%0.691.011.15clears it
Rejuvapaw35.6%1.55×59.1%1.091.651.16below it
Blueforce30.3%1.43×72.0%0.971.341.31right on it
The answer to "what should the floor be"

One number for all six brands would be wrong in both directions

Ledisa can run down to 0.91 and still cover everything, because customers come back twice and the margin is 74%. RejuvaPaw needs 1.65 for the same outcome, because it has the weakest repeat rate and the thinnest margin in the portfolio. A single blended floor would starve Ledisa, which is where the room to scale actually is, and let RejuvaPaw keep buying customers it does not earn back.

If it has to be one number, 1.20 on Triple Attribution keeps almost every brand above break-even. But four numbers is the right answer, one per economic profile.

Where the portfolio sits today

Three brands clear their floor, two are on it, one is under

RejuvaPaw is the one to look at: it returns 1.16 against a floor of 1.65, so it is buying customers at a loss once overhead is counted, and it is also one of the three brands with no brand campaign at all. Cleantra sits at 1.12 against 1.13, close enough that it is neither safe nor alarming, but it is 38% of the portfolio so the sensitivity matters more there than anywhere else.

Three things to hold in mind before using these numbers. The floors are stated on Triple Attribution because the ACQ ROAS column is; on Last Click the equivalent floor is roughly 0.65 times the figure shown. The LTV multiple comes from a three-month window in a business that is still growing, which understates the true multiple, because a growing base has proportionally more first-time buyers than a mature one. That makes these floors conservative: the real ones are lower. And this is blended across every channel, so Google specifically may sit above or below its brand's number.

One input worth a second opinion. The gross margin comes from the cost fields Triple Whale carries on each order, and they are populated on 98.5% to 99.8% of orders, so coverage is not the issue. But Ledisa's cost of goods reads 2.7% of revenue against 7.2% to 8.9% for every other brand. Shipping is counted separately at 6.5%, so this is product cost alone, and on a $96 order that is about $2.60 for a patch, which is possible but sits well outside the rest of the portfolio. If that figure is understated, Ledisa's margin is overstated and its floor of 0.91 is too permissive. Worth confirming with whoever loads costs before this number is used to set anything.

A second caveat: is_first_order_in_subscription is not populated correctly in Triple Whale. It returns roughly 114,000 orders per subscription for Ledisa, which is impossible. Any LTV work has to use the revenue ratio instead, which is what this section does.

04

Brand Search (ONB)

All figures here are Triple Whale except the two columns marked ROAS Platform and the impression-share column, which Triple Whale does not measure. 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 how far that lever can actually go.

BrandACQ ROAS
TW · TA · LC
Campaign · biddingSpend 30dCPCROAS Platform
purchase only
Impr. share
Blueforce6.10 · 4.65BF_FUSION_ONB_US_Search
Manual CPC
$1,851$1.604.68
32.9%
Celmor6.81 · 3.32CL_Oil_ONB_US_Search
Manual CPC
$228$1.272.54
47.6%
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%
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%
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%
metabolicreviews— · —MR_CL_LYMPH_ONB_US_Search_REVIEW
Manual CPC
$2,843$2.160.23
52.1%
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%
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%
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%
Nervalley4.55 · 3.49NV_MAGCR_ONB_US_Search
tROAS
$6,620$1.923.36
73.9%
Serabel1.79 · 0.77SB_BALM_ONB_US_mCPC
Manual CPC
$205$1.152.31
51.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 return that would remain if everything below that row were removed.

These columns are Google Ads, because query-level return is only measured there. At campaign level, where both sources exist, TW Last Click reads 0.70 times the platform figure for these same campaigns. So the 1.79 ceiling is closer to 1.25 in TW terms. The shape of the curve is what the argument rests on, and it is the same either way.

Query typeExampleClicksSpendCPCROAS Platform
purchase only
ROAS Platform 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 ROAS Platform — about 1.25 on TW Last Click. Everything above that price returns less. Lowering bids raises return only until the cheap clicks run out, and they run out at 1.79 — so no target far above that is 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 the brand question into two that belong to leadership rather than to the account: is brand return measured on first order or on subscription LTV? And if it is first order, does a higher brand target mean spending less on brand and accepting the lost auction share? Either answer is workable and both are reasonable. What does not work is a first-order target the traffic cannot produce, and the table above says where that limit sits.

Why brand CPCs are as high as they are

A brand click costs $2.87 on the core term and $4.62 on review queries. That is expensive for traffic already searching the brand by name, so it is worth checking which of the usual explanations actually applies.

Ruled out

It is not a quality problem

Weighted by spend, brand keywords carry a Quality Score of 9.4. Expected click-through rate is above average on 100% of that spend and landing page experience on 91%. There is no cheap win hiding in relevance or page quality. The account is already paying close to the lowest price Google will give it for these terms.

Ruled out

Brand PMax is not bidding up brand Search

Google enters an advertiser into any one auction only once. A brand's own PMax and its own Search campaigns are selected between, not run against each other, so PMax cannot raise the price of the same brand's Search clicks. That is how the auction works rather than something measured here, but it means PMax is the wrong suspect.

This one holds up

Ledisa and metabolicreviews buy the same 32 keywords, and both appear on the same searches

The two accounts run on different domains, so Google treats them as two advertisers and both can enter the same auction. The evidence is in the impression shares, which add to more than the whole: on is ledisa legit Ledisa holds 74.5% and metabolicreviews 56.1%, and on do ledisa patches work it is 83.2% and 54.3%. Two shares of the same pool cannot sum above 100% unless both ads are appearing on the same searches.

The prices say the rest. For ledisa reviews, metabolicreviews pays $2.81 and Ledisa pays $4.84 for the same click. Ledisa's review campaign runs on tROAS with no CPC cap, so its keyword bid reads $2.00 while the algorithm pays whatever the auction asks, and part of what it is outbidding is the other account.

The caveat that keeps this honest: even at $4.84 Ledisa loses the absolute top position on 57% to 79% of impressions, so there are real outside bidders here too. metabolicreviews is not the only reason the price is high. It is the only reason that sits inside the company, and therefore the only one anyone here can decide about.

Auction Insights would name the outside bidders directly, but the auction_insight resource cannot be queried in the Google Ads API v23, so that part has to be read from the interface.

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. Agree what brand return means, then set the target. Which channels count as brand, which attribution model, and first order or subscription LTV. Everything below depends on it, and the ceiling table is the input 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.
05

Demand Gen

Eight campaigns, all of them paused today, spending USD 26,549 in the window before they stopped. It is the worst-returning channel in the portfolio by a wide margin, and it is paused for a reason that has nothing to do with the bidding.

0.29
ACQ ROAS on Triple Attribution, against 1.02 for the weakest non-brand Search line
0.16
ACQ ROAS on Last Click. Roughly six dollars spent for every dollar back
8 of 8
campaigns paused, on Google policy grounds rather than performance
$2.39
average cost per click across the eight campaigns, against $1.94 on the winners
CampaignStatusSpendImpressionsClicksCPCACQ ROAS TAACQ ROAS LC
LD_GLP_ONB_US_DGEN_PSP_VID_WINNER_META_MaxCoPaused$10,929419,8465,639$1.940.300.18
LD_GLP_ONB_US_DGEN_PSP_VID_WINNER_META_MaxCoPaused$3,628119,3561,181$3.070.170.07
CL_LYMPH_ONB_DGEN_PSP_VID_WINNE_META_MaxConvPaused$3,088117,4361,307$2.36——
LD_GLP_ONB_US_DGEN_PSP_VID_LP_Split Test_MaxPaused$2,01666,837648$3.110.340.12
LD_GLP_ONB_US_DGEN_PSP_VID_LP_Split Test_MaxPaused$1,81655,582575$3.160.460.15
LD_GLP_ONB_US_DGEN_PSP_VID_WINNER_META_MaxCoPaused$1,81562,447718$2.530.290.08
LD_GLP_ONB_US_DGEN_PSP_VID_WINNER_META_MaxCoPaused$1,81442,289750$2.420.020.00
LD_GLP_ONB_US_DGEN_PSP_VID_LP_Split Test_MaxPaused$1,44455,372278$5.190.130.08
Total, 8 campaigns$26,549939,16511,096$2.390.290.16
Why it stopped

Policy, not performance

Google flags the quiz funnels, the Meta-style native creative and the landing page copy these campaigns run on. Ads get disapproved and the campaigns stop serving. That is the same enforcement that suspended CELMOR and GL-ME in Merchant Center and that has hit every account in the portfolio at least once. Demand Gen is simply the surface where it bites hardest, because the format leans on exactly the creative style that gets flagged.

And no easy excuse for the return

All eight were correctly targeted to the United States

Seven set it on the ad group and one on the campaign, so the 0.16 on Last Click cannot be explained away as traffic from markets that were never going to buy. This was the right audience in the right country, and it still returned sixteen cents on the dollar. The problem is the creative, the surfaces and the landing page, which is where a restart has to start.

Two more things worth knowing before anyone restarts this channel. All eight are named ONB, which in this account means own brand, but they are prospecting video campaigns buying cold audiences. The label does not describe what they do, and that matters when someone reads the account for the first time. And the split-test campaigns cost between $2.42 and $5.19 per click while the winners cost $1.94, so the testing was more expensive per click than the thing being tested.

What to do with it

Rebuild the funnel first, then the campaigns

Restarting these as they are would reproduce the same disapprovals. The order is: a compliant landing page and creative that survives review, then a location criterion on every campaign, then a small relaunch on one brand to see whether the channel can clear its economic floor before it gets budget again. On the numbers above it has never come close, so the bar for restarting it should be higher than "we have budget spare".

06

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$0—70 — 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.

07

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 columns here are Google Ads — this is a question about what the platform counts, so Triple Whale cannot answer it — see section 10.

AccounttROAS targetROAS Platform
as-is
ROAS Platform
purchase only
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 accounts—reported 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.

08

Merchant Center & Search Console

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

Google 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.

09

Prioritised action plan

  1. decision needed Agree the definition of brand return, then set a target on it. Which channels count as brand, which attribution model, and whether the number is first order or subscription LTV. The ceiling table in section 04 shows how far the bid lever reaches on first order. Everything in brand depends on this.
  2. urgent 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. Lower the tROAS on brand PMax before touching its budget. It is the best-returning line in the portfolio on either model, but Google labels three of these campaigns bidding strategy constrained, all at tROAS 4.00, so more budget there does nothing. Leave the two Nervalley campaigns alone until they exit learning.
  5. Brand structure: mine the brand queries PMax is already buying and rebuild them as exact-match Search campaigns across the five intent groups, in Ledisa and Cleantra first. Then fund Cleantra's existing brand campaigns, and create brand Search for Wellanova, RejuvaPaw and GL-ME. The mining is where the keyword list comes from: 4,788 brand clicks in Ledisa and 4,522 in Cleantra are being bought today with no control over what is paid per term.
  6. Produce landing pages faster, and produce more of them. 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. Handing over publish-ready HTML removes that queue. Start with a new version of the top-five advertorial carrying the most spend, then variants and new angles for non-brand, then a dedicated page for review-intent brand traffic.
  7. Measurement: remove Advertorial Click from conversion value in Nervalley and RejuvaPaw, then re-set their tROAS on a clean signal — today the written 1.40 is being met by a number that is 88% advertorial clicks.
  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: restart as a small test on Discovery and YouTube Feed only, with in-market segments added on top of the existing women 45-plus targeting, and only once the funnel clears policy review. Targeting is already correct, so nothing there needs fixing.
10

Metric glossary and traceability

Triple Whale is the source of truth for results. Google Ads is used to explain mechanics and to answer questions TW cannot — impression share, bid strategy, which conversion action fired, and anything at query level. Every figure taken from Google Ads is named ROAS Platform so it can never be mistaken for a result. Where a figure comes from Triple Whale it is named with TW's literal column.

Name used hereSourceExact definitionWhat it is for
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. 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.
ROAS PlatformGoogle 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.
ROAS Platform (purchase only)Google 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.

What Triple Whale cannot answer. There is no revenue at keyword or search-term grain: spend resolves to keywords on pixel_keywords_joined_tvf, but all new-customer revenue sits on rows with a null keyword_text. There is no impression share, no quality score, no bid or budget. Those four questions are platform-only, and are labelled as such wherever they appear.

Which model to believe. Triple Attribution allows overlap between traffic sources, so one order can be credited to more than one channel: at store level it returns about 1.57× the real revenue, where Last Click, First Click and Linear All all deduplicate to the exact figure. TA is reported because it is the metric the team operates on day to day. Last Click is the honest floor and the number leadership treats as real. Where the two diverge sharply — Celmor Non-Brand at 1.37 against 0.03 — that is a pixel-coverage problem, not performance.

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.