Troubleshooting
Scenario-based fixes for the most common publisher incidents.
Quick diagnosis
What's the symptom?
| Issue | Go to |
|---|---|
| Ads not showing at all | Ads not showing |
| Wrapper not loading / library fails | Wrapper not loading |
| Low revenue (isolate the layer) | Low revenue |
| A bidder is underperforming | Bidder health |
| One slot under-earns | Slot audit |
| GAM won't sync, or a slot won't serve | GAM sync and mapping |
If your incident isn't covered above (for example a fill-rate cliff or a CWV regression), the AI Assistant's live diagnostics or support@animaadtech.com can help.
Using the AI Assistant for troubleshooting
The Assistant can walk you through live diagnosis — "Why aren't ads showing?", "Help me fix low fill rate", "Check my wrapper installation." See the AI Assistant guide.
General triage
Step 1: Identify the scope
| Question | Why it matters |
|---|---|
| All pages or some? | Targeting vs. global issue |
| All devices or one? | Device-specific problem |
| Started when? | Helps identify cause (recent deploy, bidder change, traffic spike) |
| All users or some? | Experiment or caching issue |
Step 2: Check the basics
- Wrapper tag is still in the page's
<head>(view page source) - Recent wrapper release deployed?
- Right domain selected in the sidebar?
- Browser cache cleared (incognito window works)?
Step 3: Check the browser console
Open DevTools → Console on a page that has the tag installed. Look for:
| Signal | Meaning |
|---|---|
| No red errors at all | Wrapper healthy; problem is further downstream |
Wrapper bootstrap failed: … | Config shape error or inventory resolution error |
googletag (google publisher tag) did not load properly… | GPT failed to load |
Prebid did not load properly: setTargetingForGPTAsync is undefined | Prebid failed to load |
inventory defined for different domain with hash '…', no ads will be served | Cached config from a different domain — clear localStorage |
[wrapperTag] Command queue error: … | A queued command threw |
[wrapp] Hook listener error for '<hook>': … | A hook listener threw |
Append ?pbjs_debug=true to the URL and reload to see additional AAM-prefixed debug logs. See Wrapper Debugging for the full signal list.
Step 4: Check Network
DevTools → Network, reload. Look for:
| Request | Expected |
|---|---|
cdn.jsdelivr.net/npm/@<org>/<domain-id>@<version>/dist/wrapp-<domain-id>.js | 200 — wrapper library |
<env-domain>/api/portal/v1/configs/<domain-id>/ | 200 — wrapper config |
| Bid requests to enabled bidders | Going out |
| Bid responses | Returning with bids |
Common issues by category
Setup issues
| Issue | Quick check |
|---|---|
| Tag not installed | View page source — inline <script> with your domain ID present? |
| Wrong domain selected | Check the domain selector at the top of the main sidebar |
| GAM not connected | Account → Setup → GAM — Connection Status green? |
| No layouts | Inventory → Layouts — layouts defined with matching page paths? |
Configuration issues
| Issue | Quick check |
|---|---|
| Slots missing from layout | Open the layout — confirm slots are in its slot list |
| Layout not matching | Confirm URL page-path pattern |
| Bidders disabled | Demand → Prebid — bidders enabled? |
| Floors too high | Slot / layout / wrapper floors — lower to test |
Performance issues
| Issue | Quick check |
|---|---|
| Slow page load | Wrapper Auction Timeout, number of slots, lazy loading |
| Layout shift | Reserved space on ad containers |
| High bounce | Ad density |
When to ask for help
Self-service first
Most issues can be resolved via:
- These docs (the runbook pages above)
- The AI Assistant's live diagnostics
- Inspecting console and network in DevTools
Contact support for
- Account access issues
- Billing questions
- Bidder account setup (when the bidder side is the blocker)
- Feature requests
- Bug reports you've narrowed down
Support: support@animaadtech.com
Diagnostic tools
Browser console probes
// Wrapper library loaded?
typeof window.Wrapp // 'object' if loaded
// Loader telemetry
window.__wrapp_loader // { library_load_ms, config_fetch_ms, config_source, loader_start }
// Wrapper public API
window.wrapperTag?.appVersion
window.wrapperTag?.appBuildDate
window.wrapperTag?.config
window.wrapperTag?.inventoryConfig
// Prebid state
pbjs.getBidResponses()
pbjs.getAllWinningBids()
window.anima does not exist — ignore any older doc or Slack tip that references it.
See Wrapper Debugging for the complete list of signals.
Debug query parameter
Append ?pbjs_debug=true to any URL on your site to enable wrapper debug logging. Logs appear with an AAM prefix.
Release preview
To test configuration before deploying to everyone:
- Use Wrapper → Experiments to roll out changes to a percentage of traffic first
- To return to a previous known-good state, copy the last good deployed release into a new draft and deploy the copy — see Rolling back (there's no one-click rollback button)