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
// 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)
// Create ad data object
SingularAdData *adData = [[SingularAdData alloc] initWithAdPlatform:@"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
// Clear all global properties
Singular.clearGlobalProperties()
// 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
// 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
}
}
// 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"
}
completionHandler:^(NSString *link, NSError *error) {
if (error) {
NSLog(@"Error creating short link: %@", error);
} else {
NSLog(@"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
// 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"])
}
// 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
NSData *transactionData = transaction.payment.requestData;
NSData *productData = [NSJSONSerialization
dataWithJSONObject:@{@"productID": transaction.payment.productIdentifier}
options:0
error:nil];
if (transactionData && productData) {
[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
// 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"
])
// 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"
}];
// Track an event with variable arguments
[Singular eventWithArgs:@"purchase",
@"item_id", @"sword_01",
@"price", @9.99,
nil];
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
// Get all global properties
let properties = Singular.getGlobalProperties()
print("Global properties: \(properties)")
// Get all global properties
NSDictionary *properties = [Singular getGlobalProperties];
NSLog(@"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
// Check if data sharing is limited
let isLimited = Singular.getLimitDataSharing()
if isLimited {
print("Data sharing is currently limited")
}
// Check if data sharing is limited
BOOL isLimited = [Singular getLimitDataSharing];
if (isLimited) {
NSLog(@"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
// 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()
}
// Handle a received push notification
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
withCompletionHandler:(void (^)(void))completionHandler {
NSDictionary *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
// Track IAP completion
Singular.iapComplete(transaction)
// Track IAP completion with custom name
Singular.iapComplete(transaction, withName: "premium_upgrade")
// Track IAP completion
[Singular iapComplete:transaction];
// Track IAP completion with custom name
[Singular iapComplete:transaction
withName:@"premium_upgrade"];
// Track IAP completion with attributes
[Singular iapComplete:transaction
withAttributes:@"user_level", @42,
@"is_first_purchase", @YES,
nil];
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
// Check if tracking is stopped
if Singular.isAllTrackingStopped() {
print("Tracking is currently stopped")
}
// Check if tracking is stopped
if ([Singular isAllTrackingStopped]) {
NSLog(@"Tracking is currently stopped");
}
isSingularLink
Método Singular.isSingularLink
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.
Firma
+ (BOOL)isSingularLink:(id)linkHolder;
Ejemplo de uso
// 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)
}
// Inspect an incoming URL before handling it yourself
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
if ([Singular isSingularLink:url]) {
// Singular's singularLinksHandler will receive the resolved link.
return YES;
}
return [self 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
// 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)
// To limit data sharing (e.g., when user opts out)
[Singular limitDataSharing:YES];
// To enable full data sharing (e.g., when user opts in)
[Singular limitDataSharing:NO];
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
// Register device token for uninstall tracking
func application(_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
Singular.registerDeviceTokenForUninstall(deviceToken)
}
// Register device token for uninstall tracking
- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[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
// Resume tracking when user opts back in
Singular.resumeAllTracking()
// 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
// 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)
}
}
// 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 paymentQueue:updatedTransactions:)
- (void)paymentQueue:(SKPaymentQueue *)queue
updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions {
for (SKPaymentTransaction *transaction in transactions) {
if (transaction.transactionState == SKPaymentTransactionStatePurchased) {
[Singular revenue:transaction];
[[SKPaymentQueue defaultQueue] 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
// Set custom user ID after user logs in
Singular.setCustomUserId("user_123456")
// 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
// Set device-level custom user ID
Singular.setDeviceCustomUserId("device_user_123456")
// 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
// Set a global property
let success = Singular.setGlobalProperty("user_tier",
andValue: "premium",
overrideExisting: true)
if success {
print("Global property set successfully")
}
// Set a global property
BOOL success = [Singular setGlobalProperty:@"user_tier"
andValue:@"premium"
overrideExisting:YES];
if (success) {
NSLog(@"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
// Limit advertising identifiers at runtime (e.g., after a consent dialog)
Singular.setLimitAdvertisingIdentifiers(true)
// Limit advertising identifiers at runtime (e.g., after a consent dialog)
[Singular setLimitAdvertisingIdentifiers:YES];
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
// Enable SDK logging for debug builds
#if DEBUG
Singular.setLoggingEnabled(true)
Singular.setLogLevel(.debug)
#endif
// Enable SDK logging for debug builds
#ifdef DEBUG
[Singular setLoggingEnabled:YES];
[Singular setLogLevel:SingularLogLevelDebug];
#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
// Set verbose logging for detailed debugging
Singular.setLoggingEnabled(true)
Singular.setLogLevel(.verbose)
// Set verbose logging for detailed debugging
[Singular setLoggingEnabled:YES];
[Singular setLogLevel:SingularLogLevelVerbose];
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
// Set session timeout to 2 minutes
Singular.setSessionTimeout(120)
// 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
// Get the current SKAdNetwork conversion value
let conversionValue = Singular.skanGetConversionValue()
print("Current conversion value: \(conversionValue ?? 0)")
// Get the current SKAdNetwork conversion value
NSNumber *conversionValue = [Singular skanGetConversionValue];
NSLog(@"Current conversion value: %@", conversionValue);
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
// Register for SKAdNetwork attribution
Singular.skanRegisterAppForAdNetworkAttribution()
// 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
// 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)
// Update the SKAdNetwork conversion value
BOOL success = [Singular skanUpdateConversionValue:5];
if (success) {
NSLog(@"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:NO];
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
// 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)
// Create configuration object
SingularConfig *config = [[SingularConfig alloc] initWithApiKey:@"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
// 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)")
}
})
// 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:^(SingularLinkParams *params) {
NSLog(@"Deep link received: %@", params.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
// Stop tracking when user opts out
Singular.stopAllTracking()
// 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
// User has opted in to tracking
Singular.trackingOptIn()
// 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
// Notify Singular the user is under 13 years old
Singular.trackingUnder13()
// 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
// Clear custom user ID when user logs out
Singular.unsetCustomUserId()
// 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
// Remove a global property
Singular.unsetGlobalProperty("user_tier")
// Remove a global property
[Singular unsetGlobalProperty:@"user_tier"];