Phase 6 · Marketing OS

AdsEngine

Product economics drive true CAC targets; the allocator funds winners and drains losers under autonomy policy.

Create ad
Unit margin
—
Target true CAC
—
Target ROAS
—
Reallocated
—
Allocator runs
—

Product intelligence

Price − COGS − ops cost sets contribution margin and true CAC targets

No product profile yet.

Closed-loop allocator

Drain losers → fund winners (policy-gated apply)

Platform OAuth

Demo connect stores a simulated token; live needs Meta/TikTok app credentials

Metric sync logs

Celery worker syncs every 30m · button runs inline sync now

Autonomy level
—
Policies
—
Executed
—
Blocked
—
Rolled back
—

Autonomy policies

Level 3 = pause / scale-down only · Level 4 adds controlled scale-up · kill switch freezes all mutations

Autonomy runs

No runs yet

Actions · rollback

Snapshots restore status + budget within the policy window

Experiments
—
Running
—
Draft
—
Treatment wins
—
Control wins
—

Experiment manager

One variable only · success metric defaults to true CAC

Creative variants

Winner → mutate one element (hook / copy / CTA) → test

True CAC
—
Contribution ROAS
—
Platform CPL
—
Contribution margin
—

Funnel · Ads → WhatsApp → Call → Sale

Close rate 0.0% · Qualify 0.0% · Cost/qualified $0.00

True CAC by campaign

Cheap leads ≠ cheap customers. Contribution ROAS uses margin after COGS + ops cost.

CampaignLeadsSalesCPLTrue CACContrib ROASInsight
Spend
—
Revenue
—
ROAS
—
Est. avoidable
—
Anomalies
—
Fatigue
—
Overlap
—
Leak findings
—
Pending actions
—

Analytics findings

Time-series z-scores · creative fatigue · audience overlap · money leaks

Campaigns

0 synced
CampaignHealthSpendSalesCACROASActions

AI recommendations

Level 1 · Approve before execution

Conversion event stream

WhatsApp + VICIdial webhooks land here and advance attributed leads

WhenChannelEventPhoneCampaign