Arlem Meta Ads Performance Analysis (2023-2024)
Historical Review & 2026 Optimization Strategy
Document Version: 2.0 Created: January 1, 2026 Updated: February 5, 2026 Data Source: Meta Marketing API via Custom MCP, BigQuery Analytics
2026 Update: Enhanced Analytics Now Available
This document contains historical data from 2023-2024. Since this analysis was first created, we have deployed significantly enhanced analytics capabilities that transform how we can analyse and act on Meta Ads performance.
What Has Changed
| Capability | 2024 (When Data Was Collected) | 2026 (Now Available) |
|---|---|---|
| Conversion Tracking | PageView only, zero purchase attribution | Full funnel: ViewContent, AddToCart, Purchase |
| Cross-Channel Attribution | None, ad platforms reported in silos | BigQuery joins Meta Ads + Shopify + GA4 + Klaviyo |
| Visitor Journey Analysis | Unknown post-click behaviour | Full session-by-session journey tracking |
| Predictive Scoring | Not available | Propensity scores identify 54% of cart adders from 0.86% of traffic |
| True ROAS Calculation | Meta-reported only (unreliable) | Actual revenue matched to ad clicks via visitor ID |
| Retargeting Audiences | Basic pixel audiences | Behaviour-based segments exported to Meta |
How to Use This Document
- Part 1-5 contains historical performance data, still valuable as baseline benchmarks
- Part 6-8 contains the original 2026 strategy recommendations (some now superseded)
- New section below describes enhanced analysis capabilities now available
- Appendix D summarises insights that should inform 2026 Meta Ads strategy
Enhanced Analysis with BigQuery
Available Analytics Tools
We now have 13 tools in the arlem-analytics MCP server that enable deep Meta Ads analysis:
Visitor Journey Tools (5 tools)
| Tool | What It Does | Meta Ads Use Case |
|---|---|---|
list_visitors | Filter visitors by source, date, location, session count | Find all visitors from Meta campaigns |
get_visitor | Full visitor profile with journey analysis | Understand post-click behaviour for ad clickers |
getvisitorjourney | Session-by-session path through site | See exactly what Meta-referred visitors did |
findhighintent_visitors | Cart adders who did not purchase | Build retargeting audience of warm Meta leads |
search_visitors | Search by behaviour patterns | Find visitors who saw specific products via ads |
Analytics Summary Tools (3 tools)
| Tool | What It Does | Meta Ads Use Case |
|---|---|---|
getanalyticssummary | Aggregated funnel metrics | Compare Meta vs organic conversion rates |
getsourceperformance | Source breakdown with cart/checkout rates | Rank Meta campaigns by actual conversion |
getpageanalytics | Page-level views and conversions | Which landing pages convert Meta traffic best |
BigQuery Attribution Tools (5 tools)
| Tool | What It Does | Meta Ads Use Case |
|---|---|---|
getattributionreport | Channel attribution with revenue | True Meta contribution to revenue |
getroasby_campaign | ROAS per Meta campaign | Identify which campaigns actually drive profit |
getchannelinfluence | First-touch channel analysis | See if Meta ads start journeys that convert later |
getweeklyperformance | Week-over-week trends | Track Meta performance trajectory |
runbigquerysql | Custom SQL queries | Ad-hoc deep dives on any Meta question |
Cross-Channel Attribution Capabilities
What BigQuery Now Enables
The BigQuery integration (see BIGQUERY-MIGRATION-PROPOSAL-2026.md) connects:
Meta Ads spend data → Website visitor behaviour → Shopify orders → Klaviyo engagementThis means we can now answer questions the historical analysis could not:
Question: “Which Meta campaigns actually drive revenue (not just clicks)?”
-- Example BigQuery query
SELECT
campaign_name,
spend,
attributed_revenue,
attributed_revenue / spend as true_roas
FROM arlem.campaign_roas
WHERE spend > 50
ORDER BY true_roas DESCQuestion: “What do Meta ad clickers do after they land on the site?”
-- Track full journey of visitors from Meta
SELECT
v.visitor_id,
v.original_source,
v.session_count,
v.has_added_to_cart,
v.has_purchased,
v.propensity_score
FROM arlem.visitors v
WHERE v.original_source = 'Meta'
AND v.first_active > '2024-01-01'Question: “Are Meta ads starting customer journeys that convert later via other channels?”
-- First-touch attribution analysis
SELECT
first_touch_channel,
COUNT(*) as orders,
SUM(total_price) as revenue
FROM arlem.channel_influence
WHERE first_touch_channel LIKE '%Meta%'
GROUP BY 1Predictive Analytics for Meta Ads
See BIGQUERY-PREDICTIVE-ANALYTICS-INSIGHTS-2026.md for the full predictive model details.
Propensity Scoring for Retargeting
We have validated a propensity scoring model that identifies high-intent visitors:
| Propensity Score | Cart Add Rate | What This Means for Meta |
|---|---|---|
| Score >= 10 | 54.3% | These visitors are ready to buy, prioritise for retargeting |
| Score >= 5 | 16.0% | Warm leads, show product-focused creative |
| Score < 3 | 2.3% | Cold traffic, use for awareness only |
Recommended Retargeting Structure:
- High Intent (Score >= 8): Show testimonials, urgency, free shipping offers
- Warm (Score 5-7): Show product comparisons, social proof
- Interested (Score 3-4): Show lifestyle content, brand story
- Cold (Score < 3): Exclude from conversion campaigns, use for reach only
Best Signals for Meta Targeting
Our analysis revealed which behaviours predict purchase intent:
| Signal | Cart Add Rate | Lift vs Average | Meta Application |
|---|---|---|---|
| Gallery swipes 20+ | 50%+ | 17x | Target these visitors aggressively |
| Multi-session visitor | 13-25% | 4-8x | Create “return visitor” audiences |
| Viewed size guide | High | Unknown | Surface sizing info in ad creative |
| Instagram Click source | 7.55% | 2.5x | Instagram placement outperforms |
| Sunday visit | 4.21% | 2x | Schedule conversion campaigns for Sunday |
Audience Export to Meta
With BigQuery, we can create precision audiences for Meta:
Recommended Custom Audiences
| Audience | BigQuery Query | Expected Size | Use For |
|---|---|---|---|
| High Intent Non-Purchasers | propensityscore >= 8 AND haspurchased = FALSE | ~150 | Hot retargeting |
| Warm Visitors | sessioncount >= 3 AND addedto_cart = FALSE | ~500 | Warm retargeting |
| Cart Abandoners (7 days) | addedtocart = TRUE AND purchased = FALSE AND dayssincecart <= 7 | ~50 | Urgency messaging |
| Return Visitors | session_count >= 2 AND source = 'Direct' | ~1,200 | May have forgotten brand |
| Product Page Viewers | viewedproduct = TRUE AND addedto_cart = FALSE | ~2,000 | Product-focused creative |
Lookalike Seed Audiences
With proper purchase tracking now in place, we can build:
- 1% Lookalike of Purchasers (highest value, estimated 6-10 seed users initially)
- 1% Lookalike of Cart Adders (larger seed, ~170 users)
- 2% Lookalike of High-Intent Visitors (Score >= 8, ~420 users)
Executive Summary
The Numbers
| Metric | 2023 | 2024 | Total |
|---|---|---|---|
| Total Spend | $481.81 | $860.84 | $1,342.65 |
| Impressions | 81,224 | 62,140 | 143,364 |
| Clicks | 2,810 | 3,703 | 6,513 |
| Avg CPC | $0.17 | $0.23 | $0.21 |
| Avg CTR | 3.46% | 5.96% | 4.54% |
| Tracked Purchases | 0 | 0 | 0 |
Critical Finding
ZERO purchases were tracked from $1,342 in ad spend.
This is NOT because ads didn’t work - it’s because conversion tracking was never properly set up. We have:
- Facebook Pixel installed (PageView only)
- No AddToCart events sent to Meta
- No Purchase events sent to Meta
- No Facebook Conversions API implementation
- Cart was disabled for maternity leave (mid-2024 onwards)
Reality: We spent $1,342 generating 6,513 clicks at an excellent $0.21 CPC, but we have NO visibility into what those clicks converted to.
Part 1: Campaign Performance Analysis
1.1 Monthly Spend Breakdown
2024 Monthly Spend
Month | Spend | Impressions | Clicks | CPC | CTR
----------|----------|-------------|--------|-------|------
Feb 2024 | $62.76 | 4,103 | 241 | $0.26 | 5.88%
Mar 2024 | $266.13 | 18,124 | 1,008 | $0.26 | 5.56%
Apr 2024 | $194.70 | 15,576 | 802 | $0.24 | 5.15%
May 2024 | $116.85 | 7,846 | 410 | $0.28 | 5.22%
Jun 2024 | $78.05 | 8,181 | 585 | $0.13 | 7.15%
Jul 2024 | $142.35 | 8,310 | 657 | $0.22 | 7.91%
----------|----------|-------------|--------|-------|------
TOTAL | $860.84 | 62,140 | 3,703 | $0.23 | 5.96%2023 Monthly Spend
Month | Spend | Impressions | Clicks | CPC | CTR
----------|----------|-------------|--------|-------|------
Feb 2023 | $37.80 | 5,057 | 10 | $3.78 | 0.20%
Mar 2023 | $92.02 | 6,080 | 12 | $7.67 | 0.20%
Oct 2023 | $106.77 | 11,080 | 652 | $0.16 | 5.88%
Nov 2023 | $107.65 | 42,177 | 1,037 | $0.10 | 2.46%
Dec 2023 | $137.57 | 16,830 | 1,099 | $0.13 | 6.53%
----------|----------|-------------|--------|-------|------
TOTAL | $481.81 | 81,224 | 2,810 | $0.17 | 3.46%Key Insight: Early 2023 campaigns (Feb-Mar) had terrible performance (0.20% CTR, $3-7 CPC). After restructuring in Q4 2023, performance dramatically improved (5-7% CTR, $0.10-0.16 CPC).
1.2 Top Performing Campaigns (By Spend)
| # | Campaign Name | Spend | Clicks | CPC | CTR |
|---|---|---|---|---|---|
| 1 | “I understand not everyone has a…” | $319.99 | 1,046 | $0.31 | 5.18% |
| 2 | “Who would have thought that…” | $111.77 | 348 | $0.32 | 4.77% |
| 3 | Arlem Magnet Engagement Campaign | $74.59 | 19 | $3.93 | 0.20% |
| 4 | Arlem Check1 - Styling Using Cushions | $55.23 | 3 | $18.41 | 0.20% |
| 5 | “Handmade, with love” (May 2024) | $50.48 | 180 | $0.28 | 4.94% |
Observations:
- Instagram post promotions significantly outperform purpose-built campaigns
- “Magnet” and “Check1” campaigns were expensive failures ($4-18 CPC)
- Budget/value messaging (“not everyone has a big budget”) resonates strongly
1.3 Top Performing Ads (By CTR)
| # | Ad Name | Spend | CTR | CPC | Clicks |
|---|---|---|---|---|---|
| 1 | Reel Adset v1 | $4.00 | 10.85% | $0.11 | 37 |
| 2 | Reel Adset v3 | $0.61 | 8.82% | $0.20 | 3 |
| 3 | Ongoing website promotion ad | $2.91 | 8.39% | $0.11 | 26 |
| 4 | Reel Adset v4 | $31.96 | 8.28% | $0.13 | 241 |
| 5 | “I understand not everyone has a…” | $34.47 | 8.20% | $0.16 | 218 |
| 6 | “I understand not everyone has a…” (Jun) | $111.72 | 7.71% | $0.27 | 419 |
| 7 | Reel Adset v2 | $27.45 | 7.41% | $0.09 | 308 |
| 8 | “Handmade, with love” | $39.28 | 7.10% | $0.16 | 244 |
| 9 | “Hello Umber!” (color launch) | $34.95 | 7.08% | $0.12 | 281 |
| 10 | “A cushion of this size…” | $46.11 | 6.99% | $0.14 | 336 |
Key Insights:
- Reels consistently outperform - 4 of top 10 ads are Reels (7-11% CTR)
- Budget-conscious messaging wins - “not everyone has a big budget” appears in 3 top 10 ads
- Authentic/handmade content works - “Handmade, with love” resonates
- Product-specific content performs - Color launches, size messaging
Part 2: Audience Insights
2.1 Gender Breakdown
Gender | Spend | % of Spend | Impressions | CTR
--------|-----------|------------|-------------|------
Female | $1,439.09 | 94.2% | 140,448 | 4.35%
Male | $73.64 | 4.8% | 19,932 | 3.21%
Unknown | $14.87 | 1.0% | 1,574 | 5.02%Assessment: Correctly targeting female audience. Male spend is incidental reach, not worth optimizing for.
2.2 Age Breakdown
Age Group | Spend | % of Spend | Impressions | CTR | Efficiency
----------|---------|------------|-------------|-------|------------
25-34 | $413.80 | 27.1% | 62,942 | 4.20% | Good
35-44 | $374.28 | 24.5% | 33,606 | 4.80% | Better
45-54 | $297.93 | 19.5% | 21,029 | 5.18% | BEST
55-64 | $224.98 | 14.7% | 17,691 | 3.67% | Average
65+ | $129.12 | 8.5% | 10,907 | 2.38% | Poor
18-24 | $87.48 | 5.7% | 15,779 | 3.61% | AverageKey Insight: 45-54 age group has the highest CTR (5.18%) but receives less spend than 25-34.
Recommendation: Increase 45-54 targeting weight. These are likely homeowners with disposable income who are actively redecorating.
2.3 Audience Alignment with Strategy
Per the domination strategy, target customer is:
Primary: Australian women, 28-45, household income $100K+
Current ad performance confirms:
- 94% female audience (aligned)
- 25-44 receives 51.6% of spend (aligned)
- But 45-54 performs BEST (opportunity to expand upper age range)
Updated Recommendation: Expand target to 28-55 for 2026 campaigns.
Part 3: What Worked vs What Didn’t
3.1 What Worked
High-CTR Content Themes
| Theme | Example | Why It Worked |
|---|---|---|
| Budget-conscious | “I understand not everyone has a big budget” | Acknowledges price concern, builds trust |
| Video/Reels | Reel Adset v1-v4 | Motion catches attention, shows product in context |
| Handmade story | “Handmade, with love” | Differentiates from mass-market, emotional connection |
| Product reveals | “Hello Umber!” color launch | News/excitement creates urgency |
| Size messaging | “A cushion of this size is one of…” | Addresses practical concerns |
Retargeting Performance
Campaign: Retargetting v2
Spend: $32.08 | Impressions: 4,597 | Clicks: 291 | CTR: 6.33%
CPC: $0.11 (LOWEST of all campaigns)Retargeting delivered the lowest CPC but was underutilized (only $32 spent).
3.2 What Didn’t Work
| Campaign Type | Spend | CPC | CTR | Issue |
|---|---|---|---|---|
| Magnet Engagement Campaign | $79.83 | $2.31 | 0.39% | Wrong objective, broad targeting |
| “Styling Using Cushions” | $55.23 | $18.41 | 0.20% | Educational content doesn’t convert cold |
| Early 2023 campaigns | $129.82 | $5.90 | 0.20% | Poor targeting, wrong objectives |
Failure Pattern: Awareness/engagement objectives with cold audiences = wasted spend.
3.3 Content Performance Matrix
HIGH CTR (>5%) LOW CTR (<3%)
──────────────────────────────────────────
HIGH SPEND │ "Not everyone has │ │
(>$50) │ a big budget" ★ │ │
│ Reels v2, v4 │ │
──────────────────────────────────────────
LOW SPEND │ Reel v1 (10.85%!) │ Magnet Campaign │
(<$50) │ "Handmade with love" │ Styling Cushions │
│ "Hello Umber" │ Early campaigns │
──────────────────────────────────────────
★ = Scale this immediatelyPart 4: Critical Tracking Gaps
4.1 Current Facebook Pixel Implementation
File: app/layout.tsx
// CURRENT: Only PageView tracking
fbq('init', '1110929726998623');
fbq('track', 'PageView');What’s Missing:
| Event | Status | Impact |
|---|---|---|
| PageView | Implemented | Basic |
| ViewContent | NOT to Meta | Can’t optimize for product views |
| AddToCart | NOT to Meta | Can’t optimize for cart adds |
| InitiateCheckout | NOT implemented | Can’t optimize for checkout |
| Purchase | NOT implemented | Can’t track conversions |
4.2 Internal Analytics vs Meta Tracking
Current system tracks to data.arlem.com.au:
// lib/events/postEventData.ts
export enum EventName {
ViewContent = 'ViewContent',
AddToCart = 'AddToCart',
ProceedToCheckout = 'ProceedToCheckout',
// ...
}The Problem: Events go to internal analytics but NOT to Facebook.
Result: Meta’s ad algorithm has NO conversion data to optimize against. It’s flying blind.
4.3 What We’re Missing
Without proper tracking, we cannot:
- Build Lookalike Audiences from purchasers
- Optimize campaigns for conversions (only traffic/clicks)
- Calculate true ROAS (Return on Ad Spend)
- Retarget cart abandoners properly
- Attribute sales to specific campaigns
Part 5: 2026 Ad Strategy Recommendations
5.1 Tracking Implementation (PRIORITY 1)
Phase 1: Client-Side Events (Week 1)
Add to existing pixel code:
// Product page view
fbq('track', 'ViewContent', {
content_name: product.title,
content_ids: [product.id],
content_type: 'product',
value: product.price,
currency: 'AUD'
});
// Add to cart
fbq('track', 'AddToCart', {
content_name: product.title,
content_ids: [variant.id],
content_type: 'product',
value: variant.price,
currency: 'AUD'
});
// Initiate checkout
fbq('track', 'InitiateCheckout', {
content_ids: cart.items.map((i) => i.id),
value: cart.total,
currency: 'AUD',
num_items: cart.items.length
});Phase 2: Conversions API (Week 2-3)
Implement server-side tracking via Facebook Conversions API:
Benefits:
- Works even with ad blockers
- More accurate attribution
- Required for iOS 14.5+ users
- Better data for optimizationImplementation Options:
- Shopify native - Enable in Shopify admin (easiest)
- Custom webhook - Send purchase events from Shopify webhook
- Meta’s CAPI Gateway - Server-side container
Recommended: Start with Shopify native CAPI + client-side events for redundancy.
5.2 Campaign Structure (2026)
Funnel-Based Structure
AWARENESS (10% of budget)
├── Objective: Reach/Video Views
├── Audience: Broad AU women 28-55
├── Content: Brand story, behind-the-scenes
└── KPI: CPM, Video Watch %
CONSIDERATION (30% of budget)
├── Objective: Traffic
├── Audience: Interest-based (home decor, bedroom, linen)
├── Content: Product showcases, styling tips
└── KPI: CPC, CTR
CONVERSION (40% of budget)
├── Objective: Conversions (once tracking is set up)
├── Audience: Website visitors, engagers
├── Content: Product-specific, testimonials
└── KPI: Cost per AddToCart, Cost per Purchase
RETENTION (20% of budget)
├── Objective: Catalogue Sales
├── Audience: Past purchasers, cart abandoners
├── Content: New arrivals, complementary products
└── KPI: ROAS, Repeat Purchase RateBudget Allocation (2026: $8,000 total)
| Quarter | Budget | Focus |
|---|---|---|
| Q1 | $1,000 | Setup tracking, test audiences |
| Q2 | $2,000 | Scale winning content |
| Q3 | $2,000 | Optimization phase |
| Q4 | $3,000 | Peak season (Black Friday, Christmas) |
5.3 Creative Strategy
What to Replicate (Based on Data)
| Format | Content Type | Target CTR |
|---|---|---|
| Reels | Product in context, styling tips | 8%+ |
| Carousel | Before/after, multiple colors | 5%+ |
| Static | Lifestyle shots, testimonials | 4%+ |
Messaging That Works
- Budget-conscious: “Designer look without designer prices”
- Handmade story: “Made by hand in South Australia”
- Transformation: “Before → After your bedroom”
- Social proof: Customer photos, reviews
Content Calendar
| Week | Content Type | Theme |
|---|---|---|
| 1 | Reel | Behind-the-scenes making |
| 2 | Carousel | Color options showcase |
| 3 | Static | Customer bedroom feature |
| 4 | Reel | Styling tips |
5.4 Audience Strategy
Core Audiences (Build These)
| Audience | Source | Size Est. | Use For |
|---|---|---|---|
| Website Visitors (30 days) | Pixel | 500-2K | Retargeting |
| Product Viewers | Pixel | 200-1K | Hot retargeting |
| Cart Abandoners | Pixel | 50-200 | Recovery |
| Email Subscribers | Upload | 1.5K | Lookalike seed |
| Instagram Engagers | Meta | 2K+ | Warm audiences |
| Past Purchasers | Upload/Pixel | 50-100 | Lookalike seed |
Lookalike Strategy
Priority Lookalikes (once data exists):
1. 1% Lookalike of Purchasers (highest value)
2. 1% Lookalike of AddToCart
3. 2% Lookalike of Website Visitors
4. 3% Lookalike of IG Engagers5.5 Self-Refining Ad Funnel
The Concept
Build a system where ads automatically optimize based on real conversion data:
┌─────────────────────────────────────────────────────────────┐
│ SELF-REFINING AD FUNNEL │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. TRAFFIC ADS │
│ └── Drive clicks to site │
│ └── Pixel fires ViewContent │
│ │
│ 2. META LEARNS │
│ └── Algorithm identifies who engages │
│ └── Builds Lookalike from ViewContent │
│ │
│ 3. RETARGETING TRIGGERS │
│ └── ViewContent → Show product ads │
│ └── AddToCart → Show urgency/scarcity ads │
│ └── No Purchase in 3 days → Show discount ad │
│ │
│ 4. PURCHASE OPTIMIZES │
│ └── Every purchase improves targeting │
│ └── Lookalike of Purchasers created │
│ └── Algorithm optimizes for similar users │
│ │
│ 5. RETENTION LOOP │
│ └── Past purchasers see new products │
│ └── Cross-sell complementary items │
│ └── Build repeat purchase behavior │
│ │
└─────────────────────────────────────────────────────────────┘Automated Rules to Set Up
| Trigger | Action | Frequency |
|---|---|---|
| ViewContent but no AddToCart (24h) | Show product carousel | Once per day |
| AddToCart but no Purchase (48h) | Show testimonials + free shipping | Once |
| AddToCart but no Purchase (7d) | Show 10% off | Once |
| Purchase completed | Suppress from acquisition | 30 days |
| No visit in 60 days | Win-back campaign | Once |
Part 6: Technical Implementation Plan
6.1 Pixel Enhancement (Code Changes Required)
1. Add ViewContent on Product Pages
File: app/products/[handle]/page.tsx
// Add client component for tracking
<ProductViewTracker product={product} />// components/analytics/product-view-tracker.tsx
'use client';
import { useEffect } from 'react';
export function ProductViewTracker({ product }) {
useEffect(() => {
if (typeof window !== 'undefined' && window.fbq) {
window.fbq('track', 'ViewContent', {
content_name: product.title,
content_ids: [product.id],
content_type: 'product',
value: parseFloat(product.priceRange.minVariantPrice.amount),
currency: 'AUD'
});
}
}, [product]);
return null;
}2. Add AddToCart Tracking
File: components/cart/add-to-cart.tsx
const handleClick = () => {
// Existing logEvent call
logEvent(EventName.AddToCart, customData);
// ADD: Facebook Pixel tracking
if (typeof window !== 'undefined' && window.fbq) {
window.fbq('track', 'AddToCart', {
content_name: variant?.title,
content_ids: [selectedVariantId],
content_type: 'product',
value: parseFloat(variant?.price.amount || '0'),
currency: 'AUD'
});
}
};3. Purchase Tracking (Shopify Webhook)
Shopify handles checkout, so we need to either:
Option A: Enable Shopify’s native Facebook integration
- Go to Shopify Admin → Settings → Apps and sales channels → Facebook
- This sends Purchase events via Conversions API
Option B: Create custom webhook handler
// app/api/shopify/order-created/route.ts
export async function POST(req: Request) {
const order = await req.json();
// Send to Facebook Conversions API
await fetch(`https://graph.facebook.com/v21.0/${PIXEL_ID}/events`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
data: [
{
event_name: 'Purchase',
event_time: Math.floor(Date.now() / 1000),
user_data: {
em: hashEmail(order.customer.email)
// ... other user data
},
custom_data: {
value: order.total_price,
currency: 'AUD',
content_ids: order.line_items.map((i) => i.variant_id),
content_type: 'product'
}
}
],
access_token: META_CONVERSIONS_API_TOKEN
})
});
}6.2 MCP Enhancement (Optional)
Add conversion data to meta-ads MCP for deeper analysis:
// New tool: get_conversion_funnel
{
name: 'get_conversion_funnel',
description: 'Get funnel metrics: impressions → clicks → ViewContent → AddToCart → Purchase'
}Part 7: 2026 Targets & KPIs
7.1 Ad Performance Targets
| Metric | Q1 2026 | Q2 2026 | Q3 2026 | Q4 2026 |
|---|---|---|---|---|
| Spend | $1,000 | $2,000 | $2,000 | $3,000 |
| ROAS Target | 2x | 3x | 4x | 5x |
| CPC Target | <$0.30 | <$0.25 | <$0.20 | <$0.20 |
| CTR Target | 4%+ | 5%+ | 5%+ | 6%+ |
| Cost per AddToCart | <$5 | <$4 | <$3 | <$2.50 |
| Cost per Purchase | <$50 | <$40 | <$35 | <$30 |
7.2 Revenue Attribution Target
Per domination strategy, 2026 revenue target: $125,000
Paid ads contribution target: 15% = $18,750
Required from $8,000 ad spend:
- ROAS needed: 2.34x
- This is achievable with proper tracking and optimization7.3 Success Metrics Dashboard
Track weekly:
- ROAS (Revenue / Ad Spend)
- Cost per AddToCart
- Cost per Purchase
- Frequency (avoid ad fatigue >3)
- CTR trend
- Audience saturation
Part 8: Action Items
Immediate (Before Relaunch)
| Priority | Task | Owner | Deadline |
|---|---|---|---|
| P0 | Enable Shopify Facebook integration | Nick | Week 1 |
| P0 | Add ViewContent pixel event | Nick | Week 1 |
| P0 | Add AddToCart pixel event | Nick | Week 1 |
| P1 | Create Website Visitor audience | Emily | Week 1 |
| P1 | Upload email list for Lookalike | Nick | Week 1 |
Q1 2026
| Priority | Task | Owner | Deadline |
|---|---|---|---|
| P1 | Launch retargeting campaign | Emily | Week 3 |
| P1 | Test 3 Reel creatives | Emily | Week 4 |
| P2 | Set up automated rules | Nick | Week 6 |
| P2 | Create Lookalike audiences | Nick | Week 8 |
| P3 | Implement Conversions API | Nick | Week 10 |
Ongoing
- Weekly: Review performance, pause underperformers
- Monthly: Refresh creative (prevent ad fatigue)
- Quarterly: Analyze audience insights, adjust targeting
Appendix A: Campaign ID Reference
| Campaign Name | ID | Status | Total Spend |
|---|---|---|---|
| “I understand not everyone has a…” | 120205128973950240 | Completed | $319.99 |
| “Who would have thought that…” | 120207200791430240 | Completed | $111.77 |
| Arlem Magnet Engagement | 23852623283450239 | Completed | $74.59 |
| Retargetting v2 | 120207201025940240 | Completed | $32.08 |
| Retargetting v3 | 120209175627610240 | Completed | $32.06 |
| Retargetting v4 | 120209900306900240 | Completed | $35.96 |
Appendix B: Pixel Event Reference
// Standard Events to Implement
fbq('track', 'ViewContent'); // Product page view
fbq('track', 'AddToCart'); // Add to cart click
fbq('track', 'InitiateCheckout'); // Begin checkout
fbq('track', 'Purchase'); // Order completed
fbq('track', 'Search'); // Site search (optional)
fbq('track', 'AddToWishlist'); // Wishlist (future)Appendix C: Audience Definitions
Retargeting (Hot):
- Website visitors (7 days) who viewed product pages
- AddToCart but no purchase (14 days)
Retargeting (Warm):
- Website visitors (30 days)
- Instagram engagers (90 days)
Prospecting:
- 1% Lookalike of Purchasers
- 1% Lookalike of AddToCart
- Interest: Home decor + Bedroom + Linen + Interior design
- Demographics: AU, Female, 28-55Appendix D: Historical Insights for 2026 Strategy
Key Learnings from 2023-2024 Data
The historical analysis revealed patterns that should inform our 2026 Meta Ads strategy, now that we have the analytics capabilities to act on them.
1. Age Targeting Should Expand to 45-54
Historical Finding: The 45-54 age group had the highest CTR (5.18%) but received disproportionately lower spend than 25-34.
2026 Action: Expand target age range to 28-55. Use BigQuery to validate this by tracking conversion rates by age group with getattributionreport.
2. Reels Consistently Outperform Static
Historical Finding: Reels achieved 7-11% CTR (top performers), versus 4-6% for static images.
2026 Action: Prioritise video/Reel creative. Use getsourceperformance to compare video vs static campaign performance with actual conversion data.
3. Budget-Conscious Messaging Resonates
Historical Finding: “I understand not everyone has a big budget” achieved highest engagement and spend efficiency.
2026 Action: Continue value-focused messaging. Test variations using propensity-triggered offers for price-sensitive visitors (Score 5-7).
4. Retargeting Was Critically Underfunded
Historical Finding: Retargeting had the lowest CPC ($0.11) but received only 2% of budget. Zero tracked conversions, likely due to audience size/staleness.
2026 Action: Increase retargeting to 30% of budget. Use BigQuery to build fresh, behaviour-based audiences:
findhighintent_visitorsfor warm leadssearch_visitorswithhasEvent: 'AddToCart'for cart abandoners- Export to Meta as Custom Audiences weekly
5. TikTok Traffic Did Not Convert
Historical Finding: 355 TikTok visitors with 0% cart rate.
2026 Action: Either pause TikTok spend or use getsourceperformance to validate if new campaigns perform differently. Compare to Instagram Click (7.55% cart rate).
6. Sunday Converts at 2x Tuesday Rate
Historical Finding: Sunday cart rate 4.21% vs Tuesday 2.02%.
2026 Action: Schedule conversion-focused campaigns for Saturday-Sunday. Use getweeklyperformance to track day-of-week patterns with actual revenue.
7. Instagram Placements Outperform
Historical Finding: Instagram Click source had 7.55% cart rate (highest of all paid sources).
2026 Action: Prioritise Instagram placements over Facebook Feed. Validate with attribution data via getattributionreport.
Summary: Before vs After Analytics
| Question | 2024 Answer | 2026 Answer (with BigQuery) |
|---|---|---|
| What is true ROAS? | Unknown (zero purchase tracking) | Calculated via getroasby_campaign |
| Which audiences convert? | Unknown | Analysed via getsourceperformance and visitor journey |
| Are retargeting ads working? | 0 conversions (tracking issue?) | Full funnel visibility via visitor matching |
| Should we increase budget? | Risky without conversion data | Data-driven decision with true attribution |
| What creative resonates? | CTR only (vanity metric) | CTR + cart rate + purchase rate |
Recommended 2026 Campaign Structure (Updated)
Based on historical insights combined with new capabilities:
AWARENESS (10% of budget)
├── Objective: Reach/Video Views
├── Audience: Broad AU women 28-55 (expanded from 28-45)
├── Content: Brand story Reels, behind-the-scenes
├── Measure: `get_source_performance` for awareness-to-interest conversion
└── KPI: CPM, Video Watch %, New visitor rate
CONSIDERATION (20% of budget)
├── Objective: Traffic
├── Audience: Interest-based + 2% Lookalike of cart adders
├── Content: Product showcase Reels, styling tips
├── Measure: `get_page_analytics` for landing page performance
└── KPI: CPC, CTR, Pages per session
CONVERSION (40% of budget) - Increased from historical
├── Objective: Conversions (Purchase)
├── Audience: BigQuery audiences (Score >= 5)
├── Content: Testimonials, urgency, free shipping
├── Measure: `get_roas_by_campaign` for true ROAS
└── KPI: Cost per Purchase, ROAS
RETARGETING (30% of budget) - Increased from 2%
├── Objective: Conversions
├── Audience: Cart abandoners, high-intent visitors (Score >= 8)
├── Content: Cart reminder, discount offers
├── Measure: `find_high_intent_visitors` to refresh audiences weekly
└── KPI: ROAS, Recovery rateNext Steps
- Implement tracking fixes outlined in Part 6 (ViewContent, AddToCart, Purchase events)
- Enable BigQuery audience exports to Meta Custom Audiences
- Run first attribution report via
getattributionreportafter 2 weeks of conversion tracking - Build propensity-based retargeting using
findhighintent_visitors - Compare historical benchmarks to 2026 performance monthly
Document Control:
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0 | Jan 1, 2026 | Nick + Claude | Initial analysis |
| 2.0 | Feb 5, 2026 | Nick + Claude | Added 2026 Update section, BigQuery integration, strategic insights |
“We spent $1,342 and got 6,513 clicks - but we don’t know what happened next. Now we do.”