Troubleshooting
Common issues and solutions
Common issues and step-by-step solutions.
Events Not Appearing in Meta/Facebook
Step 1: Check Live Logs
- Go to your Dashboard
- Select your gateway
- Go to Live Logs tab
- Send a test event from your site
- Look for the event in the logs
If you DON’T see the event:
- The tracker isn’t installed correctly
- See Installation Issues
If you see the event with 200 status:
- The event is reaching Anacoic
- Proceed to Step 2
If you see the event with error status:
- Check the error message in the log
- Common: Invalid Pixel ID, expired token
Step 2: Verify Meta Integration
- Go to gateway Integrations tab
- Check that Meta CAPI is toggled ON
- Verify:
- Pixel ID is correct (found in Meta Events Manager)
- Access Token is valid (not expired)
- Click Save
Step 3: Check Meta Events Manager
- Go to Meta Events Manager
- Select your Pixel
- Go to Test Events tab
- Send an event from your website
- Look for “Browser” and “Server” events
If only Browser shows:
- Your Meta Pixel (browser) is working
- Anacoic server events aren’t reaching Meta
- Check your Access Token hasn’t expired
If neither shows:
- Your Meta Pixel isn’t firing
- Check that the base pixel code is on your site
Step 4: Common Meta Errors
| Error | Cause | Fix |
|---|---|---|
| ”Invalid Pixel ID” | Wrong Pixel ID | Copy from Events Manager → Settings |
| ”Invalid Token” | Expired access token | Generate new token in Events Manager |
| ”Event Missing Email” | Low EMQ | Add user.email to events |
| ”Deduplication Issue” | Duplicate event_id | Use unique IDs per event |
Installation Issues
Tracker Not Loading
Check in Browser DevTools:
- Open DevTools (F12)
- Go to Console tab
- Look for errors containing “anacoic”
Error: “Failed to load script”
GET https://edge.anacoic.com/v1/ana.js net::ERR_BLOCKED_BY_CLIENT
Cause: Ad blocker or browser privacy setting
Fixes:
- Use a custom domain (bypasses blockers)
- Add
edge.anacoic.comto ad blocker whitelist
Error: “anacoic is not defined”
Cause: Script not loaded before calling anacoic.track()
Fix:
// Wait for script to load
window.addEventListener('load', function() {
if (window.anacoic) {
window.anacoic.track({...});
}
});
CORS Errors
Access to fetch at 'https://edge.anacoic.com/track'
from origin 'https://yoursite.com' has been blocked by CORS policy
Cause: Domain Locking is enabled but your domain isn’t allowed
Fix:
- Go to gateway Security tab
- Add your domain to Allowed Origins
- Or disable Block Unknown Hosts
Low Event Match Quality in Meta
What the score is
Event Match Quality (EMQ) is Meta’s own 0–10 rating of how well it can match your events to people. Meta shows it per event in Events Manager → Data sources → your dataset. Only Meta can calculate it; Anacoic shows the inputs, meaning which match keys your events carry, under Diagnostics → Signal quality.
Common causes of a low score
PageView and other browsing events
- Usually carry few identifiers. That’s normal.
- Focus on conversion events (Purchase, Lead, and so on).
Purchase events
- Missing email: pass
user.emailfrom your order data - Missing phone: pass
user.phonein E.164 format (+1234567890) - Missing customer ID: pass
user.external_id
Adding match keys
Before:
anacoic.track({
event_name: 'Purchase',
custom_data: { value: 99.99, currency: 'USD' }
});
After:
anacoic.track({
event_name: 'Purchase',
user: {
email: customer.email, // hashed at the edge
phone: customer.phone, // E.164 format
external_id: customer.id
},
custom_data: { value: 99.99, currency: 'USD' }
});
Then compare the match-key coverage in Anacoic and the score in Events Manager after a few days of traffic.
Platform-Specific Tips
Shopify:
- Use
{{ customer.email }}on thank you page - Phone must be formatted:
{{ customer.phone | replace: ' ', '' }}
WooCommerce:
- Access via
$order->get_billing_email() - Convert phone to E.164 format
React/Next.js:
- Pass user data from your auth context
- Use server-side tracking for secure data
Duplicate Events
Symptoms
- Same purchase appears twice in Meta
- Events Manager shows “Deduplication Issues”
Causes
1. Same event_id sent twice
// WRONG: Static ID
anacoic.track({
event_id: 'purchase_123' // Same every time!
});
// RIGHT: Unique ID
anacoic.track({
event_id: `purchase_${orderId}_${timestamp}`
});
2. Browser + Server both sending
- Meta Pixel (browser) sends Purchase
- Your server also sends Purchase
- Both reach Meta
Fix: Use the same event_id in both:
// Browser
fbq('track', 'Purchase', {eventID: 'order_123_1704067200'});
anacoic.track({event_id: 'order_123_1704067200'});
Agent Gateway Issues
AI Agents Not Seeing My Data
Step 1: Check Agent Gateway is Enabled
- Dashboard → Gateway → Agent tab
- Toggle “Agent Gateway” to ON
- Save configuration
Step 2: Test in AI Agent Preview
- Go to AI Agent Preview section
- Click Connect to Preview
- Click Preview Pricing
- Check if pricing data appears
Step 3: Check Pricing JSON Format
Correct:
[
{"name": "Core", "price": 0.001, "unit": "per event"},
{"name": "Pro", "price": 49, "unit": "per month"}
]
Common mistakes:
- Not an array ❌
- Missing
namefield ❌ - Price as string instead of number ❌
Step 4: Verify MCP Endpoint
Test directly:
curl https://edge.anacoic.com/v1/mcp/sse?gid=YOUR_GATEWAY_ID
Should return SSE stream (not 404).
Tools Not Working
“Webhook not configured” error:
- Enable a tool (e.g., “Book Demo”)
- Enter Webhook URL (e.g., Zapier webhook)
- Save Agent configuration
Webhook not firing:
- Test webhook with curl first:
curl -X POST YOUR_WEBHOOK_URL \
-H "Content-Type: application/json" \
-d '{"test": true}'
- Check webhook receives the test
- If not, check URL is correct
Rate Limiting
Symptoms
- Events return 429 error
- “Rate limit exceeded” message
Limits
- 100 requests/minute per gateway
- Burst allowed for first 10 requests
Solutions
1. Batch events (if applicable)
// Instead of 100 individual requests
// Batch into fewer requests with multiple events
2. Check for loops
// WRONG: Infinite loop
trackEvent();
setInterval(trackEvent, 100); // Every 100ms!
// RIGHT: Reasonable frequency
setInterval(trackEvent, 60000); // Every minute
3. Upgrade plan
- All plans (Trial/Core/Pro) share the same rate limits
- Contact support for custom limits
Custom Domain Issues
DNS Not Verifying
Step 1: Check CNAME Record
dig metrics.yoursite.com CNAME
Should return:
metrics.yoursite.com. CNAME edge.anacoic.io.
Step 2: Wait for Propagation
- DNS changes take 5 minutes to 48 hours
- Usually 5-30 minutes
Step 3: Check Cloudflare Settings If using Cloudflare:
- Set record to DNS Only (grey cloud, not orange)
- Proxy mode breaks CNAME validation
HTTPS Certificate Issues
“Certificate not valid”
- Certificate is auto-provisioned
- Can take up to 1 hour after DNS verification
- Try again later
Billing & Usage
Where to Check Usage
- Dashboard → Settings → Organization
- Shows current billing period and event count
Understanding Billing
Trial: 7 days from signup with 10,000 signal limit. No credit card required.
Core: $0.001/signal with $5 monthly minimum. 3 destinations, MCP 100/day limit.
Pro: $49/month includes 100K signals, then $0.001/signal. Review the current pricing page for the latest high-volume plan details.
Max: $199/month includes 500K signals, then $0.0008/signal. High availability, dedicated support.
Usage Not Resetting
Trial: Automatically expires after 7 days. Core/Pro: Billing cycle based on Stripe subscription date.
If billing seems incorrect:
- Check subscription status in Settings → Organization
- Verify Stripe webhook is configured (for Pro)
- Contact support
Getting More Help
Before Contacting Support
- Check Live Logs — shows exact error messages
- Check Agent Access Logs — for AI gateway issues
- Note your gateway ID
- Note specific error messages
Contact Support
Email: [email protected]
Include:
- Gateway ID
- Store/website URL
- Screenshot of error
- What you’ve tried