Troubleshooting
Common issues and solutions
Troubleshooting Guide
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/tracker.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 EMQ Scores
Understanding Your Score
EMQ (Event Match Quality) scores how well Meta can match your event to a Facebook user.
| Score | Rating | Impact |
|---|---|---|
| 8-10 | Excellent | Best ad performance |
| 6-7 | Good | Acceptable |
| 4-5 | Fair | Attribution issues |
| 0-3 | Poor | Significant data loss |
Common Causes of Low Scores
PageView Events Score 1.0-2.0
- This is normal — PageViews rarely have user data
- Focus on conversion events (Purchase, Lead, etc.)
Purchase Events Score < 6.0
- Missing email: Pass
user.emailfrom your order data - Missing phone: Pass
user.phonein E.164 format (+1234567890) - Missing customer ID: Pass
user.external_id
Quick EMQ Boost
Before:
anacoic.track({
event_name: 'Purchase',
custom_data: { value: 99.99, currency: 'USD' }
});
// EMQ: ~2.5
After:
anacoic.track({
event_name: 'Purchase',
user: {
email: customer.email, // +2.5 points
phone: customer.phone, // +2.0 points
external_id: customer.id // +1.0 point
},
custom_data: { value: 99.99, currency: 'USD' }
});
// EMQ: ~8.0
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 your-gateway.anacoic.com.
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. Volume discount: 50% off after 1M signals/month.
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
Community
- GitHub Discussions
- Discord (coming soon)