elephant.md

Arlem Meta Ads Performance Analysis (2023-2024)

@NickBrooks-ks3lspecs
arlem

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

Capability2024 (When Data Was Collected)2026 (Now Available)
Conversion TrackingPageView only, zero purchase attributionFull funnel: ViewContent, AddToCart, Purchase
Cross-Channel AttributionNone, ad platforms reported in silosBigQuery joins Meta Ads + Shopify + GA4 + Klaviyo
Visitor Journey AnalysisUnknown post-click behaviourFull session-by-session journey tracking
Predictive ScoringNot availablePropensity scores identify 54% of cart adders from 0.86% of traffic
True ROAS CalculationMeta-reported only (unreliable)Actual revenue matched to ad clicks via visitor ID
Retargeting AudiencesBasic pixel audiencesBehaviour-based segments exported to Meta

How to Use This Document

  1. Part 1-5 contains historical performance data, still valuable as baseline benchmarks
  2. Part 6-8 contains the original 2026 strategy recommendations (some now superseded)
  3. New section below describes enhanced analysis capabilities now available
  4. 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)

ToolWhat It DoesMeta Ads Use Case
list_visitorsFilter visitors by source, date, location, session countFind all visitors from Meta campaigns
get_visitorFull visitor profile with journey analysisUnderstand post-click behaviour for ad clickers
getvisitorjourneySession-by-session path through siteSee exactly what Meta-referred visitors did
findhighintent_visitorsCart adders who did not purchaseBuild retargeting audience of warm Meta leads
search_visitorsSearch by behaviour patternsFind visitors who saw specific products via ads

Analytics Summary Tools (3 tools)

ToolWhat It DoesMeta Ads Use Case
getanalyticssummaryAggregated funnel metricsCompare Meta vs organic conversion rates
getsourceperformanceSource breakdown with cart/checkout ratesRank Meta campaigns by actual conversion
getpageanalyticsPage-level views and conversionsWhich landing pages convert Meta traffic best

BigQuery Attribution Tools (5 tools)

ToolWhat It DoesMeta Ads Use Case
getattributionreportChannel attribution with revenueTrue Meta contribution to revenue
getroasby_campaignROAS per Meta campaignIdentify which campaigns actually drive profit
getchannelinfluenceFirst-touch channel analysisSee if Meta ads start journeys that convert later
getweeklyperformanceWeek-over-week trendsTrack Meta performance trajectory
runbigquerysqlCustom SQL queriesAd-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 engagement

This 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 DESC

Question: “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 1

Predictive 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 ScoreCart Add RateWhat This Means for Meta
Score >= 1054.3%These visitors are ready to buy, prioritise for retargeting
Score >= 516.0%Warm leads, show product-focused creative
Score < 32.3%Cold traffic, use for awareness only

Recommended Retargeting Structure:

  1. High Intent (Score >= 8): Show testimonials, urgency, free shipping offers
  2. Warm (Score 5-7): Show product comparisons, social proof
  3. Interested (Score 3-4): Show lifestyle content, brand story
  4. Cold (Score < 3): Exclude from conversion campaigns, use for reach only

Best Signals for Meta Targeting

Our analysis revealed which behaviours predict purchase intent:

SignalCart Add RateLift vs AverageMeta Application
Gallery swipes 20+50%+17xTarget these visitors aggressively
Multi-session visitor13-25%4-8xCreate “return visitor” audiences
Viewed size guideHighUnknownSurface sizing info in ad creative
Instagram Click source7.55%2.5xInstagram placement outperforms
Sunday visit4.21%2xSchedule conversion campaigns for Sunday

Audience Export to Meta

With BigQuery, we can create precision audiences for Meta:

