AI-Powered Ad Intelligence
Complete User Manual
Platform Guide for Testers, Users & Administrators
Version 1.0 March 2026 Meta & TikTok AI-Powered
📊
Live Campaign Data
Synced every 30 min from Meta & TikTok APIs
🤖
AI Intelligence
Claude-powered insights & budget reallocation
🔗
Postback Tracking
S2S conversion tracking via track.domainex.app
📈
ROI Simulator
Forecast revenue before committing budget
🕵️
Competitor Intel
Spy on competitor ads via Meta Ad Library
⚙️
Admin Panel
User management & platform health monitoring
domainex.app
Navigation
Table of Contents
01Introduction to DomainEx 02Getting Started 03Operations Overview 04Campaigns 05Analytics 06Performance & Tracking 07ROI Simulator 08Intelligence — AI Insights 09Creatives 10Competitor Intel 11Tracking Domains 12Automation 13Settings 14Billing 15Admin Panel 16Troubleshooting & FAQ 17Tester Checklist AAppendix & Quick Reference
Section 01
Introduction to DomainEx

1.1 What is DomainEx?

DomainEx is a SaaS (Software-as-a-Service) platform that centralises your paid advertising operations across Meta (Facebook/Instagram) and TikTok into a single, AI-powered dashboard. It is purpose-built for media buyers, performance marketers, affiliate marketers, and e-commerce operators who need real-time visibility, intelligent recommendations, and postback-based conversion tracking — without stitching together multiple tools.

At its core, DomainEx solves three fundamental problems:

📡 Data Fragmentation
Ad data from Meta and TikTok is pulled into one unified interface, eliminating the need to toggle between native ad managers.
⚡ Insight Latency
Instead of manually pulling reports, DomainEx automatically syncs campaigns every 30 minutes and surfaces AI-generated insights immediately.
🔗 Conversion Tracking Gaps
The built-in postback system connects affiliate network conversions back to the exact campaign and ad that drove them.
🤖 AI Intelligence
Claude Haiku analyses your campaign portfolio and provides specific, data-backed recommendations for budget reallocation and scaling.

1.2 Who is DomainEx For?

RolePrimary Use Case
Media BuyersRun and optimise paid ads on Meta and/or TikTok. Need CPA, ROAS, CTR, and conversion data in one place.
Affiliate MarketersPromote third-party offers via tracking links. Require postback integration with networks like MaxBounty, ClickBank, EverFlow, GoHighLevel.
E-Commerce OperatorsDrive direct-to-consumer sales. Need revenue attribution from pixel events and postback conversions.
Marketing AgenciesManage multiple client accounts. Use the Admin Panel to impersonate users and monitor platform-wide health.
Growth Teams & TestersEvaluate the platform end-to-end — connect accounts, create tracking links, review AI insights, and stress-test every feature.

1.3 Core Feature Set

1.4 Technical Architecture

Understanding the underlying stack is useful for testers diagnosing unexpected behaviour.

FrontendReact + TypeScript — single-page application at domainex.app
BackendNode.js with tRPC — type-safe API layer
DatabaseMySQL on Railway (managed) with Drizzle ORM
HostingRailway.com — auto-deploys from GitHub main branch
AI LayerAnthropic Claude Haiku (claude-haiku-4-5-20251001)
Meta APIMeta Graph API — OAuth + Insights API
TikTok APITikTok Ads API — OAuth + campaign sync
Trackingtrack.domainex.app — server-side postback receiver
🏢
Multi-Tenant Architecture

DomainEx is fully multi-tenant. Every piece of data — campaigns, tracking links, metrics, settings — is scoped to the authenticated user's account. All data queries are isolated by userId. Admin users can view and impersonate any user account for support purposes only.

Section 02
Getting Started

2.1 Accessing the Platform

DomainEx is accessible at https://www.domainex.app. The platform is optimised for desktop use (1280px+ screen width). Mobile browsing is supported but some data tables may require horizontal scrolling.

2.2 Creating an Account

