Post

Replies

Boosts

Views

Activity

AdAttributionKit Development Testing problem
Hello. I would like to ask for an assistance with testing AdAttributionKit flow that seems not working. Goal: to close the AdAttributionKit logic flow loop starting from presenting and handling Ad in a publisher app and ending with receiving a postback request on my end point. Problem: No postback request is received on my configured domain. It looks like AdAttributionKit cannot connect between AppImpression invocation in Publisher App and updating postback from the Advertised App, hence no update postback request are transmitted to my endpoint. What was done: Testing device iPhone 13, iOS 18.0.1 Production Apple ID AdAttributionKit Developer Mode is enabled iPhone is reset and restarted Publisher App Test publisher application was created and configured (according to Apple's documentation [https://developer.apple.com/documentation/adattributionkit/configuring-a-publisher-app]) with the following: AdNetworkIdentifiers item was added to app's Info.plist with number of Ad Network IDs. I tried to use in my tests (used below insted of the placeholder): Registered SKAdNetwork Ad Network ID that ends with .skadnetwork Not registered Ad Network ID that ends with .adattributionkit JWS Impression was created with the following JWS Header: {"kid" : "","alg" : "ES256"} JWS Payload: {"impression-type" : "app-impression","impression-identifier" : "9547875E-C052-44CD-8CB9-193978CC5AB7", "timestamp" : 1729162517373,"publisher-item-identifier" : 0,"source-identifier" : 1111,"ad-network-identifier" : "","advertised-item-identifier" : 1125517808} JWS Data: "BASE64(JWS-Header)"."BASE64(JWS-Payload)"."SIGNED("BASE64(JWS-Header).BASE64(JWS-Payload)")" Signing was done with temporary key (created every time the JWS is composed) by the following: let signingInput = "\(headerBase64String).\(payloadBase64String)" let privateKey = Curve25519.Signing.PrivateKey() var encodedSignature = "" do { let signature = try privateKey.signature(for: Data(signingInput.utf8)) encodedSignature = base64UrlEncode(signature) } catch { print("Error signing JWS: \(error.localizedDescription)") } UIEventAttributionView (with UITapGestureRecognizer) was added to my ViewController's main view and in a handling method of TAP event, AppImpression was created baased on JWS above and handleTap() method of this AppImpression instance was called. AppImpression was tapped and AppStore has been launched (because to this moment no advertised app with was installed on a device): attributionkitd Preflighting impression AAKPubApp Connection established attributionkitd Validated impression for advertised app: <MY-ADVERTISED-APP-APPSTORE-ID-PLACEHOLDER> attributionkitd No distributor bundle ID received from app fetch attributionkitd Distributor metadata cached for item ID <MY-ADVERTISED-APP-APPSTORE-ID-PLACEHOLDER> attributionkitd Is anything happening? attributionkitd Processing tap attributionkitd Successfully validated publisher application attributionkitd Successfully finalized click through impression attributionkitd Impression is not eligible for re-engagement attributionkitd Launching distributor for itemID: <MY-ADVERTISED-APP-APPSTORE-ID-PLACEHOLDER> attributionkitd [0x70008b340] activating connection: mach=false listener=false peer=false name=(anonymous) attributionkitd Distributor launch completed for item ID: <MY-ADVERTISED-APP-APPSTORE-ID-PLACEHOLDER> Advertised App Advertised App is an existing application on the AppStore. It was configured according Apple's documentation [https://developer.apple.com/documentation/adattributionkit/configuring-an-advertised-app]. AttributionCopyEndpoint key with my domain ("https://<MY_DOMAIN_PLACEHOLDER>.com") was added to app's Info.plist EligibleForAdAttributionKitReengagementPostbackCopies key with "YES" value was added to Info.plist as well. Number of postback method calls were added to the application in different places including application:didFinishLaunchingWithOptions. Used AdAttributionKit method - (updateConversionValue(_:coarseConversionValue:lockPostback:)) [https://developer.apple.com/documentation/adattributionkit/postback/updateconversionvalue(_:coarseconversionvalue:lockpostback:)] Application is written in Objective-C while using AdAttributionKit via Swift-to-ObjC regular bridging. I tried to use Advertised App in the following ways: To run it from Xcode. This way, when the advertised app is already installed, AppImpression tap in the publisher App doesn't recognize the Advertised App is installed and launches AppStore. To install it from TestFlight. This way, AppImpression tap in the publisher App successfully recognizes the Advertised App is installed and launches it. Both ways yield the same result - explanation below. Advertised App launched - while calling update postback method in application:didFinishLaunchingWithOptions attributionkitd Updating postback attributionkitd Queueing update postback attributionkitd [TXNf0dc] ๐Ÿ Beginning transaction (Task runner: atomic) attributionkitd Begin update postback <MY-APPLICATION-NAME-PLACEHOLDER> Connection established attributionkitd [TXN5421] ๐Ÿ Ending transaction (<private>) (<private>) attributionkitd Retrieved conversion window thresholds: <private> attributionkitd [TXNf0dc] ๐Ÿ Ending transaction (<private>) (<private>) ... attributionkitd Calling launch handler for com.apple.attributionkitd.development-postback-transmission attributionkitd Begin task for identifier: com.apple.attributionkitd.development-postback-transmission attributionkitd Running barktivity: com.apple.attributionkitd.development-postback-transmission attributionkitd [TXN46f0] ๐Ÿ Beginning transaction (<private>) attributionkitd Found 0 postbacks eligible for transmission for environments: <private> attributionkitd Postback transmission completed attributionkitd [TXN46f0] ๐Ÿ Ending transaction (<private>) (<private>) attributionkitd Marking task <BGRepeatingSystemTask: com.apple.attributionkitd.development-postback-transmission> complete attributionkitd Task completed for identifier: com.apple.attributionkitd.development-postback-transmission The problem I can see here is in the following line: attributionkitd Found 0 postbacks eligible for transmission for environments: <private> It looks like AdAttributionKit cannot connect between AppImpression invocation in Publisher App and updating postback from the Advertised App. Please correct me in case I'm doing anything wrong or missing anything. Thank you very much.
1
0
259
Oct โ€™24