Overview
Validating your pixel setup ensures that tracking data is actively reaching GroundTruth Ads Manager.
While this article is written for Google Chrome (using Chrome DevTools), the process is similar in Firefox and Safari. Select the pixel type below to review step-by-step instructions.
Validation Methods
To verify that your GroundTruth Pixel is firing and sending data:
- Open an Incognito Window and navigate to your website page where the pixel is installed.
- Right-click anywhere on the page and select Inspect to open Chrome DevTools.
- Click on the Network tab at the top of the developer tools panel and refresh/reload the page.
- In the Network filter bar (
), type event.
- Select the event request and confirm:
- Request URL: https://vela.groundtruth.com/v2/event
- Request Method: POST
- Status Code: 204 No Content (confirms your event request was successfully sent to and accepted by GroundTruth)
Diagnostic Check: Confirming Script Download
If you do not see the event call, verify that the browser is fetching the base JavaScript file:
- In the Network filter bar search for pixel.v2.js.
- 200 OK or 304 Not Modified: Confirms the browser successfully downloaded the GroundTruth script.
Verifying Custom Event Placement
- Right-click anywhere on the confirmation page where the custom event is placed (e.g., "Thank You" or confirmation page) and select Inspect.
- Select the Elements tab to view the live HTML source code.
- Press Ctrl + F (PC) or Cmd + F (Mac) to open the code search bar.
- Type gtpx into the search box:
- The first result will typically be the base pixel script.
- Click the "Next" arrow in the search bar to find your specific custom event snippet.
-
Ensure the custom event matches the required syntax and label string (e.g., gtpx("conversion",{label: "my_goal_name"})) and uses standard straight quotes:
- Open an Incognito Window and navigate to your website page where the legacy pixel is installed.
- Right-click anywhere on the page and select Inspect to open Chrome DevTools.
- Click on the Network tab at the top of the developer tools panel and refresh/reload the page.
- In the Network filter bar (
), type xad.
-
Select the pixel ID and confirm:
- Request URL: https://bidagent.xad.com/conv/pixel ID with ts
- Request Method: GET
- Status Code: 200 OK (fresh request) or 304 Not Modified (cached request). Either confirms that the legacy image tag executed successfully.
Troubleshooting Common Pixel Issues
| Issue | Root Cause | Solution |
|---|---|---|
| Pixel status shows "Blocked" | Security / Content Security Policy (CSP) rules blocking external script execution. | Whitelist *.groundtruth.com in your site's Content Security Policy. |
| Pixel not firing in GTM | Strict URL trigger matching failing due to landing page query strings. | Switch GTM triggers from Exact Match to RegEx Matching to account for appended parameters (e.g., ?rid=...). |
| No events firing in console | Active browser extension or ad-blocker blocking tracking requests. | Disable browser ad-blockers or perform verification testing strictly in clean Incognito mode. |
| V1 DB out of sync | GTID identifier string not linked in database tables. | For V1 legacy accounts, confirm the GTID was added to the xadcms.pixels database table. |
| Missing attribution or conversion data | Server/CDN redirects stripping appended parameters (rid, campaignId) | Use final destination URLs directly in Ads Manager without redirect chains, or ensure your server/CDN is configured to preserve query parameters across all 301/302 hops. |
| Broken parameter parsing in tags | Multiple question marks (?) present in the destination URL string. | Ensure only the first query parameter uses ?. Join all subsequent parameters or UTM tags using &. |
Google Tag Manager Debugging
- Open GTM and click Preview in the top right corner to enter Tag Assistant debugging mode.
- Enter your website URL and click Connect.
- Perform the test pageview or conversion action in the opened browser window.
- Verify under the Tags Fired section in Tag Assistant that your GroundTruth Pixel tag triggered successfully.
- Publish Workspace: Ensure you click Submit / Publish in GTM to push your changes live to your production website.
URL Redirects & Tracking Parameter Best Practices
To accurately measure post-ad engagement and web conversions, the GroundTruth platform automatically appends key tracking parameters (rid, campaignId, and adgroupId) to your campaign destination URLs. You do not need to manually add these parameters.
To ensure your pixel receives these attribution signals, follow these best practices:
- Use Final Destination URLs Directly: Redirects (301 or 302 hops) are the primary cause of lost attribution data. GroundTruth cannot control whether your server, CDN, or plugin strips parameters during a redirect. We strongly recommend using your direct, final landing page URL in Ads Manager rather than a redirecting link.
-
Verify Query Parameter Preservation: You can test if your website preserves query parameters across redirects:
- Open Chrome DevTools and navigate to the Network tab.
- Paste your clickthrough URL with a test parameter appended (e.g., https://your site.com/?rid=test123) into your browser address bar.
- Inspect each redirect hop (301 or 302) in the Network panel to confirm that ?rid=test123 is preserved all the way to the final page load.
- Format URLs Correctly: A URL should only contain one standard question mark (?) as the query string delimiter. Any additional parameters (such as appended UTM tags) must be joined using an ampersand (&). Multiple ? characters in a single URL string will break parameter parsing.
Frequently Asked Questions
What's the difference between seeing a 200 (OK) and a 304 (Not Modified) status code?
These status codes tell you how a static resource (like the pixel.v2.js library or a legacy image tag) was fetched by the browser:
- 200 (OK): The browser requested the JavaScript file from the server and successfully downloaded a fresh copy.
- 304 (Not Modified): The browser checked the JavaScript file, determined it had not changed since the last visit, and loaded the cached version.
What's the difference between a 200 (OK) and a 204 (No Content) status code?
Why should I use the "Filter" function instead of the "Search" function in the Network tab?
Can I test click tracking in real time after updating my destination URL?
Need Help?
For additional support and to ensure your campaign is set up for success, please reach out to your dedicated GroundTruth representative, or contact our Self-Serve team directly at selfservehelp@groundtruth.com.
Comments
Please sign in to leave a comment.