1
Navigate to domainex.app
Open the platform in your browser and click "Sign Up" or "Get Started".
2
Enter your details
Provide your full name, email address, and a strong password.
3
Submit the form
Your account is created instantly. You are automatically logged in and redirected to the Operations Overview dashboard.
ℹ️
Note for Testers

If you have been given a pre-created account, use those credentials to log in. The admin can also use the Admin Panel to impersonate your account and verify your data is correctly scoped.

2.3 Logging In

From the DomainEx homepage, click "Log In" and enter your registered email and password. The session persists until you manually log out or the JWT token expires. To log out, navigate to Settings and click "Sign Out".

2.4 Dashboard Navigation Structure

After login, you land on the Operations Overview page. The left sidebar is your primary navigation:

PageDescription
OperationsTop-level KPI dashboard — spend, revenue, ROAS, CPA, leads, impressions, clicks
CampaignsFull list of all synced campaigns with status, budget, metrics
AnalyticsTime-series charts and breakdown analysis across campaigns
PerformanceTracking links manager — postback-based offer performance
ROI SimulatorForecast tool — simulate revenue/profit at different spend levels
IntelligenceAI-powered insights — budget reallocation, top/underperforming campaigns, AI chat
CreativesAd creative viewer — images, videos, copy for all ads
Competitor IntelMeta Ad Library search — spy on competitor ad creatives
Tracking DomainsSet up custom CNAME tracking domains
BillingSubscription and payment management
SettingsAccount settings, connected integrations, profile
Admin PanelAdmin Only Platform stats, user impersonation

2.5 Connecting Your Ad Accounts

DomainEx needs to be connected to your Meta and/or TikTok ad accounts before any campaign data can be synced. This is done via OAuth — you authorise DomainEx to read your ad data without sharing your password.

2.5.1 Connecting Meta (Facebook/Instagram)

1
Navigate to Settings
Scroll to the "Integrations" or "Connected Accounts" section.
2
Click "Connect Meta Account"
A Meta OAuth popup opens. Log in with your Facebook credentials.
3
Grant Permissions
Allow DomainEx to access your ad accounts (ads_read + business_management). These are read-only — DomainEx cannot create, modify, or delete your campaigns.
4
Sync Begins
After granting access, you are redirected back to DomainEx. Your Meta ad account is now linked — the first campaign sync begins automatically.

2.5.2 Connecting TikTok

Navigate to Settings > Connected Accounts and click "Connect TikTok Account". A TikTok OAuth popup will open — log in with your TikTok for Business credentials and grant DomainEx read access. TikTok campaigns will begin syncing automatically after authorisation.

2.6 First Sync — What to Expect

After connecting an ad account, DomainEx runs an initial sync to pull all campaign and ad data from the last 90 days. This process runs immediately upon connection and may take 30–90 seconds depending on the number of campaigns. Subsequently, it runs automatically every 30 minutes.

⚠️
Empty State After Connection?

If you see empty states or dashes after connecting, wait 1–2 minutes and hard-refresh the page (Ctrl+Shift+R / Cmd+Shift+R).

Section 03
Operations Overview
domainex.app/dashboard

The Operations Overview is your command-centre dashboard. It aggregates the most important KPIs across all your connected campaigns into a single bird's-eye view. This is the default landing page after login.

3.1 Date Range Filter

At the top-right of the Operations page you will find date range buttons. Clicking any button instantly recalculates all metric cards for the selected period.

ButtonPeriod
7DLast 7 days (default view on load)
15DLast 15 days
30DLast 30 days
60DLast 60 days
90DLast 90 days

A platform filter button (Meta / TikTok) also appears at the top right, allowing you to filter metrics to a single platform or view combined totals.

3.2 Metric Cards — Full Reference

