SDK de iOS - Referencia de métodos

SDK de iOS - Referencia de métodos

Esta referencia integral documenta todos los métodos disponibles en el SDK de Singular para aplicaciones de iOS. El SDK proporciona funcionalidad para inicialización, tracking de eventos, reporte de ingresos, atribución, cumplimiento de privacidad de datos y configuración. Cada método se presenta con una descripción, firma y ejemplos de uso prácticos para ayudar a los desarrolladores a integrar las capacidades del SDK de Singular en sus aplicaciones.

adRevenue

Método Singular.adRevenue

Realiza tracking de eventos de ingresos por anuncios con información detallada de datos del anuncio. Este método le permite reportar los ingresos generados por anuncios mostrados en su aplicación con varios parámetros para categorizar y analizar el rendimiento de los anuncios.

Firma

+ (void)adRevenue:(SingularAdData *)adData;

Ejemplo de uso

Swift Objective-C
// Create ad data object
let adData = SingularAdData(adPlatform: "AdMob",
                            withCurrency: "USD",
                            withRevenue: 0.05)
adData.adUnitId = "ca-app-pub-123456789/1234567890"
adData.adType = "Rewarded"
adData.adPlacementName = "level_complete"

// Track ad revenue event
Singular.adRevenue(adData)

clearGlobalProperties

Método Singular.clearGlobalProperties

Elimina todas las propiedades globales previamente establecidas. Esto es útil cuando necesita restablecer las propiedades globales, por ejemplo cuando un usuario cierra sesión en su aplicación.

Firma

+ (void)clearGlobalProperties;

Ejemplo de uso

Swift Objective-C
// Clear all global properties
Singular.clearGlobalProperties()

createReferrerShortLink

Métodos Singular.createReferrerShortLink

Crea un enlace corto con información del referente que puede usarse para compartir y atribución. Este método genera enlaces rastreables que pueden compartirse con los usuarios, permitiéndole atribuir instalaciones y actividades a fuentes específicas de referencia.

Firmas

+ (void)createReferrerShortLink:(NSString *)baseLink
                   referrerName:(NSString *)referrerName
                     referrerId:(NSString *)referrerId
              completionHandler:(void (^)(NSString *, NSError *))completionHandler;

+ (void)createReferrerShortLink:(NSString *)baseLink
                   referrerName:(NSString *)referrerName
                     referrerId:(NSString *)referrerId
              passthroughParams:(NSDictionary *)passthroughParams
              completionHandler:(void (^)(NSString *, NSError *))completionHandler;

Ejemplo de uso

Swift Objective-C
// Create a short link for referral
Singular.createReferrerShortLink("https://sample.sng.link/B4tbm/v8fp",
                                 referrerName: "John Doe",
                                 referrerId: "aq239897",
                                 passthroughParams: [
                                     "channel": "sms",
                                     "campaign": "summer_promo"
                                 ]) { link, error in
    if let error = error {
        print("Error creating short link: \(error)")
    } else if let link = link {
        print("Generated short link: \(link)")
        // Share the link with users
    }
}

customRevenue

Métodos Singular.customRevenue

Realiza tracking de eventos de ingresos personalizados con un nombre de evento, moneda, monto e información opcional del producto. Esto permite un tracking de ingresos más específico con nombres de eventos personalizados.

Firmas

+ (void)customRevenue:(NSString *)eventname
          transaction:(id)transaction;

+ (void)customRevenue:(NSString *)eventname
          transaction:(id)transaction
       withAttributes:(NSDictionary *)attributes;

+ (void)customRevenue:(NSString *)eventname
             currency:(NSString *)currency
               amount:(double)amount;

+ (void)customRevenue:(NSString *)eventname
             currency:(NSString *)currency
               amount:(double)amount
       withAttributes:(NSDictionary *)attributes;

+ (void)customRevenue:(NSString *)eventname
             currency:(NSString *)currency
               amount:(double)amount
           productSKU:(NSString *)productSKU
          productName:(NSString *)productName
      productCategory:(NSString *)productCategory
      productQuantity:(int)productQuantity
         productPrice:(double)productPrice;

+ (void)customRevenue:(NSData *)transactionJsonRepresentation
      productJsonRepresentation:(NSData *)productJsonRepresentation;

+ (void)customRevenue:(NSString *)eventName
      transactionJsonRepresentation:(NSData *)transactionJsonRepresentation
      productJsonRepresentation:(NSData *)productJsonRepresentation;

