diff --git a/Sources/XXClient/Callbacks/TrackServicesCallback.swift b/Sources/XXClient/Callbacks/TrackServicesCallback.swift
index df3043bb2a90252e85dc8181fcd3e7f5d6c6265a..44a8c5ff214855cc96c6e9b9cdc12d2c0ec49190 100644
--- a/Sources/XXClient/Callbacks/TrackServicesCallback.swift
+++ b/Sources/XXClient/Callbacks/TrackServicesCallback.swift
@@ -2,11 +2,11 @@ import Bindings
 import XCTestDynamicOverlay
 
 public struct TrackServicesCallback {
-  public init(handle: @escaping (Result<Data, Error>) -> Void) {
+  public init(handle: @escaping (Result<[TrackServicesCallbackResult], Error>) -> Void) {
     self.handle = handle
   }
 
-  public var handle: (Result<Data, Error>) -> Void
+  public var handle: (Result<[TrackServicesCallbackResult], Error>) -> Void
 }
 
 extension TrackServicesCallback {
@@ -30,7 +30,11 @@ extension TrackServicesCallback {
           return
         }
         if let marshalData = marshalData {
-          callback.handle(.success(marshalData))
+          do {
+            callback.handle(.success(try [TrackServicesCallbackResult].decode(marshalData)))
+          } catch {
+            callback.handle(.failure(error))
+          }
           return
         }
         fatalError("BindingsTrackServicesCallback received nil marshalData and err")