We’re testing SKAN postbacks via AdAttributionKit but aren’t receiving any requests on our server even after generating development impressions and triggering a postback.
Setup:
- Domain:
https://linkrunner-skan.com
- Configured in
Info.plist
as:
<key>NSAdvertisingAttributionReportEndpoint</key>
<string>https://linkrunner-skan.com</string>
<key>AttributionCopyEndpoint</key>
<string>https://linkrunner-skan.com</string>
-
Apple automatically appends the
.well-known
paths:/.well-known/private-click-measurement/report-attribution/
/.well-known/skadnetwork/report-attribution/
-
ATS diagnostics for the domain: PASS for all tests (TLS 1.0–1.3, PFS disabled, arbitrary loads allowed, etc.)
-
Both
.well-known
paths are publicly accessible and return200 OK
Testing Flow:
-
Enabled Developer → AdAttributionKit Developer Mode on iOS (15+)
-
Followed Apple’s official guide: Testing AdAttributionKit with Developer Mode
-
Generated test impression using:
createAdAttributionKitDevelopmentImpression
implemented in SKANManager.swift
-
Called
Postback.updateConversionValue
withlockPostback: true
-
Created Development Postback from Developer Settings
-
Waited 30+ minutes while intercepting server requests (proxy + backend logs)
What We’ve Tried So Far:
- Confirmed ATS compliance with
nscurl --ats-diagnostics
(all PASS) - Verified
.well-known
paths are accessible publicly without redirects - Tested endpoints manually with a POST request – server responds 200 OK
- Confirmed
Info.plist
entries exactly match Apple’s required keys - Double-checked iOS device is running iOS 15+ with Developer Mode enabled
- Repeated test flow multiple times with fresh impressions and postbacks
- Waited up to 1 hour for postback (in case of delays)
Issue:
No POST requests are being received from Apple to either .well-known
endpoint, even though the setup appears correct and ATS tests pass.
References Used:
Question:
Has anyone faced a similar issue where AdAttributionKit Development Postbacks are not firing despite correct Info.plist
setup, ATS compliance, and reachable .well-known
endpoints?
Any insight into possible missing configuration steps or testing nuances would be greatly appreciated.