MetricDescriptionSource
Total SpendTotal ad spend across all campaigns in the selected period, in USDMeta Insights API / TikTok Ads API
Est. RevenueEstimated revenue from postback conversions tracked via track.domainex.app. Requires postback integration.DomainEx Postback Server
Avg. ROASReturn on Ad Spend = Revenue / Spend. Shows "0x" if no revenue data is available.Calculated: Revenue / Spend
Active CampaignsCount of campaigns currently in ACTIVE status (not paused or archived)Meta / TikTok API
Conversion RateTotal conversions divided by total clicks, expressed as a percentageCalculated: Conversions / Clicks
Avg. CPACost per acquisition = Total Spend / Total Conversions. Lower is better.Calculated: Spend / Conversions
ImpressionsTotal ad impressions served across all campaigns in the periodMeta / TikTok API
ClicksTotal link clicks across all campaigns in the periodMeta / TikTok API
Total LeadsMeta-native lead events: form fills, Facebook Pixel leads, and on-site lead groups. Specific to Meta lead-gen campaigns.Meta Insights API
Tracked EventsServer-side postback events logged by track.domainex.app. Requires setup.DomainEx Postback Server
💡
Why "Est. Revenue" shows $0

Est. Revenue and ROAS require the DomainEx postback tracking system to be active. You must: (1) create tracking links on the Performance page, (2) add the postback URL to your affiliate network, and (3) receive at least one confirmed conversion postback. Until then, revenue stays at $0 — this is expected behaviour.

3.3 Operational Feed

Below the metric cards, the Operational Feed shows a real-time log of recent platform events: Meta/TikTok account connected, campaign sync completed, new tracking link created, and postback conversions received. Each event is timestamped and is useful for testers to confirm that actions are executing correctly.

3.4 Setup Prompts

Two metric cards — "Tracked Events" and "User Journeys" — display setup prompts when postback tracking is not yet configured. These are not errors — they are guided prompts to help users activate the relevant feature. Click "Set up" to be taken to the appropriate setup page.

Section 04
Campaigns
domainex.app/dashboard/campaigns

The Campaigns page shows every campaign pulled from your connected Meta and TikTok accounts. This is the primary list view for monitoring campaign health at a glance.

4.1 Campaign List View

ColumnDescription
Campaign NameThe name as it appears in Meta Ads Manager or TikTok Ads
PlatformMeta or TikTok — indicated by platform logo
StatusACTIVE PAUSED ARCHIVED — synced from the ad platform
BudgetDaily or lifetime budget set in the ad platform
SpendTotal spend in the selected date window
ImpressionsTotal impressions in the selected date window
ClicksTotal link clicks
CTRClick-through rate = Clicks / Impressions
CPACost per acquisition for this campaign
ConversionsTotal conversion events (leads + pixel events)
LeadsMeta-native lead events (form fills + pixel leads)
ROASReturn on Ad Spend for this campaign (requires revenue data)

4.2 Sorting & Filtering

The campaign list supports column sorting (click any column header), platform filter (Meta or TikTok only), status filter (Active, Paused, or Archived), and date range alignment with the global date range selector.

4.3 Campaign Detail Page

Clicking on any campaign name opens the Campaign Detail page (domainex.app/dashboard/campaigns/[id]), providing a deep-dive into a single campaign's performance.

4.4 AI Campaign Analysis

Clicking "AI Analysis" sends this campaign's data to Claude Haiku, which returns a structured analysis covering campaign health assessment, strongest and weakest performing ads, specific actionable recommendations, and budget efficiency observations. The response renders as formatted markdown.

4.5 Manual Campaign Sync

DomainEx automatically syncs campaigns every 30 minutes. If you need the latest data immediately, navigate to Settings and trigger a manual sync. Alternatively, an admin can trigger a sync from the Admin Panel.

Section 05
Analytics
domainex.app/dashboard/analytics

The Analytics page provides time-series visualisation and cross-campaign comparison. It is designed for identifying trends, diagnosing spend efficiency changes, and understanding the relationship between spend, clicks, and conversions over time.

5.1 Date Range & Filters