+ (void)customRevenue:(NSString *)eventName
      transactionJsonRepresentation:(NSData *)transactionJsonRepresentation
      productJsonRepresentation:(NSData *)productJsonRepresentation
      withAttributes:(NSDictionary *)attributes;

Ejemplo de uso

Swift Objective-C
// Track a custom revenue event
Singular.customRevenue("premium_subscription",
                       currency: "USD",
                       amount: 9.99)

// Track a custom revenue event with attributes
Singular.customRevenue("in_app_purchase",
                       currency: "USD",
                       amount: 5.99,
                       withAttributes: [
                           "product_id": "com.app.gems_pack_small",
                           "quantity": 1
                       ])

// Track a custom revenue event from a StoreKit transaction
if let transactionData = transaction.payment.requestData,
   let productData = try? JSONSerialization.data(withJSONObject: [
       "productID": transaction.payment.productIdentifier
   ]) {
    Singular.customRevenue("in_app_purchase",
                           transactionJsonRepresentation: transactionData,
                           productJsonRepresentation: productData,
                           withAttributes: ["source": "store"])
}

event

Métodos Singular.event

Realiza tracking de eventos con el nombre especificado y atributos personalizados opcionales. Use estos métodos para realizar tracking de las acciones y participación del usuario dentro de su aplicación.

Firmas

+ (void)event:(NSString *)name;

+ (void)event:(NSString *)name withArgs:(NSDictionary *)args;

+ (void)eventWithArgs:(NSString *)name, ...;

Ejemplo de uso

Swift Objective-C
// Track a simple event
Singular.event("level_completed")

// Track an event with additional parameters
Singular.event("level_completed", withArgs: [
    "level_id": 5,
    "score": 12500,
    "time_spent": 120,
    "difficulty": "medium"
])

getGlobalProperties

Método Singular.getGlobalProperties

Recupera todas las propiedades globales actualmente establecidas. Este método devuelve un diccionario que contiene todas las propiedades globales que se han establecido para el SDK.

Firma

+ (NSDictionary *)getGlobalProperties;

Ejemplo de uso

Swift Objective-C
// Get all global properties
let properties = Singular.getGlobalProperties()
print("Global properties: \(properties)")

getLimitDataSharing

Método Singular.getLimitDataSharing

Recupera el estado actual de limitación del intercambio de datos. Este método devuelve un valor booleano que indica si el intercambio de datos está actualmente limitado.

Firma

+ (BOOL)getLimitDataSharing;

Ejemplo de uso

Swift Objective-C
// Check if data sharing is limited
let isLimited = Singular.getLimitDataSharing()
if isLimited {
    print("Data sharing is currently limited")
}

handlePushNotification

Método Singular.handlePushNotification

Procesa una carga útil de notificación push para atribución. Este método debe llamarse cuando su aplicación recibe una notificación push para permitir que Singular la atribuya correctamente.

Firma

+ (BOOL)handlePushNotification:(NSDictionary *)pushNotificationPayload;

Ejemplo de uso

Swift Objective-C
// Handle a received push notification
func userNotificationCenter(_ center: UNUserNotificationCenter,
                            didReceive response: UNNotificationResponse,
                            withCompletionHandler completionHandler: @escaping () -> Void) {
    let userInfo = response.notification.request.content.userInfo
    Singular.handlePushNotification(userInfo)
    completionHandler()
}

iapComplete

Métodos Singular.iapComplete

Realiza tracking de eventos de finalización de compras dentro de la aplicación. Estos métodos deben llamarse cuando se completa una transacción de compra dentro de la aplicación.

Firmas

+ (void)iapComplete:(id)transaction;

+ (void)iapComplete:(id)transaction
           withName:(NSString *)name;

+ (void)iapComplete:(id)transaction
     withAttributes:(id)value, ...;

+ (void)iapComplete:(id)transaction
           withName:(NSString *)name
     withAttributes:(id)value, ...;

Ejemplo de uso

Swift Objective-C
// Track IAP completion
Singular.iapComplete(transaction)

// Track IAP completion with custom name
Singular.iapComplete(transaction, withName: "premium_upgrade")

isAllTrackingStopped

Método Singular.isAllTrackingStopped

Verifica si todo el tracking está actualmente detenido. Este método devuelve un valor booleano que indica si el tracking está actualmente detenido.

Firma

+ (BOOL)isAllTrackingStopped;

Ejemplo de uso

Swift Objective-C
// Check if tracking is stopped
if Singular.isAllTrackingStopped() {
    print("Tracking is currently stopped")
}

Devuelve si el contenedor de enlace dado (normalmente un NSURL o NSUserActivity) representa un Singular Link. Use esto para evitar su propio manejo de deep link cuando Singular resolverá el enlace a través del singularLinksHandler del SDK.