AudienceBigQuery QueryExpected SizeUse For
High Intent Non-Purchaserspropensityscore >= 8 AND haspurchased = FALSE~150Hot retargeting
Warm Visitorssessioncount >= 3 AND addedto_cart = FALSE~500Warm retargeting
Cart Abandoners (7 days)addedtocart = TRUE AND purchased = FALSE AND dayssincecart <= 7~50Urgency messaging
Return Visitorssession_count >= 2 AND source = 'Direct'~1,200May have forgotten brand
Product Page Viewersviewedproduct = TRUE AND addedto_cart = FALSE~2,000Product-focused creative

Lookalike Seed Audiences

With proper purchase tracking now in place, we can build:

  1. 1% Lookalike of Purchasers (highest value, estimated 6-10 seed users initially)
  2. 1% Lookalike of Cart Adders (larger seed, ~170 users)
  3. 2% Lookalike of High-Intent Visitors (Score >= 8, ~420 users)

Executive Summary

The Numbers

Metric20232024Total
Total Spend$481.81$860.84$1,342.65
Impressions81,22462,140143,364
Clicks2,8103,7036,513
Avg CPC$0.17$0.23$0.21
Avg CTR3.46%5.96%4.54%
Tracked Purchases000

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 NameSpendClicksCPCCTR
1“I understand not everyone has a…”$319.991,046$0.315.18%
2“Who would have thought that…”$111.77348$0.324.77%
3Arlem Magnet Engagement Campaign$74.5919$3.930.20%
4Arlem Check1 - Styling Using Cushions$55.233$18.410.20%
5“Handmade, with love” (May 2024)$50.48180$0.284.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 NameSpendCTRCPCClicks
1Reel Adset v1$4.0010.85%$0.1137
2Reel Adset v3$0.618.82%$0.203
3Ongoing website promotion ad$2.918.39%$0.1126
4Reel Adset v4$31.968.28%$0.13241
5“I understand not everyone has a…”$34.478.20%$0.16218
6“I understand not everyone has a…” (Jun)$111.727.71%$0.27419
7Reel Adset v2$27.457.41%$0.09308
8“Handmade, with love”$39.287.10%$0.16244
9“Hello Umber!” (color launch)$34.957.08%$0.12281
10“A cushion of this size…”$46.116.99%$0.14336

Key Insights:

  1. Reels consistently outperform - 4 of top 10 ads are Reels (7-11% CTR)
  2. Budget-conscious messaging wins - “not everyone has a big budget” appears in 3 top 10 ads
  3. Authentic/handmade content works - “Handmade, with love” resonates
  4. 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% | Average

Key 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

ThemeExampleWhy It Worked
Budget-conscious“I understand not everyone has a big budget”Acknowledges price concern, builds trust
Video/ReelsReel Adset v1-v4Motion catches attention, shows product in context
Handmade story“Handmade, with love”Differentiates from mass-market, emotional connection
Product reveals“Hello Umber!” color launchNews/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 TypeSpendCPCCTRIssue
Magnet Engagement Campaign$79.83$2.310.39%Wrong objective, broad targeting
“Styling Using Cushions”$55.23$18.410.20%Educational content doesn’t convert cold
Early 2023 campaigns$129.82$5.900.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 immediately

Part 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:

EventStatusImpact
PageViewImplementedBasic
ViewContentNOT to MetaCan’t optimize for product views
AddToCartNOT to MetaCan’t optimize for cart adds
InitiateCheckoutNOT implementedCan’t optimize for checkout
PurchaseNOT implementedCan’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:

  1. Build Lookalike Audiences from purchasers
  2. Optimize campaigns for conversions (only traffic/clicks)
  3. Calculate true ROAS (Return on Ad Spend)
  4. Retarget cart abandoners properly
  5. 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 optimization

Implementation Options:

  1. Shopify native - Enable in Shopify admin (easiest)
  2. Custom webhook - Send purchase events from Shopify webhook
  3. 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 Rate

Budget Allocation (2026: $8,000 total)