At the top of the Analytics page, you can select a date range (7D, 15D, 30D, 60D, 90D), a campaign filter (specific campaign or all campaigns combined), and a platform filter (Meta only, TikTok only, or all platforms).

5.2 Summary Stats Cards

A row of summary cards shows totals for the selected period: Total Spend, Total Clicks, Total Impressions, Total Leads, Conversion Rate, and Average CPA.

5.3 Trend Charts

The main chart area shows time-series line charts where each data point represents one day.

Chart ViewPurpose
Spend vs. ConversionsDual-axis chart showing daily spend and daily conversion count — helps spot days where spend was high but conversions were low
Impressions vs. ClicksShows reach vs. engagement trends — useful for identifying creative fatigue
CTR Over TimeClick-through rate trend — a declining CTR suggests audience saturation or creative fatigue
CPA Over TimeCost per acquisition trend — rising CPA signals declining efficiency
Leads Over TimeDaily Meta-native leads (form fills + pixel events) — Meta lead-gen campaigns only

5.4 AI Insights on Analytics

The Analytics page includes an AI Insights section powered by Claude Haiku. After loading your data, Claude analyses the trends and returns structured observations including efficiency trends (improving or declining CPA), anomalies (days with unusually high or low performance), and recommendations tied to specific campaigns or time periods.

Section 06
Performance & Tracking
domainex.app/dashboard/performance

The Performance page is DomainEx's offer-level tracking system. It allows you to create unique tracking links for any offer URL, route traffic through the DomainEx tracking server (track.domainex.app), and receive postback conversions from affiliate networks — attributing every conversion back to the exact campaign and ad that drove it.

6.1 Performance Summary Cards

MetricDescription
Total RevenueSum of all confirmed postback revenue across all tracking links
Total CostTotal ad spend attributed to offers with active tracking links
Total ProfitRevenue minus Cost — net profit from tracked campaigns
Avg. ROIReturn on Investment percentage = (Profit / Cost) × 100
Total ClicksTotal clicks through all tracking links (LP clicks)
LP ClicksLanding page clicks — confirmed click-throughs to your offer URLs

6.2 Creating a Tracking Link

1
Scroll to "Tracking Link Generator"
Located at the bottom of the Performance page.
2
Enter a Title
e.g. "MaxBounty Offer #123"
3
Enter the Destination URL
e.g. "https://offer-network.com/offer/123"
4
Select Offer Source
Own Product, Client, or Affiliate Network
5
Click "Generate Tracking Link"
Your new tracking link appears in the table above.

6.3 Postback Integration

Once you have a tracking link, configure your affiliate network to send postback pings to DomainEx when a conversion occurs.

https://track.domainex.app/postback?clickId={clickId}&revenue={payout}&type=lead

Replace {clickId} with your network's click ID macro, and {payout} with the payout macro. The type parameter accepts: lead, sale, install, other.

Supported affiliate networks with native postback: MaxBounty, ClickBank, EverFlow, GoHighLevel, and any network that supports server-side postback / S2S tracking.

6.4 How Click Tracking Works

1
User clicks your DomainEx tracking link
The click is logged with a unique clickId, timestamp, IP, user agent, and referring campaign.
2
User is redirected to your Destination URL
Instantly and transparently.
3
User converts
Your affiliate network fires the postback URL to DomainEx.
4
DomainEx receives the postback
Matches the clickId and records the conversion and revenue. The conversion appears in the Performance table and feeds into Operations revenue metrics.
Section 07
ROI Simulator
domainex.app/dashboard/roi-simulator

The ROI Simulator allows you to model projected revenue and profit for a campaign at different spend levels, based on historical performance data. It is designed to answer: "If I double my budget, what should I expect in return?"

7.1 How the Simulator Works

The ROI Simulator pulls the most recent campaign metrics from DomainEx and projects forward using a linear model based on daily spend average, historical conversion rate, and average revenue per conversion. Projections are calculated at 1x, 1.5x, 2x, 3x, and 5x current daily spend.

7.2 Simulator Output