+ (BOOL)isSingularLink:(id)linkHolder;
Swift Objective-C
// Inspect an incoming URL before handling it yourself
func application(_ app: UIApplication,
                 open url: URL,
                 options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
    if Singular.isSingularLink(url) {
        // Singular's singularLinksHandler will receive the resolved link.
        return true
    }

    // Fall through to your own deep-link handling
    return handleCustomURL(url)
}

limitDataSharing

Método Singular.limitDataSharing

Establece el estado de limitación del intercambio de datos. Use este método para limitar el intercambio de datos según el consentimiento del usuario o los requisitos de privacidad.

Firma

+ (void)limitDataSharing:(BOOL)shouldLimitDataSharing;

Ejemplo de uso

Swift Objective-C
// To limit data sharing (e.g., when user opts out)
Singular.limitDataSharing(true)

// To enable full data sharing (e.g., when user opts in)
Singular.limitDataSharing(false)

registerDeviceTokenForUninstall

Método Singular.registerDeviceTokenForUninstall

Registra el token del dispositivo para el tracking de desinstalación. Este método debe llamarse con el token de notificación push para habilitar el tracking de desinstalación.

Firma

+ (void)registerDeviceTokenForUninstall:(NSData *)deviceToken;

Ejemplo de uso

Swift Objective-C
// Register device token for uninstall tracking
func application(_ application: UIApplication,
                 didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    Singular.registerDeviceTokenForUninstall(deviceToken)
}

resumeAllTracking

Método Singular.resumeAllTracking

Reanuda todas las actividades de tracking que se detuvieron previamente. Use este método para reactivar el tracking después de haberlo detenido.

Firma

+ (void)resumeAllTracking;

Ejemplo de uso

Swift Objective-C
// Resume tracking when user opts back in
Singular.resumeAllTracking()

revenue

Métodos Singular.revenue

Realiza tracking de eventos de ingresos con varios parámetros que incluyen moneda, monto y detalles del producto. Esto permite un tracking integral de ingresos para su aplicación.

Firmas

+ (void)revenue:(id)transaction;

+ (void)revenue:(id)transaction withAttributes:(NSDictionary *)attributes;

+ (void)revenue:(NSString *)currency amount:(double)amount;

+ (void)revenue:(NSString *)currency
         amount:(double)amount
   withAttributes:(NSDictionary *)attributes;

+ (void)revenue:(NSString *)currency
         amount:(double)amount
     productSKU:(NSString *)productSKU
    productName:(NSString *)productName
productCategory:(NSString *)productCategory
productQuantity:(int)productQuantity
   productPrice:(double)productPrice;

Ejemplo de uso

Swift Objective-C
// Track revenue with currency and amount
Singular.revenue("USD", amount: 9.99)

// Track revenue with additional attributes
Singular.revenue("USD", amount: 19.98, withAttributes: [
    "product_id": "premium_gems",
    "quantity": 2
])

// Track revenue with detailed product information
Singular.revenue("USD",
                 amount: 19.98,
                 productSKU: "SKU123456",
                 productName: "Premium Sword",
                 productCategory: "Weapons",
                 productQuantity: 2,
                 productPrice: 9.99)

// Track revenue from a StoreKit SKPaymentTransaction
// (typically inside SKPaymentTransactionObserver.paymentQueue(_:updatedTransactions:))
func paymentQueue(_ queue: SKPaymentQueue,
                  updatedTransactions transactions: [SKPaymentTransaction]) {
    for transaction in transactions where transaction.transactionState == .purchased {
        Singular.revenue(transaction)
        SKPaymentQueue.default().finishTransaction(transaction)
    }
}

setCustomUserId

Método Singular.setCustomUserId

Establece un ID de usuario personalizado para el usuario actual. Esto le permite asociar los datos de Singular con su propio sistema de identificación de usuarios.

Firma

+ (void)setCustomUserId:(NSString *)customUserId;

Ejemplo de uso

Swift Objective-C
// Set custom user ID after user logs in
Singular.setCustomUserId("user_123456")

setDeviceCustomUserId

Función obsoleta: Use setCustomUserId en su lugar.

Método Singular.setDeviceCustomUserId

Establece un ID de usuario personalizado a nivel de dispositivo. Esto le permite asociar los datos de Singular con su propio sistema de identificación de usuarios a nivel de dispositivo.

Firma

+ (void)setDeviceCustomUserId:(NSString *)customUserId;

Ejemplo de uso

