SDK do iOS - Referência de métodos
Esta referência abrangente documenta todos os métodos disponíveis no SDK da Singular para aplicações iOS. O SDK fornece funcionalidade para inicialização, rastreamento de eventos, relatórios de receita, atribuição, conformidade com privacidade de dados e configuração. Cada método é apresentado com uma descrição, assinatura e exemplos de uso práticos para ajudar os desenvolvedores a integrar os recursos do SDK da Singular em suas aplicações.
adRevenue
Método Singular.adRevenue
Realiza o rastreamento de eventos de receita de anúncios com informações detalhadas de dados do anúncio. Este método permite reportar a receita gerada por anúncios exibidos em sua aplicação com vários parâmetros para categorizar e analisar o desempenho do anúncio.
Assinatura
+ (void)adRevenue:(SingularAdData *)adData;
Exemplo 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
Remove todas as propriedades globais previamente definidas. Isso é útil quando você precisa redefinir as propriedades globais, por exemplo, quando um usuário sai de sua aplicação.
Assinatura
+ (void)clearGlobalProperties;
Exemplo de uso
// Clear all global properties
Singular.clearGlobalProperties()
// Clear all global properties
[Singular clearGlobalProperties];
createReferrerShortLink
Métodos Singular.createReferrerShortLink
Cria um link curto com informações de referenciador que podem ser usadas para compartilhamento e atribuição. Este método gera links rastreáveis que podem ser compartilhados com os usuários, permitindo atribuir instalações e atividades a fontes específicas de indicação.
Assinaturas
+ (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;
Exemplo 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 o rastreamento de eventos de receita personalizados com um nome de evento, moeda, valor e informações opcionais do produto. Isso permite um rastreamento de receita mais específico com nomes de eventos personalizados.
Assinaturas
+ (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;
Exemplo 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 o rastreamento de eventos com o nome especificado e atributos personalizados opcionais. Use estes métodos para rastrear as ações e o engajamento do usuário dentro de sua aplicação.
Assinaturas
+ (void)event:(NSString *)name;
+ (void)event:(NSString *)name withArgs:(NSDictionary *)args;
+ (void)eventWithArgs:(NSString *)name, ...;
Exemplo 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 as propriedades globais atualmente definidas. Este método retorna um dicionário contendo todas as propriedades globais que foram definidas para o SDK.
Assinatura
+ (NSDictionary *)getGlobalProperties;
Exemplo 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 o status atual de limitação do compartilhamento de dados. Este método retorna um valor booleano indicando se o compartilhamento de dados está atualmente limitado.
Assinatura
+ (BOOL)getLimitDataSharing;
Exemplo 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
Processa um payload de notificação push para atribuição. Este método deve ser chamado quando seu aplicativo receber uma notificação push para permitir que a Singular a atribua corretamente.
Assinatura
+ (BOOL)handlePushNotification:(NSDictionary *)pushNotificationPayload;
Exemplo 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 o rastreamento de eventos de conclusão de compra dentro do aplicativo. Estes métodos devem ser chamados quando uma transação de compra dentro do aplicativo for concluída.
Assinaturas
+ (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, ...;
Exemplo 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 se todo o rastreamento está atualmente interrompido. Este método retorna um valor booleano indicando se o rastreamento está atualmente interrompido.
Assinatura
+ (BOOL)isAllTrackingStopped;
Exemplo 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
Retorna se o detentor do link fornecido (normalmente um
NSURL
ou
NSUserActivity) representa um Singular Link. Use isso para curto-circuitar seu próprio tratamento de deep link quando a Singular resolver o link através do
singularLinksHandler do SDK.
Assinatura
+ (BOOL)isSingularLink:(id)linkHolder;
Exemplo 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
Define o status de limitação do compartilhamento de dados. Use este método para limitar o compartilhamento de dados com base no consentimento do usuário ou nos requisitos de privacidade.
Assinatura
+ (void)limitDataSharing:(BOOL)shouldLimitDataSharing;
Exemplo 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 o token do dispositivo para rastreamento de desinstalação. Este método deve ser chamado com o token de notificação push para habilitar o rastreamento de desinstalação.
Assinatura
+ (void)registerDeviceTokenForUninstall:(NSData *)deviceToken;
Exemplo 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
Retoma todas as atividades de rastreamento que foram previamente interrompidas. Use este método para reativar o rastreamento depois que ele foi interrompido.
Assinatura
+ (void)resumeAllTracking;
Exemplo 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 o rastreamento de eventos de receita com vários parâmetros incluindo moeda, valor e detalhes do produto. Isso permite um rastreamento abrangente de receita para sua aplicação.
Assinaturas
+ (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;
Exemplo 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
Define um ID de usuário personalizado para o usuário atual. Isso permite associar os dados da Singular ao seu próprio sistema de identificação de usuários.
Assinatura
+ (void)setCustomUserId:(NSString *)customUserId;
Exemplo 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
Recurso obsoleto: Use setCustomUserId em vez disso.
Método Singular.setDeviceCustomUserId
Define um ID de usuário personalizado no nível do dispositivo. Isso permite associar os dados da Singular ao seu próprio sistema de identificação de usuários no nível do dispositivo.
Assinatura
+ (void)setDeviceCustomUserId:(NSString *)customUserId;
Exemplo 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
Define uma propriedade global que será enviada com todos os eventos. Isso permite adicionar atributos consistentes a todos os eventos sem especificá-los a cada vez.
Assinatura
+ (BOOL)setGlobalProperty:(NSString *)key
andValue:(NSString *)value
overrideExisting:(BOOL)overrideExisting;
Exemplo 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 ou desabilita o limite em tempo de execução sobre a coleta de identificadores de publicidade. Este é o equivalente em tempo de execução da propriedade de tempo de configuração
SingularConfig.limitAdvertisingIdentifiers
e pode ser alterado a qualquer momento após
Singular.start(_:).
Este método é excluído da compilação na build do Singular Kids SDK (protegido por
#ifndef SINGULAR_KIDS). Se você está integrando
Singular-Kids-SDK, este método não está disponível. O Kids SDK aplica automaticamente um tratamento mais rigoroso de identificadores.
Assinatura
+ (void)setLimitAdvertisingIdentifiers:(BOOL)enabled;
Exemplo 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 o registro do SDK em tempo de execução. Equivalente em tempo de execução de
SingularConfig.enableLogging. O registro permanece silencioso até que este valor seja
YES
e
setLogLevel:
seja definido acima de
SingularLogLevelNone.
Assinatura
+ (void)setLoggingEnabled:(BOOL)enabled;
Exemplo 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
Define o nível de detalhe do registro do SDK em tempo de execução. Equivalente em tempo de execução de
SingularConfig.logLevel. Os níveis disponíveis são definidos em
SingularLogLevel.h:
SingularLogLevelNone,
SingularLogLevelError,
SingularLogLevelWarning,
SingularLogLevelInfo,
SingularLogLevelDebug,
SingularLogLevelVerbose.
Assinatura
+ (void)setLogLevel:(SingularLogLevel)logLevel;
Exemplo 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
Define o tempo limite de sessão em segundos. Isso determina por quanto tempo uma sessão do usuário dura depois que o aplicativo passa para segundo plano.
Assinatura
+ (void)setSessionTimeout:(int)timeout;
Exemplo 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 o valor de conversão atual do SKAdNetwork. Este método retorna o valor de conversão atual usado para a atribuição SKAdNetwork.
Assinatura
+ (NSNumber *)skanGetConversionValue;
Exemplo 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 o aplicativo para atribuição SKAdNetwork. Este método deve ser chamado para habilitar a atribuição SKAdNetwork no iOS.
Assinatura
+ (void)skanRegisterAppForAdNetworkAttribution;
Exemplo de uso
// Register for SKAdNetwork attribution
Singular.skanRegisterAppForAdNetworkAttribution()
// Register for SKAdNetwork attribution
[Singular skanRegisterAppForAdNetworkAttribution];
skanUpdateConversionValue
Métodos Singular.skanUpdateConversionValue
Atualiza o valor de conversão SKAdNetwork. Estes métodos permitem atualizar manualmente o valor de conversão usado para a atribuição SKAdNetwork.
Assinaturas
+ (BOOL)skanUpdateConversionValue:(NSInteger)conversionValue;
+ (void)skanUpdateConversionValue:(NSInteger)conversionValue
coarse:(NSInteger)coarse
lock:(BOOL)lock;
Exemplo 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 o SDK da Singular com a configuração fornecida. Este é o primeiro método que você deve chamar para começar a usar o SDK da Singular.
Assinatura
+ (BOOL)start:(SingularConfig *)config;
Exemplo 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 uma nova sessão com o SDK da Singular. Várias variantes estão disponíveis para diferentes cenários de inicialização, incluindo opções de lançamento, atividades do usuário e tratamento de deep link.
Assinaturas
+ (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;
Exemplo 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
Interrompe todas as atividades de rastreamento. Use este método para desabilitar o rastreamento quando os usuários optarem por sair ou por conformidade com privacidade.
Assinatura
+ (void)stopAllTracking;
Exemplo 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 o usuário optou pelo rastreamento. Chame este método quando o usuário consentir explicitamente com o rastreamento e a coleta de dados.
Assinatura
+ (void)trackingOptIn;
Exemplo 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 o usuário tem menos de 13 anos. Chame este método para cumprir com a COPPA e outras regulamentações para usuários com menos de 13 anos.
Assinatura
+ (void)trackingUnder13;
Exemplo 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
Remove o ID de usuário personalizado previamente definido. Chame este método quando o usuário sair ou quando você não quiser mais associar eventos ao ID de usuário atual.
Assinatura
+ (void)unsetCustomUserId;
Exemplo 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
Remove uma propriedade global previamente definida. Chame este método quando você não quiser mais que uma propriedade global específica seja enviada com os eventos.
Assinatura
+ (void)unsetGlobalProperty:(NSString *)key;
Exemplo de uso
// Remove a global property
Singular.unsetGlobalProperty("user_tier")
// Remove a global property
[Singular unsetGlobalProperty:@"user_tier"];