ColumnDescription
Budget ScenarioThe spend multiplier being modelled (e.g. 1.5x current spend)
Projected Daily SpendThe dollar amount you would be spending per day
Projected Monthly SpendDaily spend × 30
Projected ConversionsBased on historical conversion rate applied to projected traffic
Projected RevenueProjected conversions × average revenue per conversion
Projected ProfitProjected Revenue minus Projected Spend
Projected ROIReturn on Investment percentage for each scenario
⚠️
Important Caveat

The ROI Simulator uses linear extrapolation — it assumes that conversion rates and revenue per conversion remain constant as spend increases. In reality, scaling spend often affects conversion rates (audience saturation, bid competition). Use the simulator as a directional guide, not a guarantee. Revenue projections are only accurate if you have active postback tracking returning revenue data.

Section 08
Intelligence — AI-Powered Insights
domainex.app/dashboard/intelligence

The Intelligence page is DomainEx's AI command centre. It combines structured budget recommendations with a conversational AI assistant, all powered by Anthropic's Claude Haiku model.

8.1 Top Performing Campaigns

The first section highlights your top-performing campaigns based on composite scoring of ROAS, CPA efficiency, and conversion volume. For each top performer, Claude provides:

8.2 Underperforming Campaigns

The second section identifies campaigns consuming budget without delivering adequate returns. For each underperformer, Claude provides a diagnosis of what is causing poor performance, specific recommendations (pause, restructure, test new creative, narrow audience), and a risk assessment of how much budget is being wasted.

8.3 Budget Reallocation Recommendations

The Budget Reallocation section analyses your entire campaign portfolio and recommends specific dollar amounts to move between campaigns to maximise overall ROAS. This section loads all campaigns regardless of whether one is selected (platform-level analysis), shows the current budget allocation, and recommends moving specific dollar amounts with clear reasoning.

🔄
Data Freshness

Budget Reallocation recommendations are generated using the most recent sync data. If your campaigns were synced more than 2 hours ago, consider triggering a manual sync from Settings before reviewing recommendations for critical decisions.

8.4 AI Chat Assistant

An interactive chatbox embedded on the Intelligence page. When you send a message, DomainEx fetches your current campaign data, constructs a system prompt with your campaign context, sends your message + data to Claude Haiku via the Anthropic API, and streams the response back to the chat interface. Claude's response is aware of your actual numbers — it references your specific campaigns by name.

Example Queries

QuestionWhat Claude Does
"Why is my CPA so high on the NICO campaign?"Analyses NICO's metrics and diagnoses the specific drivers (low CTR, poor landing page conversion rate, high CPM, etc.)
"Should I pause my TikTok campaigns?"Compares Meta vs TikTok performance and gives a data-backed recommendation
"How much budget should I allocate to leads campaigns?"Reviews your leads data and Meta lead-gen campaign performance to recommend a split
"What's my best creative this month?"Identifies the top-performing ad by CPA and CTR and explains why it works
"Give me a 30-day performance summary"Produces a structured executive summary of all campaigns in the last 30 days

The chat maintains a rolling conversation history of up to 20 messages, allowing Claude to answer follow-up questions without you needing to repeat context.

Section 09
Creatives
domainex.app/dashboard/creatives

The Creatives page provides a visual browser for all ad creatives (images, videos, and copy) associated with your synced campaigns. It is useful for auditing what is running, reviewing creative performance, and identifying ads that need to be refreshed.

9.1 Browsing Creatives

Creatives are displayed as cards. Each card shows the ad creative (thumbnail image or video preview), ad name, associated campaign, ad status (Active or Paused), and key performance metrics: Impressions, Clicks, CTR, and Spend.

9.2 Filtering Creatives

Use the campaign filter dropdown at the top of the page to view creatives for a specific campaign. The filter works client-side — all creatives are loaded and the view is narrowed based on your selection.

9.3 Strategic Uses

Section 10
Competitor Intel
domainex.app/dashboard/competitor-intel

