Integra la biblioteca Swift de Topsort para solicitudes de subastas y seguimiento de eventos en aplicaciones móviles
La biblioteca Swift de Topsort permite a nuestros clientes enviar fácilmente solicitudes de subastas y rastrear eventos dentro de aplicaciones iOS.
Requisitos mínimos: toolchain de Swift 6 (Xcode 16) e iOS 15.
Instalación
Instala usando package.swift:
dependencies: [ .package(url: "https://github.com/Topsort/topsort.swift.git", from: "1.4.1"),],targets: [ .target( name: "YourApp", dependencies: [ .product(name: "Topsort", package: "topsort.swift"), .product(name: "TopsortBanners", package: "topsort.swift"), // Only if you display banners ] ),]
Configuración
import SwiftUIimport Topsort@mainstruct MyApp: App { init() { do { try Topsort.shared.configure(Configuration(apiKey: "your-api-key")) } catch { print("Topsort not configured: \(error.localizedDescription)") } } var body: some Scene { WindowGroup { ContentView() } }}
Llama a Topsort.shared.set(opaqueUserId:) después de configurar, siempre que tengas tu propio id para el usuario, con o sin sesión iniciada. Si no lo tienes, el SDK genera un id y lo conserva entre ejecuciones de la aplicación.
Un render registra que un anuncio patrocinado fue insertado en la jerarquía de vistas, por separado de la impresión, que registra cuándo se vuelve visible. Repórtalo apenas el anuncio se coloca en la pantalla, antes de la impresión. Los renders son solo para anuncios patrocinados, por lo que resolvedBidId es obligatorio. winner es uno de los ganadores de la respuesta de la subasta (result.results[i].winners).
let render = RenderEvent(resolvedBidId: winner.resolvedBidId, occurredAt: Date.now)Topsort.shared.track(render: render)
Topsort.shared envía solo el primer render y la primera impresión de cada resolvedBidId para un usuario y descarta cualquier repetición, por lo que reportar desde onAppear es seguro cuando una vista vuelve a aparecer, por ejemplo al desplazarte por una lista diferida (lazy).
Impresiones
Una impresión registra que un anuncio o producto se volvió visible para el comprador.
var body: some View { VStack { AsyncImage(url: self.product.imageURL) Text(self.product.name) } .onAppear { Topsort.shared.track(impression: Event(resolvedBidId: self.winner.resolvedBidId, occurredAt: Date.now)) }}
Para resultados orgánicos, construye el evento con Event(entity: Entity(type: .product, id: product.id), occurredAt: Date.now).
Clics
Un clic registra que el comprador hizo clic en un anuncio o producto.
var body: some View { VStack { AsyncImage(url: self.product.imageURL) Text(self.product.name) } .onTapGesture { Topsort.shared.track(click: Event(resolvedBidId: self.winner.resolvedBidId, occurredAt: Date.now)) }}
Los clics orgánicos usan el mismo inicializador Event(entity:occurredAt:) que las impresiones.
Compras
Una compra registra los productos que adquirió el comprador. Topsort la atribuye a los anuncios con los que el comprador interactuó.
Button("Purchase me!") { let item = PurchaseItem(productId: myProduct.id, unitPrice: myProduct.price) let event = PurchaseEvent(items: [item], occurredAt: Date.now) Topsort.shared.track(purchase: event)}
Mostrando Banners
import SwiftUIimport TopsortBannersstruct ContentView: View { var body: some View { TopsortBanner(bannerAuctionBuilder: .init(slotId: "slotId", deviceType: "device")) .contentMode(.fill) .onNoWinners({ }) .onError({ error in }) .onImageLoad({ }) .buttonClickedAction({ response in }) .frame(maxHeight: 50) .clipped() }}
TopsortBanner reporta el render cuando la subasta devuelve un ganador, la impresión cuando la imagen se carga, y el clic cuando se toca. No reportes estos eventos por tu cuenta para los banners que muestra.Para la documentación completa, consulta el repositorio de GitHub.
¿Esta página le ayudó?
Assistant
Responses are generated using AI and may contain mistakes.