Sponsored polls use signed
vote_url and results_url fields in addition to normal impression tracking. Poll option clicks submit to vote_url; advertiser traffic uses the optional post-vote cta_url. See Sponsored Poll Tracking.Tracking URLs
The click URL (url) contains the tracking URLs as query parameters:
Extract them from the
url query string and fire them yourself, from the user’s device, once the ad is viewable.
Web / Browser Integration
Parseview_url and thrad_view_url from the click URL with URLSearchParams, then fire both from the page once the ad is viewable, using the IntersectionObserver snippet in Count the impression. The request leaves the user’s browser, so the IP and user agent match the bid request.
Mobile Integration (iOS / Android)
Extract and fire the tracking URLs from the app.1. Extract Tracking URLs from the Click URL
Parseview_url and thrad_view_url from the url query string:
2. Fire Impressions on Viewability
When the ad becomes viewable (at least 50% visible for 1 second), fire both URLs. If the app fires directly from the device, the OS networking stack sends the correct headers automatically:3. Handle Clicks
When the user taps the ad, open theurl field. It records the click and redirects to the advertiser’s landing page:
url or cta_url for option buttons. Option buttons submit the selected option_id to vote_url; reveal cta_url only after voting.
Testing in Staging
Staging API keys return test ads with real tracking URLs. Use these to verify your full tracking integration before going live:- Fire
view_urlandthrad_view_url— both must return204 No Content. If you get a400, your request is missing the requiredX-Forwarded-FororUser-Agentheaders. - Fire
url(click) — should redirect to a test landing page.
204 confirms your integration is correctly configured and the impression would be counted in production.