The Competitor Intel page integrates with the Meta Ad Library to let you search for ads currently running from any Facebook Page. This is a powerful competitive research tool — you can see what creatives, copy, and offers your competitors are running across Meta.

10.1 Searching the Meta Ad Library

1
Enter a search term
Brand name, product name, or keyword in the search bar.
2
Optionally filter by country
Narrow results to a specific geographic market.
3
Click "Search"
DomainEx queries the Meta Ad Library API and returns matching ads.

10.2 Reading Competitor Ad Results

Each result shows: the Facebook Page running the ad, ad creative (image or video), ad copy and headline, start date (when the ad began running), platforms (Facebook, Instagram, Messenger, Audience Network), and status (Active or Inactive).

📚
Meta Ad Library Scope

The Meta Ad Library shows all currently active ads and recently stopped ads. It does NOT show impression counts, spend data, or targeting details — those are not publicly available.

10.3 Strategic Uses

Section 11
Tracking Domains
domainex.app/dashboard/tracking-domains

The Tracking Domains page allows you to connect custom domains to the DomainEx tracking server. Instead of using track.domainex.app in your links, you can use a branded domain like clicks.yourbrand.com — which improves link trust and may improve click-through rates.

11.1 Adding a Custom Tracking Domain

1
Click "Add Domain"
Enter your custom domain (e.g. track.yourbrand.com).
2
Add the CNAME record
DomainEx displays a CNAME record. In your DNS provider (Cloudflare, GoDaddy, Namecheap, etc.), point your subdomain to track.domainex.app.
3
Wait for DNS propagation
Typically 5–30 minutes, up to 24 hours.
4
Click "Verify"
DomainEx checks that the CNAME is pointing correctly. Once verified, the domain is active.
📋
Plan Limitation

The number of custom tracking domains available depends on your subscription plan. On the trial/starter plan, you may be limited to 1 custom domain. Upgrade your plan in Billing to add more.

Section 12
Automation
domainex.app/dashboard/automation

The Automation page is designed to house rules-based campaign management. In the current version, Automation serves as the foundation for future automated actions.

🚧
Feature In Development

Automation rules are not yet fully active in this release. The page is present and the framework is in place. Testers should note the interface but not expect rules to fire automatically during testing. This feature is on the product roadmap for the next major release.

Section 13
Settings
domainex.app/dashboard/settings

The Settings page is your account configuration hub — managing your profile, connected ad accounts, notification preferences, and security.

13.1 Profile Settings

FieldDescription
Full NameUpdate your display name on the platform
Email AddressYour login email — changing this requires re-verification
PasswordChange your account password (minimum 8 characters)
Profile PictureUpload an avatar (optional)

13.2 Connected Integrations

This section shows all currently connected ad platforms. Click "Disconnect" next to any platform to revoke access. To connect a new account, click "Connect Meta Account" or "Connect TikTok Account" and follow the OAuth flow described in Section 2.5.

13.3 Sync Settings

You can trigger a manual campaign sync from Settings at any time. This forces an immediate pull from Meta/TikTok APIs and updates all campaign, ad, and metrics data in the database. The automatic background sync runs every 30 minutes regardless.

13.4 Signing Out

To sign out of DomainEx, scroll to the bottom of the Settings page and click "Sign Out". Your session is immediately invalidated and you are redirected to the login screen.

Section 14
Billing
domainex.app/dashboard/billing

The Billing page manages your DomainEx subscription — viewing your current plan, upgrading or downgrading, and managing payment methods.

14.1 Current Plan

The top of the Billing page shows your current subscription tier, billing period (monthly or annual), next renewal date, and current usage relative to your plan limits.

14.2 Available Plans

DomainEx offers tiered subscription plans. Plans typically differ by number of connected ad accounts, number of campaigns that can be synced, number of custom tracking domains, AI insight refresh frequency, and priority support access. Contact the DomainEx team or refer to the pricing page on domainex.app for the latest plan details.

14.3 Payment

