SDK do iOS - Referência de métodos

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

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

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

Swift Objective-C
// 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

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 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

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 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

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 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

Swift Objective-C
// Get all global properties
let properties = Singular.getGlobalProperties()
print("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

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

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

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 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

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 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

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

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.

+ (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

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

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 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

Swift Objective-C
// Register device token for uninstall tracking
func application(_ application: UIApplication,
                 didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    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

Swift Objective-C
// 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

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

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

Swift Objective-C
// 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

Swift Objective-C
// 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

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 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

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

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

Swift Objective-C
// Enable SDK logging for debug builds
#if DEBUG
Singular.setLoggingEnabled(true)
Singular.setLogLevel(.debug)
#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

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

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

Swift Objective-C
// 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

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 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

Swift Objective-C
// 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

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 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

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 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

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

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

Swift Objective-C
// 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

Swift Objective-C
// 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

Swift Objective-C
// 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

Swift Objective-C
// 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

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