Swift Objective-C
// Set device-level custom user ID
Singular.setDeviceCustomUserId("device_user_123456")

setGlobalProperty

Método Singular.setGlobalProperty

Establece una propiedad global que se enviará con todos los eventos. Esto le permite agregar atributos consistentes a todos los eventos sin especificarlos cada vez.

Firma

+ (BOOL)setGlobalProperty:(NSString *)key
                 andValue:(NSString *)value
         overrideExisting:(BOOL)overrideExisting;

Ejemplo de uso

Swift Objective-C
// Set a global property
let success = Singular.setGlobalProperty("user_tier",
                                         andValue: "premium",
                                         overrideExisting: true)
if success {
    print("Global property set successfully")
}

setLimitAdvertisingIdentifiers

Método Singular.setLimitAdvertisingIdentifiers

Habilita o deshabilita el límite en tiempo de ejecución sobre la recopilación de identificadores publicitarios. Este es el equivalente en tiempo de ejecución de la propiedad de tiempo de configuración SingularConfig.limitAdvertisingIdentifiers y puede cambiarse en cualquier momento después de Singular.start(_:).

Este método se excluye de la compilación en la versión Singular Kids SDK (protegido por #ifndef SINGULAR_KIDS). Si está integrando Singular-Kids-SDK, este método no está disponible. El Kids SDK aplica automáticamente un manejo más estricto de los identificadores.

Firma

+ (void)setLimitAdvertisingIdentifiers:(BOOL)enabled;

Ejemplo de uso

Swift Objective-C
// Limit advertising identifiers at runtime (e.g., after a consent dialog)
Singular.setLimitAdvertisingIdentifiers(true)

setLoggingEnabled

Método Singular.setLoggingEnabled

Alterna el registro del SDK en tiempo de ejecución. Equivalente en tiempo de ejecución de SingularConfig.enableLogging. El registro permanece silencioso hasta que tanto este valor sea YES como setLogLevel: se establezca por encima de SingularLogLevelNone.

Firma

+ (void)setLoggingEnabled:(BOOL)enabled;

Ejemplo de uso

Swift Objective-C
// Enable SDK logging for debug builds
#if DEBUG
Singular.setLoggingEnabled(true)
Singular.setLogLevel(.debug)
#endif

setLogLevel

Método Singular.setLogLevel

Establece el nivel de detalle del registro del SDK en tiempo de ejecución. Equivalente en tiempo de ejecución de SingularConfig.logLevel. Los niveles disponibles se definen en SingularLogLevel.h: SingularLogLevelNone, SingularLogLevelError, SingularLogLevelWarning, SingularLogLevelInfo, SingularLogLevelDebug, SingularLogLevelVerbose.

Firma

+ (void)setLogLevel:(SingularLogLevel)logLevel;

Ejemplo de uso

Swift Objective-C
// Set verbose logging for detailed debugging
Singular.setLoggingEnabled(true)
Singular.setLogLevel(.verbose)

setSessionTimeout

Método Singular.setSessionTimeout

Establece el tiempo de espera de la sesión en segundos. Esto determina cuánto dura una sesión de usuario después de que la aplicación pasa a segundo plano.

Firma

+ (void)setSessionTimeout:(int)timeout;

Ejemplo de uso

Swift Objective-C
// Set session timeout to 2 minutes
Singular.setSessionTimeout(120)

skanGetConversionValue

Método Singular.skanGetConversionValue

Recupera el valor de conversión actual de SKAdNetwork. Este método devuelve el valor de conversión actual utilizado para la atribución de SKAdNetwork.

Firma

+ (NSNumber *)skanGetConversionValue;

Ejemplo de uso

Swift Objective-C
// Get the current SKAdNetwork conversion value
let conversionValue = Singular.skanGetConversionValue()
print("Current conversion value: \(conversionValue ?? 0)")

skanRegisterAppForAdNetworkAttribution

Método Singular.skanRegisterAppForAdNetworkAttribution

Registra la aplicación para la atribución de SKAdNetwork. Este método debe llamarse para habilitar la atribución de SKAdNetwork en iOS.

Firma

+ (void)skanRegisterAppForAdNetworkAttribution;

Ejemplo de uso

Swift Objective-C
// Register for SKAdNetwork attribution
Singular.skanRegisterAppForAdNetworkAttribution()

skanUpdateConversionValue

Métodos Singular.skanUpdateConversionValue

Actualiza el valor de conversión de SKAdNetwork. Estos métodos le permiten actualizar manualmente el valor de conversión utilizado para la atribución de SKAdNetwork.

Firmas

+ (BOOL)skanUpdateConversionValue:(NSInteger)conversionValue;

+ (void)skanUpdateConversionValue:(NSInteger)conversionValue
                           coarse:(NSInteger)coarse
                             lock:(BOOL)lock;

Ejemplo de uso

Swift Objective-C
// Update the SKAdNetwork conversion value
let success = Singular.skanUpdateConversionValue(5)
if success {
    print("Conversion value updated successfully")
}

// Update SKAdNetwork 4.0 conversion values (iOS 16.1+)
Singular.skanUpdateConversionValue(5,   // fine value (0-63)
                                   coarse: 1,   // coarse value (0=low, 1=medium, 2=high)
                                   lock: false)

start

Método Singular.start

Inicializa el SDK de Singular con la configuración proporcionada. Este es el primer método que debe llamar para comenzar a usar el SDK de Singular.

Firma

+ (BOOL)start:(SingularConfig *)config;

Ejemplo de uso

Swift Objective-C
// Create configuration object
let config = SingularConfig(apiKey: "SDK_KEY", andSecret: "SDK_SECRET")

// Configure additional options if needed
config.customUserId = "user-123456"
config.sessionTimeout = 60

// Initialize the SDK
Singular.start(config)

startSession

Métodos Singular.startSession

Inicia una nueva sesión con el SDK de Singular. Hay múltiples variantes disponibles para diferentes escenarios de inicialización, incluidas opciones de lanzamiento, actividades del usuario y manejo de deep link.

Firmas

+ (void)startSession:(NSString *)apiKey withKey:(NSString *)apiSecret;

+ (BOOL)startSession:(NSString *)apiKey
             withKey:(NSString *)apiSecret
    andLaunchOptions:(NSDictionary *)launchOptions
withSingularLinkHandler:(void (^)(SingularLinkParams *))handler;

+ (BOOL)startSession:(NSString *)apiKey
             withKey:(NSString *)apiSecret
    andLaunchOptions:(NSDictionary *)launchOptions
withSingularLinkHandler:(void (^)(SingularLinkParams *))handler
andShortLinkResolveTimeout:(long)timeoutSec;

+ (void)startSession:(NSString *)apiKey
             withKey:(NSString *)apiSecret
    andLaunchOptions:(NSDictionary *)launchOptions;

Ejemplo de uso

Swift Objective-C
// Simple session start
Singular.startSession("API_KEY", withKey: "API_SECRET")

// Session start with deep link handler
Singular.startSession("API_KEY",
                      withKey: "API_SECRET",
                      andLaunchOptions: launchOptions,
                      withSingularLinkHandler: { params in
    if let deeplink = params.deeplink {
        print("Deep link received: \(deeplink)")
    }
})

stopAllTracking

Método Singular.stopAllTracking

Detiene todas las actividades de tracking. Use este método para deshabilitar el tracking cuando los usuarios opten por no participar o por cumplimiento de privacidad.

Firma

+ (void)stopAllTracking;

Ejemplo de uso

Swift Objective-C
// Stop tracking when user opts out
Singular.stopAllTracking()

trackingOptIn

Método Singular.trackingOptIn

Indica que el usuario ha aceptado el tracking. Llame a este método cuando el usuario consienta explícitamente al tracking y la recopilación de datos.

Firma

+ (void)trackingOptIn;

Ejemplo de uso

Swift Objective-C
// User has opted in to tracking
Singular.trackingOptIn()

trackingUnder13

Método Singular.trackingUnder13

Indica que el usuario es menor de 13 años. Llame a este método para cumplir con COPPA y otras regulaciones para usuarios menores de 13 años.

Firma

+ (void)trackingUnder13;

Ejemplo de uso

Swift Objective-C
// Notify Singular the user is under 13 years old
Singular.trackingUnder13()

unsetCustomUserId

Método Singular.unsetCustomUserId

Elimina el ID de usuario personalizado previamente establecido. Llame a este método cuando el usuario cierre sesión o cuando ya no desee asociar eventos con el ID de usuario actual.

Firma

+ (void)unsetCustomUserId;

Ejemplo de uso

Swift Objective-C
// Clear custom user ID when user logs out
Singular.unsetCustomUserId()

unsetGlobalProperty

Método Singular.unsetGlobalProperty

Elimina una propiedad global previamente establecida. Llame a este método cuando ya no desee que una propiedad global específica se envíe con los eventos.

Firma

+ (void)unsetGlobalProperty:(NSString *)key;

Ejemplo de uso

Swift Objective-C
// Remove a global property
Singular.unsetGlobalProperty("user_tier")