Billing is processed via Stripe. DomainEx does not store your payment card information — all payment data is handled securely by Stripe. To update your payment method, click "Manage Payment Methods" on the Billing page.

Section 15
Admin Panel
domainex.app/dashboard/admin
🔒
Admin Only

The Admin Panel is only visible to users with the "admin" role. Regular users will not see the "Admin Panel" link in the sidebar.

15.1 Platform Overview Stats

MetricDescription
Total UsersCount of all registered accounts on the platform
Active UsersUsers who have logged in within the last 30 days
Total CampaignsAll campaigns synced across all user accounts
Total Tracking LinksAll tracking links created across all users
Total Postback EventsTotal conversion postbacks received by the tracking server
Platform UptimeCurrent Railway service health status

15.2 User Management

The Users section lists every registered user with their User ID, full name and email address, registration date, last login date, subscription plan, and number of connected accounts, campaigns, and tracking links.

15.3 User Impersonation

Admins can impersonate any user account to view the platform exactly as that user sees it. This is used for debugging user-reported issues, verifying that a user's data is correctly displayed, and onboarding support.

1
Navigate to Admin Panel or Users
Find the user in the list.
2
Click "View as User"
A yellow banner appears at the top: "Viewing as [User Name] (User #[ID]) — all data queries use this user's account".
3
Browse the platform as that user
All pages now show that user's campaigns, analytics, and data.
4
Click "Exit" in the yellow banner
Returns to your admin account.
🛡️
Security Note

User impersonation is logged and audited. Admins cannot modify another user's data while impersonating — it is a read-only view for support purposes. Passwords are never visible to admins.

15.4 Manual Sync Trigger

From the Admin Panel, an administrator can trigger a manual campaign sync for any user or for all users simultaneously. This is useful when a user reports that their data is stale and the 30-minute automatic sync has not yet run.

Section 16
Troubleshooting & FAQ

16.1 Common Issues & Fixes

🔴
No campaign data showing after connecting Meta

Cause: The first sync may not have completed yet, or the Meta OAuth may have failed silently.

Fix: Wait 2 minutes and hard-refresh (Ctrl+Shift+R). Confirm "Meta Account" shows as connected in Settings. If connected but still no data, trigger a manual sync. Check the Operational Feed for a "Meta sync completed" event.

🔴
Revenue shows $0 / ROAS shows 0x

Cause: Revenue requires postback tracking to be active.

Fix: Create a tracking link on the Performance page. Add the DomainEx postback URL to your affiliate network (see Section 6.3). Drive test traffic through your tracking link and confirm a test conversion is received.

🟡
Total Leads shows "—" (dash)

Cause: The leads metric requires the background sync to extract lead action types from the Meta Insights API.

Fix: Wait up to 30 minutes for the next automatic sync, or trigger a manual sync from Settings. Leads will only appear if your Meta campaigns are of type "Lead Generation" or have Facebook Pixel lead events configured.

🟡
ROI Simulator shows "No projection data available"

Cause: The simulator requires at least some campaign metrics data (spend, clicks) to generate projections.

Fix: Ensure at least one campaign has been synced and has spend/click data. The simulator will load projections as soon as it detects non-zero metrics.

🟡
Meta OAuth redirect fails / "processedOAuthCodes" error

Cause: DomainEx uses a server-side Set to track processed OAuth codes. In the event of a server restart (Railway redeploy), this Set resets.

Fix: Simply redo the Meta OAuth flow — click "Connect Meta Account" again. Each OAuth attempt generates a fresh code.

🔴
TikTok connect button does nothing / OAuth fails

Cause: TIKTOK_CLIENT_ID may not be configured in the Railway environment.

Fix: Contact the platform administrator to verify TikTok environment variables are correctly set.

16.2 Frequently Asked Questions