QuarterBudgetFocus
Q1$1,000Setup tracking, test audiences
Q2$2,000Scale winning content
Q3$2,000Optimization phase
Q4$3,000Peak season (Black Friday, Christmas)

5.3 Creative Strategy

What to Replicate (Based on Data)

FormatContent TypeTarget CTR
ReelsProduct in context, styling tips8%+
CarouselBefore/after, multiple colors5%+
StaticLifestyle shots, testimonials4%+

Messaging That Works

  1. Budget-conscious: “Designer look without designer prices”
  2. Handmade story: “Made by hand in South Australia”
  3. Transformation: “Before → After your bedroom”
  4. Social proof: Customer photos, reviews

Content Calendar

WeekContent TypeTheme
1ReelBehind-the-scenes making
2CarouselColor options showcase
3StaticCustomer bedroom feature
4ReelStyling tips

5.4 Audience Strategy

Core Audiences (Build These)

AudienceSourceSize Est.Use For
Website Visitors (30 days)Pixel500-2KRetargeting
Product ViewersPixel200-1KHot retargeting
Cart AbandonersPixel50-200Recovery
Email SubscribersUpload1.5KLookalike seed
Instagram EngagersMeta2K+Warm audiences
Past PurchasersUpload/Pixel50-100Lookalike 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 Engagers

5.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

TriggerActionFrequency
ViewContent but no AddToCart (24h)Show product carouselOnce per day
AddToCart but no Purchase (48h)Show testimonials + free shippingOnce
AddToCart but no Purchase (7d)Show 10% offOnce
Purchase completedSuppress from acquisition30 days
No visit in 60 daysWin-back campaignOnce

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

MetricQ1 2026Q2 2026Q3 2026Q4 2026
Spend$1,000$2,000$2,000$3,000
ROAS Target2x3x4x5x
CPC Target<$0.30<$0.25<$0.20<$0.20
CTR Target4%+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 optimization

7.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)

PriorityTaskOwnerDeadline
P0Enable Shopify Facebook integrationNickWeek 1
P0Add ViewContent pixel eventNickWeek 1
P0Add AddToCart pixel eventNickWeek 1
P1Create Website Visitor audienceEmilyWeek 1
P1Upload email list for LookalikeNickWeek 1

Q1 2026

PriorityTaskOwnerDeadline
P1Launch retargeting campaignEmilyWeek 3
P1Test 3 Reel creativesEmilyWeek 4
P2Set up automated rulesNickWeek 6
P2Create Lookalike audiencesNickWeek 8
P3Implement Conversions APINickWeek 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 NameIDStatusTotal Spend
“I understand not everyone has a…”120205128973950240Completed$319.99
“Who would have thought that…”120207200791430240Completed$111.77
Arlem Magnet Engagement23852623283450239Completed$74.59
Retargetting v2120207201025940240Completed$32.08
Retargetting v3120209175627610240Completed$32.06
Retargetting v4120209900306900240Completed$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-55

Appendix 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_visitors for warm leads
  • search_visitors with hasEvent: '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

Question2024 Answer2026 Answer (with BigQuery)
What is true ROAS?Unknown (zero purchase tracking)Calculated via getroasby_campaign
Which audiences convert?UnknownAnalysed 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 dataData-driven decision with true attribution
What creative resonates?CTR only (vanity metric)CTR + cart rate + purchase rate

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 rate

Next Steps

  1. Implement tracking fixes outlined in Part 6 (ViewContent, AddToCart, Purchase events)
  2. Enable BigQuery audience exports to Meta Custom Audiences
  3. Run first attribution report via getattributionreport after 2 weeks of conversion tracking
  4. Build propensity-based retargeting using findhighintent_visitors
  5. Compare historical benchmarks to 2026 performance monthly

Document Control:

VersionDateAuthorChanges
1.0Jan 1, 2026Nick + ClaudeInitial analysis
2.0Feb 5, 2026Nick + ClaudeAdded 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.”