| Client | Requests | Tokens | Cost | Last Active | Status |
|---|---|---|---|---|---|
| Loading... | |||||
| Client | Health Score | Requests | Avg Latency | Timeout Rate | Error Rate | Cost | Last Activity | Status |
|---|---|---|---|---|---|---|---|---|
| Loading... | ||||||||
| Time | Client | Type | Latency | Message Preview |
|---|---|---|---|---|
| Loading... | ||||
| Service | Category | Requests | Avg Latency | Last Activity |
|---|---|---|---|---|
| Loading... | ||||
| Client | Voice Requests |
|---|---|
| No voice data yet | |
| Client | Cost |
|---|---|
| No cost data yet | |
| Time | Client | Endpoint | Error |
|---|---|---|---|
| No recent errors | |||
| Business Name | Slug | Website | Status | Submitted | Actions |
|---|---|---|---|---|---|
| Loading... | |||||
Jobs are escalated when our automated scraper (HTTP โ Playwright โ L7 proxy) cannot extract data from a bot-protected website. These jobs require manual intervention using Playwright MCP in Claude Code.
mcp__playwright__browser_navigate โ navigate to the URL
mcp__playwright__browser_snapshot โ capture the page content
# Claim a job
curl -X POST "https://artemis-consolidated-388610795169.us-east4.run.app/admin/scraping/jobs/{job_id}/claim" \
-H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"admin_id": "your-name"}'
# Complete with extracted data
curl -X POST "https://artemis-consolidated-388610795169.us-east4.run.app/admin/scraping/jobs/{job_id}/complete" \
-H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"extracted_data": {"business_name": "...", "phone": "...", "hours": {...}}}'
| Job ID | URL / Domain | Strategy | Retries | Status | Failure Reason | Assigned To | Created | Actions |
|---|---|---|---|---|---|---|---|---|
| Set API key and click Refresh | ||||||||
| Tracking | Client | Customer | Service | Pickup | Status | Created | Actions |
|---|---|---|---|---|---|---|---|
| Click tab to load relay orders | |||||||
| Service | Users | Sessions | Page Views | Bounce Rate | Avg Session | Active Now |
|---|---|---|---|---|---|---|
| Loading... | ||||||
This dashboard pulls data directly from Google Analytics 4 via the Data API.
To add a new service:
388610795169-compute@developer.gserviceaccount.com| Service | Project ID | API Status | Dashboard | Actions |
|---|---|---|---|---|
| Loading... | ||||
Clarity provides session recordings, heatmaps, and user behavior insights at no cost.
To set up Clarity for a new service:
Features: Session recordings, Heatmaps (click, scroll, movement), Rage clicks, Dead clicks, Quick backs, and more!
API Metrics (NEW): With an API token, view Traffic, Users, UX Issues, Device breakdown directly in this dashboard!
| Creative / Campaign | Impressions | Viewable (2s+) | Avg Attention | Interactions | Clicks | Engagement Score |
|---|---|---|---|---|---|---|
| No display ad tracking configured. See setup instructions below. | ||||||
Track engagement quality metrics directly from your HTML5 display ads. Unlike basic impression/click tracking, this captures:
Track when ads are actually seen (50%+ visible for 2+ seconds)
Measure how long users actively engage with your ad
Track hovers, carousel swipes, video plays, and more
Composite quality metric to identify high-intent placements
Quick Start: Register a creative above to get the tracking code, then paste it into your HTML5 ad.
The Client Portal allows your clients to view their chat performance metrics through a secure, bookmarkable URL.
/portal/dashboard?key=portal_xxx| Client | Key Prefix | Display Name | Status | Last Used | Actions |
|---|---|---|---|---|---|
| Click Refresh to load keys | |||||
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/chat/{client_id}/message |
Send chat message |
| GET | /api/chat/{client_id}/health |
Client health check |
| GET | /landing/{client_id} |
Serve client landing page |
| GET | /portal/dashboard?key=xxx |
Client portal dashboard |
| GET | /portal/api/metrics?key=xxx |
Portal metrics API |
| POST | /api/admin/portal/keys |
Create portal API key |
| GET | /api/admin/portal/keys |
List portal API keys |
| DELETE | /api/admin/portal/keys/{id} |
Revoke portal API key |
| GET | /health |
Platform health check |
| POST | /api/admin/cache/flush |
Flush Redis cache |
Quick start guide for new partners and clients.
Step-by-step guide for onboarding new clients.
Embed the chat widget on any website.
Complete technical docs for new developers.
Advanced HTML5 ad performance tracking.
Comprehensive documentation for the entire Cullari & Wardell platform ecosystem - Artemis, Superior UI, Unified Chat, and all 71 Cloud Run services.
Complete architecture overview and documentation index.
AI-powered targeting with 4,260 segments.
All 71 Cloud Run services with URLs.
CI/CD procedures and rollback.
Centralized account database API.
The Display Ads Tracking system provides advanced performance insights beyond basic impressions and clicks. By embedding a tracking snippet in your HTML5 ads, you can measure viewability, attention duration, interaction depth, and calculate engagement scores that predict ad effectiveness.
MRC-compliant: 50% of pixels visible for 1+ second. This is the industry standard for ad viewability.
Total time the ad was in the active viewport. Higher attention = more brand recall opportunity.
Composite score based on attention time, hovers, clicks, and scroll depth. 70+ indicates high engagement.
Tracks hovers, clicks, and scroll activity within expandable/carousel ads.
</body> tag.
data-ad-container attribute or is the parent of the script.
<!-- Display Ad Tracking - [Your Creative Name] -->
<script>
(function() {
var TC = "YOUR_TRACKING_CODE"; // Generated when you register
var EP = "https://api.cwadagency.com/api/ads/track/display-ad";
var sid = 'ad_' + Math.random().toString(36).substr(2, 9);
// State tracking
var state = {
impressionSent: false,
viewableStart: null,
totalViewTime: 0,
interactions: { hover: 0, click: 0, scroll: 0 }
};
// ... (full tracking code is auto-generated)
})();
</script>
| Event Type | Trigger | Data Collected |
|---|---|---|
load |
Page load complete | Load time in milliseconds |
viewable_impression |
50%+ visible for 1 second | View ratio percentage |
click |
User clicks the ad | Click coordinates, element type |
engagement |
Page unload/visibility change | Attention ms, hovers, clicks, scroll depth, engagement score |
The engagement score (0-100) is calculated as:
Score Interpretation: 0-30 = Low, 31-60 = Medium, 61-80 = High, 81+ = Excellent
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/dashboard/display-ads/register |
Register new creative, returns tracking code |
| GET | /api/dashboard/display-ads?period=7d |
Get performance metrics |
| GET | /api/dashboard/display-ads/clients |
List clients with ad creatives |
| POST | /api/ads/track/display-ad |
Receive tracking events (auto-called by snippet) |
When presenting metrics to clients, translate technical data into business value:
"X% of your ads were actually seen by users, not just served to bots or below-the-fold."
"Users spent an average of X seconds looking at your ad, which is Y% above industry benchmark."
"Your creative achieved a score of X/100, indicating high user interest and interaction."
"Your ads performed best on [site X], suggesting audience alignment worth exploiting."