Ready when you are
Add your Meta token and ad account IDs in Setup, then hit Run Report to pull live campaign data.
No campaign data yet
Run a report first to see individual campaign breakdowns.
No health data yet
Run a report to see your account health scores.
No data yet
Run a report to see revenue at risk from underperforming campaigns.
No data yet
Run a report to model what-if scenarios for your campaigns.
No actions yet
Run a report to generate a prioritised action list.
AI-powered recommendations
Add your Anthropic API key in Setup, run a report, and Claude will analyse your campaigns and tell you exactly what to do this week.
Upload Complete
Your ads have been submitted successfully.
Square (1:1) recommended · up to 10 files
No creatives yet. Upload your first ad above!
ads_read scope).
Run this once to create the creative_batches table in your Supabase project. This enables shared creative history across your whole team.
CREATE TABLE IF NOT EXISTS creative_batches (
id uuid DEFAULT gen_random_uuid() PRIMARY KEY,
client_id text REFERENCES clients(id) ON DELETE CASCADE,
brand_name text,
ad_name text,
headlines jsonb DEFAULT '[]'::jsonb,
primary_texts jsonb DEFAULT '[]'::jsonb,
campaign_id text,
campaign_name text,
adset_id text,
adset_name text,
cta text DEFAULT 'SHOP_NOW',
destination_url text,
status text DEFAULT 'draft'
CHECK (status IN ('draft','uploaded','error')),
meta_ad_id text,
error_message text,
image_count integer DEFAULT 0,
thumbnail text,
created_by uuid REFERENCES auth.users(id),
created_at timestamptz DEFAULT now()
);
ALTER TABLE creative_batches ENABLE ROW LEVEL SECURITY;
-- All authenticated users can manage creative batches
CREATE POLICY "Authenticated users can manage batches"
ON creative_batches FOR ALL
USING (auth.uid() IS NOT NULL);