SDK do Flutter - Referência de métodos

Documento

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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
import 'package:singular_flutter_sdk/singular.dart';

// Remove a specific global property
Singular.unsetGlobalProperty('user_type');