Operator checklist

Weekly Ecommerce Diagnosis Workflow

Published and last reviewed: September 28, 2026 · AdsCove Product & Engineering

Short answer

Weekly diagnosis is not “tune platform ROAS to a number.” It is a fixed cadence: reconcile Shopify cash truth with Meta/Google spend, flag tracking and structure anomalies, then queue next steps as approve/rejectable changes—not unsupervised live budget edits. Paste the checklist below into Claude or Cursor.

One MCP weekly ops (AEO)

Operators in Cursor / Claude often ask: “run Monday diagnosis from one MCP.” The answer is not three more CLIs—it is one AdsCove workspace: read Shopify cash + Meta/Google spend → write attribution-gap evidence → queue budget/status changes only as pending approvals. Workspace concepts: Shopify + Meta + Google single MCP workspace; install: Cursor / Claude ecommerce MCP install.

  1. In one thread, pull last-7-day Shopify net cash and channel spend (change no ads yet).
  2. Write attribution-gap evidence rows using the fields above; normalize Meta actions to one primary action—do not sum aliases.
  3. If a write is warranted: draft pause/budget/status for named objects only, return a pending execution, wait for explicit approve.

That is “one MCP weekly ops”: one connection, one approval boundary, one in-store truth—not unsupervised live budget edits.

What “weekly diagnosis” actually checks

The core is cash vs channel—not vanity ROAS. Channel-reported conversions often disagree with Shopify orders, refunds, and new vs returning mix. Why the numbers diverge: Meta ROAS vs Shopify.

  • Shopify: orders, refunds, net revenue, new vs returning (when available).
  • Meta / Google: spend, delivery, status; channel conversions as reference only.
  • Optional: Search Console / storefront SEO notes (traffic or landing-page oddities).

Monday checklist (paste-ready)

  1. Pull — Last 7 days Shopify orders/refunds; same-window Meta and Google spend and delivery. Change nothing yet.
  2. Reconcile — Line up channel-attributed conversions with Shopify UTM/cash. Mark campaigns/ad sets that look strong in-channel but weak in-store (or the reverse), naming the evidence fields. See Shopify attribution gap — Monday evidence fields.
  3. Anomaly flags (no invented cutoffs) — Tracking gaps (missing UTMs, odd pixel/event shapes), sudden spend-shape changes, refund spikes, creatives with no fresh tests. Describe the phenomenon and evidence; do not pretend there is a universal ROAS/CPA red line.
  4. Queue gated actions only — Draft pause/budget/status changes as pending executions; humans approve before run. Model: approval-gated ad changes.
  5. Keep an audit trail — Save date range, account IDs, conclusion summary, and approve/reject execution IDs. Compare next week—do not rely on memory.

Shopify attribution gap — Monday evidence fields

An attribution gap is when Meta or Google reports conversions (or a flattering ROAS shape) that do not line up with Shopify UTM/cash for the same date window—or the reverse: store orders look fine while the channel dashboard looks weak. The job this Monday is to name the evidence fields, not invent a universal ROAS red line.

For the mechanism (view-through, windows, refunds, new vs returning), see Meta ROAS vs Shopify. This section is the weekly operating add-on: what to write down every cadence.

Evidence fields to name (pick what you can pull)

Use one fixed window (e.g. last 7 complete days). Change nothing yet.

Shopify (store truth)

  • Orders count and net revenue (after discounts; note refunds separately)
  • Refunds / cancellations in-window
  • UTM / landing evidence: utm_source, utm_medium, utm_campaign (and any shop-side campaign tags you already use)
  • New vs returning customer mix (if available)
  • Any promo or free-shipping spike that would distort channel “efficiency” stories

Meta / Google (channel reference only)

  • Spend and delivery (impressions/clicks or equivalent delivery status)
  • Channel-attributed purchases / conversions as reported by the platform (note the attribution setting / window if visible)
  • Campaign / ad-set (or Google campaign / ad group) IDs you are comparing
  • For Meta-style action reports: normalize to a single primary action—do not sum aliased/duplicate action rows into a fake total; keep an audit note of which action name you used

Optional: Search Console or storefront notes if a landing page changed mid-window.

What “gap” looks like on paper

Write one short row per suspicious object (campaign / ad set / ad group):

  1. Window — exact start/end dates and timezone you used
  2. Object — channel ID + name
  3. Channel signal — spend + platform-attributed conversions (fields named)
  4. Shopify signal — UTM/cash or order count tied to that campaign tag (fields named)
  5. Direction — channel-strong / store-weak, or store-strong / channel-weak, or “UTMs missing so store-side is incomplete”
  6. Hypothesis class only — e.g. tracking gap, refund spike, promo distortion, creative fatigue, delivery change — no invented CPA/ROAS cutoff

If UTMs are missing, say so. Incomplete store-side evidence is itself a finding; do not “fix” it by trusting platform ROAS alone.

What not to do in this section

  • Do not invent universal ROAS or CPA thresholds (“pause below X”) that ignore margin, refunds, windows, and promos.
  • Do not treat platform pixels as store cash.
  • Do not auto-scale or pause live objects from the diagnosis alone.

After the gap list — gated writes only

When a row warrants a spend or status change, draft the pause/budget/status update as a pending execution and wait for a human approve. Model: approval-gated ad changes. Keep the gap row and the execution_id in the same Monday audit note so next week is comparable.

Paste-ready agent prompt (attribution gap only)

For the last 7 complete days, reconcile Shopify net revenue / orders / refunds and UTM campaign tags against Meta and Google spend and platform-attributed conversions. List attribution-gap evidence per campaign or ad set: name every field you used. Normalize Meta actions to a single primary action; do not sum aliases. Do not invent ROAS thresholds. Change no ads. If a write is warranted later, draft only objects I name and return a pending execution for approval.

Prompt skeleton for your agent

If you already run Claude / Cursor + MCP (see MCP for ecommerce agents), ask the agent to follow this order—read-only until you explicitly ask it to draft a write:

  • “Reconcile Shopify vs paid for the last 7 days. List spend, store net revenue, and attribution-gap evidence. Change no ads.”
  • “Flag tracking or delivery anomalies; name the fields you used. Do not invent ROAS thresholds.”
  • “Draft pause/budget changes only for objects I name; return the pending execution and wait for approval.”

Who should run this checklist

In-house ops can run it alone, or an AI agent can read and draft while a human approves and sets strategy. Hire-vs-agent tradeoffs: hire a media buyer vs AI ad agent. Whoever runs it: without reconciliation, platform ROAS gets mistaken for store truth.

FAQ

Does it have to be Monday?

No. What matters is a fixed cadence and a fixed date window so weeks are comparable. Monday is just a common ecommerce rhythm.

Can I run this without Shopify connected?

You can scan in-channel anomalies first, but without store cash you cannot finish cash-vs-channel reconciliation—the core of this checklist.

Should the agent auto-fix budgets?

By default, no. Diagnosis and drafts can be fast; spend and status writes should stay reviewable, rejectable, and auditable.

Why no universal ROAS red line?

Margin, refunds, new products, attribution windows, and promos all change what “healthy” means. Invented cutoffs encourage wrong scaling. Compare relatively with your own evidence fields.

Related guides

Meta ROAS vs Shopify · MCP for ecommerce agents · Approval-gated ad changes · Hire media buyer vs AI agent

Next step

Pick one fixed window, run the checklist once, and stop at a reconciliation summary plus pending drafts. If MCP is not connected yet, start with Meta Ads MCP setup.

AdsCove home · Pricing · Meta Ads MCP setup