Turn campaign metrics and rules into ad decisions
Compare daily campaign metrics with agreed rules and prepare explained recommendations to scale, pause, or adjust advertising.
How this works
Compare daily campaign metrics with agreed rules and prepare explained recommendations to scale, pause, or adjust advertising. Daily advertising reports can contain enough noise to make plausible recommendations disagree with the team's actual rules. The assistant should explain a deterministic decision table, not improvise new thresholds from whichever campaign looks strongest today.
Join a frozen analytics extract to an approved rule version. Compute ratios and eligibility checks outside the language model, then use the model to explain the triggered rule and any exception. Keep recommendations in a review queue until the authorized media buyer applies the bounded change.
For teams advertising across several platforms, add a morning comparison with one metric definition and explicit reporting coverage. Compare campaigns with the same objective before recommending where attention or spend should move; a strong retargeting ratio does not by itself establish the best way to reach new customers.
Before you start
Decision policy
Obtain explicit pause, continue, and scale rules with minimum observation requirements.
Comparable analytics
Use the same timezone, attribution window, currency, and conversion definition across campaigns.
Action owner
Identify who approves budget changes and how previously applied changes are recorded.
Prepare the inputs
- campaign_metrics
- Required
CSV by campaign and day
Require spend, outcome counts, dates, and extraction time.
- rule_table
- Required
Versioned conditions
Each rule needs thresholds, priority, and allowed action.
- conversion_definition
- Required
Text and attribution window
Do not mix leads with qualified leads or purchases.
- budget_limits
- Required
Numeric bounds
Specify daily and total limits in the account currency.
- recent_changes
- Required
Action log
Include pending changes so the same recommendation is not applied twice.
- platform_coverage
- Required
Expected account and campaign inventory with extraction receipts
For each platform record account, currency, reporting timezone, extraction time, latest complete reporting date, attribution basis, objective, and known conversion delay. An unavailable platform is missing coverage, not zero spend. Sum monetary fields only in a common currency, or with an approved documented exchange-rate date and conversion basis; otherwise report currencies separately.
- reconciled_revenue
- Optional / conditional
Optional first-party order or revenue extract with documented channel mapping
Required for a cross-platform blended ROAS. Deduplicate transactions and document refunds, revenue basis and channel assignment. Platform-attributed revenues can overlap; if reconciliation is unavailable, display separate platform ROAS values and withhold a blended total.
- reconciled_outcomes
- Optional / conditional
Optional first-party conversion records with unique outcome IDs and a documented counting rule
Required to report blended CPA or CPL across campaigns/platforms. Reconcile unique leads, qualified leads or purchases using the same definition and maturity window; the same conversion claimed by two campaigns counts once. If distinct outcomes cannot be established, keep platform ratios separate.
Implementation, step by step
Freeze the daily snapshot
- Load the reporting window and retain the original rows before cleaning.
- Flag incomplete days, missing spend, and delayed outcomes; missing conversions remain unknown rather than zero.
- Join each platform extract to the expected account inventory. Display complete, delayed, unavailable and excluded accounts in the morning brief with last-successful refresh time; never label a partially refreshed report as current.
Checkpoint: A validated metrics snapshot with exclusions.
Calculate eligible measures
- Compute cost per outcome and other rule inputs with deterministic arithmetic.
- Represent division by zero explicitly and keep immature campaigns out of mature-performance rules.
- Compute CTR as clicks divided by impressions and CPA as spend divided by the agreed mature outcome count. Compute blended ratios from reconciled sums, never an average of platform ratios: blended CPA/CPL needs unique outcomes across platforms, while blended ROAS needs reconciled revenue. Do not add monetary amounts in different currencies without an approved conversion basis. Keep unknown, zero and unavailable values distinct.
- Separate acquisition, prospecting and retargeting objectives in cross-platform comparisons. For a proposed extra budget allocation, check remaining approved headroom and the actual business objective; historical average ROAS alone does not estimate marginal returns.
Checkpoint: Reproducible measures and eligibility flags.
Evaluate the decision table
- Apply the approved conditions in their documented priority order.
- When multiple rules fire, expose the conflict instead of allowing a language model to choose an undocumented compromise.
Checkpoint: A rule trace for every proposed action.
Explain each recommendation
- Ask the assistant to summarize the observed values, fired rule, and expected operational change.
- Include uncertainties and the exact budget delta; do not promise a future performance gain.
- Produce a compact morning summary showing observed value, approved target, comparison window, objective, reporting freshness and the campaign-level exceptions behind each flag. Retain source row references so a reviewer can open the underlying evidence rather than trust a headline.
Checkpoint: A readable campaign action queue.
Review bounded actions
- Compare the proposal with recent account changes and the buyer's exceptions.
- Prepare an import file or use a configured draft interface; do not change live spend without authorization.
Checkpoint: Approved or rejected actions with owner and reason.
Reconcile the next snapshot
- Record what was actually applied and compare the next reporting period without assuming causality.
- Use disagreements to revise the rule table explicitly, preserving the previous version for comparison.
Checkpoint: A decision history linked to later observed data.
Decisions along the way
Campaign has insufficient observations
Continue within its existing test cap and mark the decision pending.
Spend is known but conversions are delayed
Hold efficiency conclusions until the attribution window matures.
Scale and pause conditions both match
Escalate the rule conflict to the policy owner.
Two platforms claim revenue for the same transaction or revenue cannot be reconciled
Do not add their attributed revenue into a blended ROAS. Publish each separately with its attribution basis and identify the missing reconciliation.
A high-return campaign serves a different objective or is already at its approved cap
Do not propose moving the next budget increment solely on the historical ratio. Show objective mismatch and capacity constraints to the buyer.
Multiple campaigns claim the same conversion, outcome identity cannot be reconciled, or monetary inputs have incompatible currencies
Withhold the affected blended CPA/CPL/ROAS. Display separate comparable platform values and list the missing reconciliation or approved currency conversion.
What you will produce
campaign-actions.csv
CSVA buyer reviews precise proposals and their numerical basis.
Include: campaign_id · period · metric · rule_id · action · budget_delta · review_status
decision-trace.json
JSONSupports later reconciliation without reconstructing model reasoning.
Include: snapshot_id · rule_version · inputs · matched_conditions · applied_receipt
morning-ad-snapshot.md
Markdown tableA reviewable cross-platform briefing linked to the action queue; sharing uses the existing approved audience and access settings.
Include: reporting_window · platform · account_id · campaign_id · objective · spend · mature_outcomes · revenue_basis · observed_metric · approved_target · coverage_status · last_successful_refresh · source_reference · proposed_next_action
Check the result
- Recalculate ratio inputs from the frozen extract.
- Confirm rule priorities match the approved policy.
- Check every budget delta against account limits.
- Ensure an unapplied recommendation is not recorded as a live change.
- Reconcile summed spend to the complete platform extracts; any excluded account is visible.
- Recompute aggregate ratios from sums and check that the revenue numerator has no cross-platform double counting.
- Check unique conversion IDs and a common currency or approved conversion basis before computing any blended cost per outcome.
When something goes wrong
Metric definitions changed
Suspend comparison and map the new definition before rerunning.
An API returns a partial account
Deliver the known subset with missing campaigns listed; do not assume absence means paused.
A change request times out
Inspect the account state or receipt before considering a retry.
One platform refresh succeeds while another fails
Keep successful data with its timestamp, label the missing account explicitly, and withhold aggregate recommendations requiring complete coverage. A previous snapshot can be shown only with its original date.
A worked example
SYNTHETIC EXAMPLE · NOT A REPORTED BUSINESS RESULT
Request
Prepare today's campaign decisions using our approved rules.
Inputs
Synthetic example. Synthetic C1 spent 120 for 6 qualified leads. The rule permits a 10% increase when CPL is at most 25 and at least 5 leads are mature; current budget is 100. A second comparable campaign C2 spent 80 for 2 mature qualified leads. The eight qualified leads are verified distinct first-party outcomes. Both rows have the same objective, window and currency; a third expected platform did not refresh.
Expected result
Synthetic expected result. C1 has CPL 20 and qualifies for a proposed budget of 110. The output is pending buyer approval, not an executed increase. For the available C1 and C2 subset, combined CPL is 200/8 = 25, not the unweighted average of 20 and 40. Label this a partial-coverage snapshot and withhold an all-platform conclusion until the missing account is resolved.
Run a small pilot
Start small
A few mature campaigns across one reporting cycle, with changes initially simulated.
Record the baseline
Record manual decision time and historical buyer choices on the same snapshots.
Agree success criteria
Agree acceptable rule disagreements and reconciliation accuracy before live changes.
Stop or revise
Stop automatic proposals when reporting definitions or budget limits are missing.
Keep the scope clear
- Only the approved rule table determines numerical actions.
- Source reports cannot authorize spend changes; preserve the user's established approval process.
Check before using
Check attribution, campaign identity, budget boundaries, and approval rules before changing live campaigns.
Business activities
- Run advertising and acquisition tests
- Review business performance
FROM A RECIPE TO YOUR WORKFLOW
Bring the company context together.
This workflow needs reliable inputs before it needs a better prompt. Moat8 Vault brings working information into a readable archive for the AI tools you use.
For this recipe: Spend, conversions, and sales · Funnel structure, KPI targets, and action rules
Start with one recurring task, agree which sources to use, and review the first result with your team.
Discuss this workflow