Debug and Solutions
Common Issues
Tag Not Firing
Symptom
The Probr Listener tag does not appear in GTM Preview mode, or appears with the status "Not Fired".
Causes and Solutions
| Cause | Solution |
|---|---|
| Missing trigger | Verify that the "All Events" trigger (or your custom trigger) is attached to the tag |
| Tag paused | Check that the tag is not paused in GTM |
| Version not published | Publish a new container version |
| Client-side container | The tag is designed for server-side containers only. Verify you are in the correct container |
Tag Fires but No Data in Probr
Symptom
In Preview mode, the tag shows "Succeeded" but no data appears in the Probr dashboard.
Checks
-
Correct endpoint?
- Verify the URL in the tag configuration
- Test with curl:
curl -X POST https://api.probr.io/ingest \ -H "Content-Type: application/json" \ -H "X-Probr-Key: YOUR_KEY" \ -d '{"container_id":"test","event_name":"test","timestamp_ms":0,"tags":[]}'- You should receive
{"status": "ok"}
-
Correct API key?
- Verify the key matches the site in the Probr dashboard
- Check it hasn't been revoked
-
Firewall / network?
- If your sGTM is behind a firewall, verify that outbound requests to
api.probr.io(port 443) are allowed
- If your sGTM is behind a firewall, verify that outbound requests to
-
Preview vs Production mode
- GTM Preview mode can sometimes behave differently from production
- Also check in production (wait a few minutes after publishing)
"send failed (4xx)" Error in Console
401 — Unauthorized
The API key is missing or invalid.
Solution: check the "Probr Ingest Key" field in the tag configuration.
403 — Forbidden
The key has been revoked or the site is disabled.
Solution: go to Probr dashboard > Sites > check the site and key status.
429 — Rate Limited
You are exceeding your plan's requests per second limit.
Solutions:
- Switch to batched mode to reduce the number of requests
- Upgrade your Probr plan
- Check that you don't have multiple Probr tags firing on the same event
Tag Names Not Showing in Dashboard
Symptom
The dashboard shows "tag_15", "tag_22" instead of actual tag names.
Cause
Tag metadata is not configured in GTM.
Solution
For each tag in your container:
- Open the tag in GTM
- Advanced Settings > Additional Tag Metadata
- Check Include tag name
- Publish a new version
user_data Always Shows False
Symptom
The dashboard shows 0% email/phone/address presence even though you are sending this data.
Possible Causes
-
Data sent in wrong format The tag checks the standard GA4 path:
user_data.email_address user_data.phone_number user_data.address.first_nameIf your data is at a different path (e.g.,
user.email), it won't be detected. -
Data missing server-side The sGTM client (GA4, custom) may not be transmitting
user_datain the event data.- Check in Preview mode, Event Data tab, that
user_datais present
- Check in Preview mode, Event Data tab, that
-
Consent not granted If your CMP blocks sending
user_datawithout marketing consent, the data won't be present in events without consent.
E-commerce Data Always Empty
Symptom
E-commerce metrics are all at 0% even though you have purchases.
Cause
The tag only checks e-commerce data on these events:
purchasebegin_checkoutadd_to_cartadd_payment_info
If your events use different names (e.g., buy, checkout), e-commerce data won't be checked.
Solution
Use standard GA4 event names.
Batched Mode: Data Lost on Restart
Symptom
"Gaps" in data, often correlated with Cloud Run instance restarts.
Cause
The batch buffer is stored in templateDataStorage, which is in-memory per instance. When an instance is terminated (scale down, redeployment), the unsent buffer is lost.
Solutions
- Reduce batch size so flushes happen more frequently
- Switch to per-event mode if data loss is unacceptable
- Stabilize your instances: configure a minimum instance count > 0 in Cloud Run (or equivalent)
Tag Slowing Down My Container
Symptom
Increased response time for the sGTM container after adding the Probr tag.
Short Answer
The Probr tag does not slow down your container. It calls data.gtmOnSuccess() immediately, before data is even sent. The HTTP request is made non-blocking in the addEventCallback callback.
If You Still Observe Slowdown
- Check if the slowdown is caused by another tag added at the same time
- Check latency to the Probr endpoint (should be <100ms)
- In batched mode,
templateDataStorageadds a read/write operation, but its impact is negligible (<1ms)