QuestionAnswer
How often is campaign data refreshed?Automatically every 30 minutes via a background sync job. You can trigger an immediate manual sync from Settings at any time.
Is my ad account data shared with other users?No. DomainEx is fully multi-tenant. All data is scoped to your userId. Admin users can only view other accounts by explicitly using the impersonation feature.
Can DomainEx create or modify my Meta campaigns?No. DomainEx only requests read-only permissions (ads_read). It cannot create, pause, modify, or delete any campaigns or ads.
What happens if I disconnect my Meta account?Disconnecting removes the OAuth token. Future syncs will fail for that account. Historical data already synced remains intact — it is not deleted on disconnect.
How does the AI Chat know my campaign data?When you send a message, DomainEx fetches your latest campaign data and injects it into the Claude prompt as context. The context window includes up to 20 messages of conversation history.
My postback is firing but conversions are not showing — why?Common causes: (1) The clickId in the postback URL does not match the clickId generated by your tracking link. (2) The postback URL format is incorrect. (3) DNS is not yet propagated for a custom tracking domain — use the default track.domainex.app for testing.
How long is campaign data stored?DomainEx stores up to 90 days of campaign metrics data. Data older than 90 days is not available in the UI.
What is the difference between "Conversions" and "Leads"?"Conversions" includes all conversion events tracked by Meta (purchases, registrations, lead form submissions). "Total Leads" is specifically Meta-native lead events: form fills, Facebook Pixel lead events, and on-site lead groups.
Section 17
Tester Checklist

Use this checklist when performing a full end-to-end test of DomainEx. Each item should be verified and marked as pass/fail.

Account & Authentication

Meta Integration

Campaigns

Analytics

Performance & Tracking

ROI Simulator

Intelligence / AI

Creatives

Competitor Intel

Admin Panel Admin Only

📋
Known Limitations (Not Bugs)

• Revenue / ROAS show $0 / 0x until postback tracking is configured — expected
• Automation page present but rules do not fire — feature in development
• TikTok sync requires TIKTOK_CLIENT_ID to be configured in environment
• Tracked Events and User Journeys cards show setup prompt — requires pixel configuration

Appendix
Quick Reference

A. Key URLs

PageURL
Main Apphttps://www.domainex.app
Operations Dashboardhttps://www.domainex.app/dashboard
Campaignshttps://www.domainex.app/dashboard/campaigns
Analyticshttps://www.domainex.app/dashboard/analytics
Performancehttps://www.domainex.app/dashboard/performance
ROI Simulatorhttps://www.domainex.app/dashboard/roi-simulator
Intelligencehttps://www.domainex.app/dashboard/intelligence
Creativeshttps://www.domainex.app/dashboard/creatives
Competitor Intelhttps://www.domainex.app/dashboard/competitor-intel
Tracking Domainshttps://www.domainex.app/dashboard/tracking-domains
Settingshttps://www.domainex.app/dashboard/settings
Billinghttps://www.domainex.app/dashboard/billing
Admin Panelhttps://www.domainex.app/dashboard/admin
Tracking Serverhttps://track.domainex.app

B. Postback URL Reference

https://track.domainex.app/postback?clickId={clickId}&revenue={payout}&type=lead

Parameters:

C. Glossary

TermDefinition
CPACost Per Acquisition — how much was spent to generate one conversion
CTRClick-Through Rate — percentage of impressions that result in a click
ROASReturn on Ad Spend — revenue divided by ad spend
ROIReturn on Investment — profit divided by cost, expressed as a percentage
CPMCost Per Mille — cost per 1,000 ad impressions
Postback Server-to-server conversion notification sent from an affiliate network to DomainEx
OAuthOpen Authorisation — secure protocol for granting DomainEx access to your ad account without sharing your password
PixelA JavaScript snippet from Meta or TikTok installed on your website to track visitor actions
Lead (Meta)A conversion event where a user completes a lead form or triggers a pixel lead event on Meta
ImpressionOne display of an ad to one person. Does not require a click.
Sync JobDomainEx's background process that pulls fresh data from Meta/TikTok every 30 minutes
S2S TrackingServer-to-server tracking — conversion data sent directly between servers without relying on browser cookies
Version 1.0  ·  March 2026  ·  domainex.app