🚧

Coming soon

The feature is in its final development phase. Talk to your account manager to get early access.

Github
Swift Documentation

At Topsort we are developing an SDK for Swift 5 targeting iOS marketplace apps. The SDK is in early stages but can already communicate with our /events endpoint.

As a sneak peak, below are the integration steps using SwiftUI

Sending Hit Events whenever a product is tapped

struct TopsortProduct : View {
  var topsort: TopsortSDK
  var product: Product

  var body: some View {
    MyProduct(...)
    .onGestureTap() {
      Task {
        let event = HitEvent(,
          productId: product.productId,
          auctionId: product.auctionId,
          resolvedBidId: product.resolvedBidId,
        )
        try? await topsort.logHitAsync(hitEvent)
      }
    }
  }
}

Sending impressions event when products are rendered.

struct Content : View {

    var products: [Products]

    var body: some View {
        LazyVGrid(columns: columns, spacing: 2) {
            ForEach(products, id: \self) { product in
                TopsortProduct(product: product)
            }
        }
        .task {
            try? await topsort.logImpressionsAsync(impressions: products.map { p in
                Impression(productId: p.productId, auctionId: p.auctionId, resolvedBidId: p.resolvedBidId)
            })
        }
    }
}