Switching brand
Refreshing this view...
Settings
Settings
Editing brand
Selected brand
Agency Overview
Multi-brandCompare spend, sales, efficiency, account health, and target gaps across every client brand.
| Brand | Ad Spend | Total Sales | MER | ROAS | CPA | Status | Last Check | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| No brands yet. Create brands to see the overview. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
All ad accounts and integrations across your brands
| Brand | Platform | Account | Status | Last Checked | Actions |
|---|---|---|---|---|---|
| Loading... | |||||
Brands
Account workspaceManage each client brand, setup progress, KPI targets, integrations, and creative intelligence from one place.
Events & Anomalies
Selected brandRevenue spikes, traffic anomalies, spend discrepancies, and CVR shifts detected automatically and attributed to likely sources.
Command Center
Selected brandLive KPI health, orders, AI insights, platform performance, and anomaly context for the selected brand.
Period Comparisons
vs prior snapshotsPlatform Performance
Live Orders
Global Orders
Coming SoonReal-time global order map
Visualize orders across geographies
AI Insights
Powered by ClaudeIntegrations
Connect your ad platforms and tools to start monitoring KPIs.
Amazon Bridge
Selected brandDeep-link ads to Amazon, preserve paid click IDs, sync confirmed purchases, and keep bridge domains brand-specific.
Mobile path
Amazon app
Purchase source
Attribution API
Bonus
Brand Referral
Paid channels
Meta, Google, TikTok
Amazon Ads Account
Connect to automatically create Attribution tags on new bridge links and sync daily purchase reports from Amazon.
Default Attribution Tag — fallback for links without their own auto-generated tag
Each bridge link gets its own tag automatically. This tag is only used as a fallback if a link has no tag yet.
How it works: When you connect your Amazon Ads account, Sentinel calls Amazon's official Attribution API to auto-create a unique tracking tag for each bridge link. These tags append ?maas=...&ref_=aa_maas&tag=maas to your product URL, which Amazon uses to credit purchases back to your ads and pay the ~10% Brand Referral Bonus. This uses Amazon's own Attribution program — fully within ToS. Requires Amazon Brand Registry enrollment.
Custom Bridge Domain
Use a branded subdomain so links look like go.yourbrand.com — SSL is provisioned automatically via Railway
Add these 2 DNS records at your domain registrar:
| Type | Name (click to copy) | Value (click to copy) |
|---|---|---|
| CNAME | go | — |
| TXT | — | — |
Record 2 is required for Railway to verify domain ownership and issue your SSL certificate. Set both as DNS-only (not proxied).
Bridge Links
Each link opens the Amazon app on mobile and appends your Attribution tag automatically
Clicks open the Amazon app on mobile, Amazon.com on desktop.
Clicks go to your landing page. We'll generate a tagged Amazon deep-link URL to put on your "Buy on Amazon" button.
Warranty / Registration Sheet Sync
Connect a Google Sheet of warranty or product registration form submissions — new rows are automatically sent to Meta via CAPI as Purchase events
Bridge Performance
CAPI Data Quality
Meta Custom Audience Sync
Auto-upload customer emails for lookalike & exclusion audiences
Manual / Legacy — SP-API & CSV Import
Amazon Seller Account (SP-API)
Checking connection...
Amazon Orders
Drag & drop your order report, or click to browse
Accepts .csv, .tsv, .txt from Amazon Seller Central
How to download your order report from Seller Central
- Go to Reports → Fulfillment in Seller Central, or open the link above
- Select Orders → All Orders and set your date range
- Click Request .txt Download, wait for it to generate, then download
- Drag and drop the file here — Sentinel handles the rest
How Amazon Bridge Works
Create a bridge link
Paste your Amazon product URL — Sentinel extracts the ASIN and creates a unique redirect
Use as your ad destination
Set the bridge URL as your Meta/Google/TikTok ad landing page — it captures the click ID automatically
Opens the Amazon app on mobile
Instead of a browser, the bridge opens the Amazon app directly — converting at a significantly higher rate from Meta ads
Amazon confirms purchases + BRB credit
Attribution API syncs daily purchase data directly from Amazon. You earn ~10% Brand Referral Bonus on qualifying external-traffic sales.
Alert Configurations
Selected brandConfigure the KPI checks, anomaly detection, Slack routing, and buyer reports Sentinel runs for this brand.
Alert Timeline
Selected brandEvery check run, alert decision, anomaly, and AI recommendation for this brand.
Runs
Latest 50| No history yet |
Kill Rules Log
Selected brandAds that triggered automated kill criteria, with spend, ROAS, CPA, and next-review actions.
AI Creatives
Selected brandGenerate ads, build Brand Brain, inspect creative fatigue, and turn winning inputs into production-ready assets.
Team Members
Access controlInvite teammates, assign access levels, and control exactly which brands each person can work on.
Only admins can add or remove team members. Ask an admin on your team if you need to invite someone.
Add team member
Create an account and grant brand access in one step.
Account created. Share these credentials securely.
Current members
Loading team inventory...
Diagnostics
System healthRun lightweight probes across external services before sharing the app with a client or after changing environment variables.
Ready to run diagnostics
Results will appear here with status, scope, and next action.
API Keys
Developer accessCreate long-lived service keys for Mission Control, OpenClaw, and other external workers. Revoke any key the moment it is no longer needed.
Create API key
Name keys by service and environment so they are easy to revoke later.
Key created. Copy it now.
For security, Sentinel will only show this token once.
Add to Mission Control: ~/.openclaw/agents/main/agent/auth-profiles.json → profiles["sentinel:default"].token
Active keys
Loading key inventory...
Admin
SuperuserManage cross-brand template assets and controlled ownership operations.
System Template Library
Templates here become available to every brand as fallback inspiration. Upload a reference ad and Gemini will reverse-engineer a reusable blueprint.
Transfer brand ownership
Move ownership of one of your brands to a new email. The recipient gets their own account with only this brand visible. They'll set their password via the Forgot Password flow.
Email send failed. Copy this 24-hour reset link and share it with the recipient directly (Slack, text, etc.):
How this works
- System templates are visible to every brand in your account.
- Use them for high-quality references you want the image generator to draw inspiration from across all brands.
- Brand transfers reassign ownership and migrate platform connections. The recipient receives a Forgot Password email to set their credentials.
- Automation defaults to OFF on transfer — recipient inherits a read-only Sentinel.
Attribution
Selected brand CampaignsCompare first-party pixel truth against platform reporting, inspect order-level attribution, and tune model/window settings from one workspace.
Click-Based
View-Through (VTA)
Hover a model to see details
Compare to Custom Range
Data filters
Advanced reporting scope and QA controls.
| Campaign | Ad Spend | ROAS | Purch. | Revenue | CPA | Impr. | Clicks | CTR | Purchases (Meta) | ROAS (Meta) | CPA (Meta) | Conv. Value | AOV | Refund % | Net Rev. | Page CVR | NC Purch. | NCCPA | Pixel Match | Synced (No Pixel) | LTV Rev. | Avg LTV | LTV ROAS | LTV Cust. | Leads | CPL | App DLs | CPAD | Amazon Purch. | Amazon Rev. | Amazon ROAS | DPV | ATC | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading campaigns... | |||||||||||||||||||||||||||||||||||||
Channel Attribution
Live Orders
Refreshes every 30s| Order | Customer | Amount | Source | Campaign | Method | Confidence | Type | Date |
|---|
| Customer | LTV | Orders | AOV | Source | First Order | Last Order |
|---|
Decision OS
Revenue truthCash revenue, click-date accrual, platform claims, and evidence quality in one view.
Attribution Settings
Attribution model is controlled via the dropdown in the top bar above. Windows below accept any value from 1 to 365 days.
Fallback lookback for channels without a per-channel override. Paid/organic/direct/email each have built-in defaults (7/90/90/30 days) unless overridden.
Applied as a floor across all channels during Guesty attribution — overrides the 7-day paid default so vacation-rental research cycles don't clip. Ignored for non-Guesty brands.
Off = Cash basis (revenue counted on order date). On = Accrual basis (revenue counted on ad click date).
Sentinel Tracking Pixel
Pixel health based on received events:
Check if the pixel is installed on a specific page:
Runs as a registered Web Pixel extension inside the Sentinel Shopify App — captures Shopify analytics events (page_viewed, product_added_to_cart, checkout_started, checkout_completed) from a trusted sandbox that can actually reach our backend. Replaces the legacy manual-paste Custom Pixel below, which Shopify's inline-pixel CSP silently blocks.
Brand-new Shopify connections get this installed automatically as part of the OAuth flow. Existing brands: click Reinstall on connected stores to enable it without redoing OAuth (requires the brand's existing token already has the write_pixels scope — connect again if not).
Manual-paste install path. Mostly blocked by Shopify's inline-pixel CSP — events fire inside the sandbox but the outbound fetch is silently dropped, so this surface usually shows zero events even when correctly installed. Use the Sentinel Web Pixel above instead. This section is kept for back-compat with merchants who installed before the Web Pixel extension landed.
Show legacy install steps
Fast path: Click Copy & Open Shopify Admin — copies the code and opens Settings → Customer Events in a new tab, ready to paste.
- Go to Shopify Admin → Settings → Customer Events
- Click Add custom pixel
- Name it Sentinel
- Paste the code (use button above to copy)
- Set permission to Not required
- Click Save → Connect
You installed the Customer Events pixel manually (no Shopify OAuth connection). Add this second snippet to theme.liquid so Sentinel can capture paid clicks on landing pages — the same coverage the auto-install provides.
- Shopify Admin → Online Store → Themes → Edit code
- Open Layout → theme.liquid
- Paste the snippet immediately before
</body> - Click Save
ScriptTag auto-installed via Shopify OAuth
Landing page tracking is already active on every storefront page. The theme script is not needed — no extra steps required.
Routes paid clicks through Shopify's App Proxy so uBlock Origin, Brave shields, and Firefox strict mode can't strip them. Recovers roughly 10-20% of paid traffic that ad blockers currently hide. Coexists with the Customer Events pixel via server-side dedup — safe to enable alongside.
Fast path: Click Enable in Theme Editor — opens your live theme's customizer with the Sentinel Tracker embed pre-focused. Toggle it on, then click Save.
- Shopify Admin → Online Store → Themes
- Click Customize on your published theme
- Open App embeds from the left panel (paint-roller icon)
- Toggle Sentinel Tracker on
- Click Save
For brands using Guesty — install the standard Sentinel pixel on the marketing site, then install this in the booking engine's Custom Code Snippet.
- Confirm the standard Sentinel pixel is installed on the marketing site so booking links carry UTMs
- Go to Guesty → Distribution → Booking Engine → Edit
- Open General Settings (Advanced section)
- Enable Custom code snippet
- Paste the code (use button above to copy)
- Save
Select platform for install steps:
- In Google Tag Manager, click New Tag → Custom HTML
- Paste the snippet below into the HTML field
- Set the trigger to All Pages
- Click Save, then Submit → Publish
- Open your Webflow project → Site Settings → Custom Code
- Paste the snippet into the Head Code field
- Click Save Changes, then republish the site
- Install the free WPCode plugin (or "Insert Headers and Footers")
- Go to WPCode → Header & Footer → Scripts in Header
- Paste the snippet and click Save Changes
Alternative: paste directly into your theme's header.php before </head>.
- Go to Settings → Advanced → Code Injection
- Paste the snippet into the Header field
- Click Save
Note: Code Injection is available on Business plan and above.
- Open Site Settings → General → Custom Code
- Paste the snippet under End of <head> tag
- Click Save and republish
- Find your site's global layout or template file (usually
layout.html,base.html, or similar) - Paste the snippet anywhere inside the
<head>tag - If your CMS has a "Custom Code" or "Head injection" field, paste it there
Loading snippet...
Step 2 — Add UTMs to your ad destination URLs:
Leads are tracked automatically. When a visitor submits any form containing an email field, Sentinel detects the submission and records the lead — no extra code needed.
Step 3 — Track purchases (custom checkout only)
Shopify & Guesty track purchases automatically — skip this step.
For custom checkouts (Stripe, etc.), add one line to your order confirmation page:
<script> // revenue = order total, email = customer email (links purchase to the ad click) window.Sentinel.trackPurchase(149.00, 'customer@example.com'); </script>
The email is optional but strongly recommended — it's the most reliable signal for matching the purchase back to the original ad click. Revenue can be a dynamic value from your backend.
Works with standard HTML forms, AJAX/fetch submissions, and dynamically loaded forms (React, popups, etc.). If you add a custom tracking domain later, just swap the domain in the snippet's src URL.
Tracking Domain
ITP BypassServe the pixel from a brand-specific subdomain. Standard tracking is ready by default; custom domains are optional.
Current brand
Loading...
Best default for most brands. No client DNS work required.
WILDCARD_TRACKING_DOMAIN in Railway variables to enable (e.g. track.roirockstars.com).
Advanced custom domain Not configured
No custom domain configured for this brand.
Use this only when the client can add DNS records for a domain like t.brandname.com. Until then, Sentinel uses the standard shared subdomain above.
DNS setup instructions
Add these records in the client's DNS provider, then click Verify DNS.
SSL is provisioned automatically by Railway once both records are added.
Sync Status
Server-Side Tracking (CAPI)
Send purchase events server-side to Meta and Google for higher match rates, bypassing iOS 14.5 restrictions.
Meta Conversion API
Use "Amazon only" if Shopify purchases are already sent by your native Shopify pixel — avoids duplicate events.
Google Enhanced Conversions
X (Twitter) Conversions API
Sends purchase events to X via their Conversions API using the twclid click ID captured by the Sentinel pixel — enabling deterministic ad-level attribution.
Amazon Attribution
Append your Amazon Attribution tag to bridge link redirects. Enables the Brand Referral Bonus (~10% back on qualifying sales).
Conversion Event Log
Enable CAPI to see server-side events here.
Incrementality has moved to its own page.
Incrementality Intelligence
Selected brand LoadingHoldout-based measurement for separating real incremental revenue from attributed conversions that would have happened anyway.
Blended MER & Efficiency
Total revenue ÷ total ad spend across all channels (deduplicated daily snapshots)
Holdout Test Configuration
A holdout group sees no retargeting ads — their CVR is the organic baseline. The lift over baseline = incremental ROAS.
Incrementality Results
Exposed vs. holdout conversion rate comparison with statistical significance
Campaign Incrementality Intelligence
Per-campaign holdout analysis: see which campaigns truly drive incremental conversions vs. claiming credit for organic purchases
Traffic Spikes & TV Lift
Hours where traffic exceeded 2× the median baseline — useful for detecting TV ad airings, viral moments, or PR hits
Lifetime Value
Selected brand LoadingCompare ad-acquired customers against organic/direct customers, then use cohort forecasts to understand long-term payback quality.
Creator Attribution
Selected brand LoadingTrack influencer and creator performance with UTM redirect links, pixel-attributed orders, and AI opportunity analysis.
Creators
Revenue attributed via pixel + UTM tracking
Add Creator
Creator Links
Create Tracking Link
Tracking and attribution
Pixel Health
Confirm the current brand is collecting visits, purchases, and server-side conversion events.
Viewing brand
Selected brand
Pixel not set up yet
Follow these 3 steps to start tracking visitors and attributing ad spend for this brand.
Configure your pixel domain
Go to Attribution → Settings to generate your pixel ID and custom tracking domain.
Copy & install the snippet
Paste the generated snippet into the <head> of every page on your site (or use the Shopify app block).
Send a test event
Visit your site once, then come back and click Send Test Event above to verify the pixel is working.
Pixel Snippet
UTM Setup Instructions
Add UTM parameters to your ad URLs so every click is attributed to the right ad. Select your ad platform:
In Meta, Google, or TikTok URL-parameter fields, paste the connected string exactly as shown below, without a leading ? or &. If you are manually appending UTMs to a landing page URL, start with ? when the URL has no query string, or & when the URL already has one.
In Meta Ads Manager → Ad level → URL Parameters field, paste:
Tip: set at campaign level so all new ads inherit automatically.
In Google Ads → Campaign/Ad Group → Final URL suffix field, paste:
Paste into "Final URL suffix" at campaign level (not the Tracking template).
In TikTok Ads Manager → Ad level → URL Parameters field, paste:
TikTok uses double-underscore macros. Set at ad group level for consistency.
What each UTM means
For brands that run lead generation (contact forms, booking applications, sign-ups) instead of ecommerce. The same pixel snippet works on any site — no Shopify or revenue platform connection required.
Step 1 — Install the Pixel
Paste the standard pixel snippet (above) into the <head> of every page on your site. The pixel will automatically capture UTM parameters and click IDs when visitors arrive from ads.
Step 2 — That's It!
Leads are tracked automatically. When a visitor submits any form containing an email field, Sentinel detects the submission and records the lead — no extra code needed.
The pixel automatically intercepts form submissions (both standard HTML and AJAX/JavaScript), extracts the email, and fires a lead event. Works with React forms, popup modals, multi-step funnels, and dynamically loaded forms. Deduplicates automatically so repeat submissions don't double-count.
Manual override: window.Sentinel.trackLead(email)
If automatic detection doesn't work for your form (e.g. no email field, custom AJAX handler), you can manually fire a lead event:
// Call this anywhere after the pixel loads
window.Sentinel.trackLead('visitor@example.com');
Step 3 — Add UTMs to Your Ad Links
Use these connected parameters in the URL Parameters field of your Meta ads so each lead is attributed back to the campaign and ad that drove it. If you manually add them to a page URL, use ? before the first UTM or & if the URL already has a question mark.
What You'll See
Lead counts and Cost Per Lead (CPL) will appear in the Attribution table (enable the Leads / Cost Per Lead columns), the Command Center metric picker, and the Agency Overview column selector. No purchase or revenue data is required.
Post-Purchase Survey Triple Whale-style
Ask customers how they found you right after checkout
0
Total Responses
Self-reported attribution from customers on your order confirmation page.
Thank-You Page Snippet
Add this snippet to your Shopify store:
Shopify Admin → Settings → Checkout → scroll to "Additional scripts"
The widget appears 1.5s after the customer lands on the thank-you page and auto-dismisses after submission. Responses are stored once per order.
Promo Code Attribution
Map discount codes to a source / medium / campaign. Orders carrying a mapped code get attributed to that source — overrides the pixel cascade for the highest-confidence signal.
| Code | Source / Medium | Campaign | Note | Status | |
|---|---|---|---|---|---|
| Loading… | |||||
Recent Conversion Events
| Platform | Event | Status | Response | Time |
|---|---|---|---|---|
| Loading events... | ||||
Budget Optimizer
Selected brandUse campaign performance to suggest spend reallocations, reduce waste, and scale stronger pockets.
| Campaign | Platform | Current Spend | Recommended | Change | Reason |
|---|---|---|---|---|---|
|
No optimization run yet
Analyze campaign performance to generate budget recommendations for this brand.
| |||||
Explore Ads
Selected brandBrowse Meta Ad Library, find winning ads, save examples to Swipe File, or clone concepts into AI Creatives.
Inspiration
Selected brandTrack competitor creative, identify durable ads, and turn proven video patterns into brand-ready UGC scripts.
Brands You Follow
Competitor Social — Organic Posts
Scan IG/TikTok handles for organic posts ranked by views.
Competitor Social — Organic Posts
Scan IG/TikTok handles for organic posts ranked by views.
One-off Meta Ad Library search
Look up any brand or keyword without saving them as a tracked competitor.
One-off Meta Ad Library search
Look up any brand or keyword without saving them as a tracked competitor.
Brand Intelligence
Selected brandAI-synthesized positioning, performance, creative, and anomaly signals from this brand's live account history.
Waiting for intelligence data
Weekly Summary
Key Insights
State Snapshot
Watch List
Creative Insights
Winning Formats
Revenue Patterns
Audience Insights
Anomaly History
Swipe File
Selected brandSave competitor ads, uploaded references, and generated winners into one brand-scoped creative library.
Inspiration Library
LoadingCurated ad styles from top DTC brands. These patterns train the AI to generate stronger Meta ad concepts and visual directions.
Upload Ad to Inspiration Library
Revenue Forecast
Selected brandSet monthly revenue and spend targets, monitor pacing, and generate an AI year-end projection.
Revenue to Goal
—
to goal
Spend to Goal
—
to goal
AI Projection
—
projected year-end
No AI projection yet
Generate an end-of-year forecast
Cumulative Revenue vs Target
Monthly Breakdown
Click any target to edit · ROAS auto-computed
Email Intelligence
Selected brand CheckingMonitor Klaviyo revenue, list health, flow coverage, and recent campaign activity for this brand.
Connect Klaviyo
Enter this brand's Klaviyo Private API Key to unlock email revenue, flow coverage, list health, and campaign reporting.
Find it in Klaviyo Settings > API Keys. The key is saved only for this brand.
Health Score
Email Revenue
—
RPE
—
Revenue/email sent
Subscribers
—
Total list size
Open Rate
—
Revenue Leak
—
/month estimated
Flow Coverage
Key automated flows
List Health
All Flows
Recent Campaigns
Bulk Launch
Selected brand No sessionPick a source, choose the destination, let Sentinel map media and copy, then launch paused Meta ads from one reviewable workspace.
Launch queue
A batch-first path modeled around how media buyers actually launch: source media, choose ad sets, build variants, then fix only preflight issues.
Source
Upload files now. Post IDs, Drive, and Sheets can plug into the same queue.
Destination
Set connection, campaign, page, URL, naming, and UTMs once.
Build ads
Auto-group placements, generate Brain copy, and assign creatives in bulk.
Preflight
Fix only flagged issues, then launch paused for Meta review.
Source options
Start from the fastest available input. Everything lands in the same launch queue.
Best-practice batch format
Use matching base names so Sentinel can pair feed/story variants and build carousel groups automatically.
Setup
Vars: {filename} {campaign} {date} — e.g. {campaign} | {filename}
Vars: {filename} {campaign} {date}
Meta AI may adjust your creative.
Drop files here
or browse
JPG · PNG · GIF · MP4 · MOV · up to 100 files
Tip: use Offer_4x5 + Offer_9x16 for placement groups, or Card_01, Card_02 for carousels.
Uploading…
Please don't close this tab
0%
No saved snippets yet
Recent Sessions
Configure setup and upload creatives to get started
Select a Meta connection, campaign, and page first.
Edit Creative
Visual URL shown on ad (e.g. "yoursite.com")
Create Ad Set
Use Existing Ad Set
Drop new ads into an ad set that already exists in your Meta campaign. Targeting, budget, and bidding stay exactly as they are — we just attach the new ads.
Automation Rules
Selected brand LoadingAutomatically pause campaigns or adjust budgets when KPI thresholds are breached.
Ad Queue
Selected brand LoadingReview Slack-ingested or uploaded videos, edit generated ad copy, and create paused Meta ad sets for final review.
Channel Mappings
Map Slack channels to Meta ad accounts for automatic video ingestion
Video Queue
Review transcribed videos, edit ad copy, then create ad sets in Meta
Daily Brief
Selected brand LoadingMorning strategy analysis with KPI context, plain-English diagnosis, and executable recommendations for the current brand.
Loading briefs...
Agent Chat
Selected brand ReadyAsk Sentinel to analyze performance, draft changes, and prepare execution plans that stay reviewable before anything writes back to your ad account.
Conversations
Loading history
Start with a focused task
Create a conversation, then ask for a performance diagnosis, a budget plan, or a campaign change. Execution plans stay gated for review.
Conversation
Plans require approval before execution
Action History
Selected brand LoadingTrack what happened after approved plans ran, understand 24/72-hour performance movement, and promote winning outcomes into the Knowledge Base.
Outcome timeline
Latest 30 tracked outcomes
| Plan | Verdict (72h) | ROAS Δ | CPA Δ | Reason | Date |
|---|---|---|---|---|---|
| Loading… | |||||
Knowledge Base
Selected brand LoadingSOPs, playbooks, winning patterns, and past action outcomes used by the Ad Agent for smarter decisions.
Search Results