SDK do Flutter - Referência de Métodos
Esta referência abrangente documenta todos os métodos disponíveis no SDK Singular para aplicativos Flutter. O SDK fornece funcionalidade para inicialização, rastreamento de eventos, relatórios de receita, atribuição, conformidade com a privacidade de dados e configuração. Cada método é apresentado com uma descrição, assinatura e exemplos práticos de uso para ajudar os desenvolvedores a integrar os recursos do SDK da Singular em seus aplicativos Flutter.
adRevenue
Método Singular.adRevenue
Rastreia eventos de receita de anúncios com informações detalhadas de dados de anúncios. Esse método permite relatar a receita gerada pelos anúncios exibidos em seu aplicativo, incluindo dados da rede de anúncios, informações de posicionamento e valores de receita.
Assinatura
static void adRevenue(SingularAdData adData)
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
import 'package:singular_flutter_sdk/singular_ad_data.dart';
// Create ad data object
SingularAdData adData = SingularAdData(
'AdMob',
'USD',
0.99
)
..withAdPlatfom('Android')
..withAdType('Rewarded')
..withAdGroupId('group_123')
..withAdGroupName('Rewarded Video Group')
..withAdGroupType('rewarded_video')
..withImpressionId('impression_abc123')
..withAdPlacementName('main_menu')
..withAdUnitId('ca-app-pub-123456789')
..withAdUnitName('Main Menu Rewarded Video');
// Track the ad revenue
Singular.adRevenue(adData);
clearGlobalProperties
Método Singular.clearGlobalProperties
Remove todas as propriedades globais que foram definidas. As propriedades globais são pares chave-valor que são automaticamente adicionados a todos os eventos monitorizados pelo SDK.
Assinatura
static void clearGlobalProperties()
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// Clear all global properties
Singular.clearGlobalProperties();
createReferrerShortLink
Método Singular.createReferrerShortLink
Cria um link curto Singular para rastreamento de referência. Este método gera um link curto que pode ser partilhado pelos utilizadores para rastrear a atribuição de referências.
Assinatura
static void createReferrerShortLink(
String baseLink,
String referrerName,
String referrerId,
Map<String, String> passthroughParams,
ShortLinkCallback completionHandler
)
Exemplo de uso
import 'package:singular_flutter_sdk/singular.dart';
// Create a referrer short link
Singular.createReferrerShortLink(
'https://yourapp.sng.link/A1b2c',
'John Doe',
'user_12345',
{
'promo_code': 'SUMMER2025',
'campaign': 'referral_program'
},
(String? shortLink, String? error) {
if (error != null) {
print('Error creating short link: $error');
} else {
print('Short link created: $shortLink');
}
}
);
customRevenue
Método Singular.customRevenue
Rastreia eventos de receita personalizados com um nome de evento, moeda e valor especificados. Este método é utilizado para rastrear receitas que não estão relacionadas com compras na aplicação ou receitas de anúncios.
Assinatura
static void customRevenue(
String eventName,
String currency,
double amount
)
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// Track custom revenue event
Singular.customRevenue('Subscription_Purchase', 'USD', 9.99);
customRevenueWithAttributes
Método Singular.customRevenueWithAttributes
Rastreia eventos de receita personalizados com atributos adicionais. Este método alarga o acompanhamento básico das receitas personalizadas, permitindo-lhe incluir pares de valores-chave personalizados para um acompanhamento mais detalhado.
Assinatura
static void customRevenueWithAttributes(
String eventName,
String currency,
double amount,
Map attributes
)
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// Track custom revenue with additional attributes
Singular.customRevenueWithAttributes(
'Premium_Upgrade',
'USD',
29.99,
{
'subscription_tier': 'premium',
'billing_cycle': 'annual',
'promotion_code': 'ANNUAL20'
}
);
customRevenueWithAllAttributes
Método Singular.customRevenueWithAllAttributes
Rastreia eventos de receitas personalizadas com todos os atributos possíveis, incluindo SKU do produto, nome do produto, categoria do produto, quantidade do produto e atributos personalizados.
Assinatura
static void customRevenueWithAllAttributes(
String eventName,
String currency,
double amount,
String productSKU,
String productName,
String productCategory,
int productQuantity,
Map attributes
)
Exemplo de uso
import 'package:singular_flutter_sdk/singular.dart';
// Track custom revenue with all attributes
Singular.customRevenueWithAllAttributes(
'In_Game_Purchase',
'USD',
4.99,
'gold_pack_500',
'Gold Pack 500',
'virtual_currency',
1,
{
'payment_method': 'credit_card',
'discount_applied': 'false'
}
);
evento
Método Singular.event
Rastreia um evento simples com apenas um nome de evento. Esta é a forma mais básica de rastreamento de eventos no Singular SDK.
Assinatura
static void event(String eventName)
Exemplo de uso
import 'package:singular_flutter_sdk/singular.dart';
// Track a simple event
Singular.event('Level_Completed');
eventWithArgs
Método Singular.eventWithArgs
Rastreia um evento com atributos adicionais na forma de pares chave-valor. Isso permite um rastreamento de eventos mais detalhado com parâmetros personalizados.
Assinatura
static void eventWithArgs(String eventName, Map args)
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// Track event with custom attributes
Singular.eventWithArgs('Level_Completed', {
'level_number': 10,
'score': 8500,
'time_seconds': 245,
'difficulty': 'hard'
});
getGlobalProperties
Método Singular.getGlobalProperties
Devolve um mapa de todas as propriedades globais atualmente definidas. As propriedades globais são incluídas automaticamente em cada evento rastreado pelo SDK.
Assinatura
static Future<Map<String, String>> getGlobalProperties()
Exemplo de uso
import 'package:singular_flutter_sdk/singular.dart';
// Get all global properties
Map<String, String> properties = await Singular.getGlobalProperties();
print('Current global properties: $properties');
getLimitDataSharing
Método Singular.getLimitDataSharing
Devolve o estado atual da limitação da partilha de dados. Este método verifica se a partilha de dados com terceiros está atualmente limitada.
Assinatura
static Future<bool> getLimitDataSharing()
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// Check if data sharing is limited
bool isLimited = await Singular.getLimitDataSharing();
print('Data sharing limited: $isLimited');
handlePushNotification
Método Singular.handlePushNotification
Trata a atribuição de notificações push. Este método deve ser chamado quando seu aplicativo recebe uma notificação push para permitir o rastreamento de atribuição para aberturas de aplicativos orientadas por notificação.
Assinatura
static void handlePushNotification(Map notification)
Exemplo de uso
import 'package:singular_flutter_sdk/singular.dart';
// Handle incoming push notification
Map<String, dynamic> notificationData = {
'title': 'New Offer Available',
'body': 'Check out our latest deals',
'campaign_id': 'summer_2025'
};
Singular.handlePushNotification(notificationData);
inAppPurchase
Método Singular.inAppPurchase
Rastreia eventos de compra in-app. Este método relata compras feitas dentro do seu aplicativo para o Singular para rastreamento e atribuição de receita. Use o pacoteFlutter in_app_purchasepara recuperar o objeto de compra com detalhes completos da transação.
O objeto SingularIAP purchase deve ser construído usando os construtores de subclasse específicos da plataforma:
-
SingularIOSIAP(double revenue, String? currencyCode, String? productId, String? transactionId, String? receipt) -
SingularAndroidIAP(double revenue, String? currencyCode, String? signature, String? receipt)
Portanto, construa a subclasse SingularIAP apropriada com revenue e currencyCode primeiro e, em seguida, campos específicos da plataforma.
Assinatura
static void inAppPurchase(String eventName, SingularIAP purchase)
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
import 'package:singular_flutter_sdk/singular_iap.dart';
// Build an iOS SingularIAP purchase object and send it to the SDK
const String eventName = 'iap_purchase'; // <= 32 ASCII chars
final SingularIAP purchase = SingularIOSIAP(
4.99, // revenue (double)
'USD', // currency code (String)
'com.example.sku', // productId (String)
'transactionId123', // transactionID from AppStorePurchaseDetails (String)
'base64_receipt' // JWS receipt from StoreKit (String)
);
// OR, Build an Android SingularIAP purchase object and send it to the SDK
const String eventName = 'iap_purchase'; // <= 32 ASCII chars
final SingularIAP purchase = SingularAndroidIAP(
4.99, // revenue (double)
'USD', // currency code (String)
'com.example.sku', // Signature from GooglePlayPurchase (String)
'originalJson_receipt' // receipt Object from GooglePlayPurchase originalJson (String)
);
// Basic tracking
Singular.inAppPurchase(eventName, purchase);
inAppPurchaseWithAttributes
Método Singular.inAppPurchaseWithAttributes
Rastreia eventos de compra in-app com atributos personalizados adicionais. Este método estende o rastreamento básico de IAP permitindo pares de valores-chave personalizados para um rastreamento de compra mais detalhado.
Assinatura
static void inAppPurchaseWithAttributes(String eventName, SingularIAP purchase, Map attributes)
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
import 'package:singular_flutter_sdk/singular_iap.dart';
// Generate SingularIAP purchase as above
// Tracking with attributes
Singular.inAppPurchaseWithAttributes(eventName, purchase, {
'user_level': 42,
'is_first_purchase': true,
'gems_balance': 1500
});
isAllTrackingStopped
Método Singular.isAllTrackingStopped
Devolve se todo o seguimento foi interrompido. Este método verifica se o SDK está atualmente num estado em que não estão a ser recolhidos ou enviados dados.
Assinatura
static Future<bool> isAllTrackingStopped()
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// Check if tracking is stopped
bool isStopped = await Singular.isAllTrackingStopped();
print('All tracking stopped: $isStopped');
limitDataSharing
Método Singular.limitDataSharing
Limita ou ativa a partilha de dados com terceiros. Este método controla se o SDK partilha dados com redes de anúncios e outros serviços de terceiros para efeitos de atribuição.
Assinatura
static void limitDataSharing(bool limitDataSharingValue)
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// Limit data sharing
Singular.limitDataSharing(true);
// Or enable data sharing
Singular.limitDataSharing(false);
registerDeviceTokenForUninstall
Método Singular.registerDeviceTokenForUninstall
Registra o token de notificação push do dispositivo para rastreamento de desinstalação. Isso permite que o Singular detecte quando os usuários desinstalam seu aplicativo.
Assinatura
static void registerDeviceTokenForUninstall(String token)
Exemplo de uso
import 'package:singular_flutter_sdk/singular.dart';
// Register device token for uninstall tracking
String deviceToken = 'your_device_push_token_here';
Singular.registerDeviceTokenForUninstall(deviceToken);
resumeAllTracking
Método Singular.resumeAllTracking
Retoma todo o rastreamento que foi interrompido anteriormente. Este método reactiva a recolha e transmissão de dados depois de o rastreio ter sido interrompido.
Assinatura
static void resumeAllTracking()
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// Resume tracking after it was stopped
Singular.resumeAllTracking();
setCustomUserId
Método Singular.setCustomUserId
Define um identificador de utilizador personalizado para seguimento. Este método associa eventos a um ID de utilizador específico do sistema de utilizadores da sua aplicação.
Assinatura
static void setCustomUserId(String customUserId)
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// Set custom user ID after user logs in
Singular.setCustomUserId('user_12345');
setDeviceCustomUserId
Método Singular.setDeviceCustomUserId
Este método foi descontinuado e já não é utilizado.
Assinatura
static void setDeviceCustomUserId(String customUserId)
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// Set device-level custom user ID
Singular.setDeviceCustomUserId('device_user_67890');
setFCMDeviceToken
Método Singular.setFCMDeviceToken
Define o token do dispositivo do Firebase Cloud Messaging (FCM). Este método é específico para dispositivos Android que usam FCM para notificações push.
Assinatura
static void setFCMDeviceToken(String token)
Exemplo de uso
import 'package:singular_flutter_sdk/singular.dart';
import 'dart:io';
// Set FCM token (Android only)
if (Platform.isAndroid) {
String fcmToken = 'your_fcm_token_here';
Singular.setFCMDeviceToken(fcmToken);
}
setGlobalProperty
Método Singular.setGlobalProperty
Define uma propriedade global que será incluída em todos os eventos subsequentes. As propriedades globais são pares de valores chave adicionados automaticamente a cada evento monitorizado pelo SDK.
Assinatura
static void setGlobalProperty(
String key,
String value,
bool overrideExisting
)
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// Set a global property
Singular.setGlobalProperty('user_type', 'premium', true);
Singular.setGlobalProperty('app_theme', 'dark', false);
setLimitAdvertisingIdentifiers
Método Singular.setLimitAdvertisingIdentifiers
Limita a recolha de identificadores de publicidade (IDFA no iOS, GAID no Android). Este método controla se o SDK recolhe e utiliza IDs de publicidade para atribuição.
Assinatura
static void setLimitAdvertisingIdentifiers(bool limit)
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// Limit advertising identifier collection
Singular.setLimitAdvertisingIdentifiers(true);
skanGetConversionValue
Método Singular.skanGetConversionValue
Obtém o valor de conversão atual de SKAdNetwork (apenas iOS). Este método recupera o valor de conversão que foi definido para a atribuição de SKAdNetwork.
Assinatura
static Future<int> skanGetConversionValue()
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
import 'dart:io';
// Get current SKAdNetwork conversion value (iOS only)
if (Platform.isIOS) {
int conversionValue = await Singular.skanGetConversionValue();
print('Current conversion value: $conversionValue');
}
skanRegisterAppForAdNetworkAttribution
Método Singular.skanRegisterAppForAdNetworkAttribution
Regista a aplicação para atribuição de SKAdNetwork (apenas iOS). Este método deve ser chamado para ativar o rastreio de SKAdNetwork em dispositivos iOS.
Assinatura
static void skanRegisterAppForAdNetworkAttribution()
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
import 'dart:io';
// Register for SKAdNetwork attribution (iOS only)
if (Platform.isIOS) {
Singular.skanRegisterAppForAdNetworkAttribution();
}
skanUpdateConversionValue
Método Singular.skanUpdateConversionValue
Actualiza o valor de conversão de SKAdNetwork (apenas iOS). Este método define um novo valor de conversão para a atribuição de SKAdNetwork, representando a qualidade do utilizador ou o nível de envolvimento.
Assinatura
static void skanUpdateConversionValue(int conversionValue)
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
import 'dart:io';
// Update SKAdNetwork conversion value (iOS only)
if (Platform.isIOS) {
Singular.skanUpdateConversionValue(5);
}
skanUpdateConversionValues
Método Singular.skanUpdateConversionValues
Actualiza os valores de conversão SKAdNetwork com parâmetros adicionais, incluindo o valor de conversão grosseiro e o estado de bloqueio (apenas iOS 16.1+). Este método proporciona um controlo mais granular sobre os postbacks de SKAdNetwork.
Assinatura
static void skanUpdateConversionValues(
int conversionValue,
int coarse,
bool lock
)
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
import 'dart:io';
// Update conversion values with coarse value and lock (iOS 16.1+)
if (Platform.isIOS) {
Singular.skanUpdateConversionValues(
10, // fine conversion value
1, // coarse conversion value
false // lock status
);
}
iniciar
Método Singular.start
Inicializa e inicia o Singular SDK com a configuração fornecida. Esse método deve ser chamado antes de qualquer outro método do SDK e deve ser chamado o mais cedo possível no ciclo de vida do aplicativo.
Assinatura
static void start(SingularConfig config)
Exemplo de uso
import 'package:singular_flutter_sdk/singular.dart';
import 'package:singular_flutter_sdk/singular_config.dart';
// Create and configure the SDK
SingularConfig config = SingularConfig(
'YOUR_API_KEY',
'YOUR_SECRET_KEY'
)
..withLoggingEnabled()
..withSessionTimeoutInSec(60);
// Start the SDK
Singular.start(config);
stopAllTracking
Método Singular.stopAllTracking
Interrompe todo o rastreio pelo SDK. Este método interrompe toda a recolha e transmissão de dados, sendo normalmente utilizado para garantir a conformidade com a privacidade quando um utilizador opta por não ser rastreado.
Assinatura
static void stopAllTracking()
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// Stop all tracking (for privacy opt-out)
Singular.stopAllTracking();
trackingOptIn
Método Singular.trackingOptIn
Indica que o utilizador optou pelo rastreio. Este método deve ser chamado quando um utilizador consente explicitamente com o rastreio e a atribuição de dados.
Assinatura
static void trackingOptIn()
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// User opted in to tracking
Singular.trackingOptIn();
trackingUnder13
Método Singular.trackingUnder13
Indica que o utilizador tem menos de 13 anos de idade. Este método ativa o modo de conformidade com a COPPA, limitando a recolha de dados para utilizadores com menos de 13 anos.
Assinatura
static void trackingUnder13()
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// Enable COPPA compliance mode
Singular.trackingUnder13();
unsetCustomUserId
Método Singular.unsetCustomUserId
Remove o identificador de utilizador personalizado. Este método limpa qualquer ID de utilizador personalizado previamente definido, normalmente chamado quando um utilizador termina a sessão.
Assinatura
static void unsetCustomUserId()
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// Remove custom user ID on logout
Singular.unsetCustomUserId();
unsetGlobalProperty
Método Singular.unsetGlobalProperty
Remove uma propriedade global específica por chave. Este método limpa uma única propriedade global que foi previamente definida.
Assinatura
static void unsetGlobalProperty(String key)
Exemplo de utilização
import 'package:singular_flutter_sdk/singular.dart';
// Remove a specific global property
Singular.unsetGlobalProperty('user_type');