SDK de Flutter - Referencia de métodos

Documento

SDK de Flutter - Referencia de métodos

Esta completa referencia documenta todos los métodos disponibles en el SDK de Singular para aplicaciones Flutter. El SDK proporciona funcionalidad para la inicialización, seguimiento de eventos, informes de ingresos, atribución, cumplimiento de privacidad de datos y configuración. Cada método se presenta con una descripción, firma y ejemplos prácticos de uso para ayudar a los desarrolladores a integrar las capacidades del SDK de Singular en sus aplicaciones Flutter.


adRevenue

Método Singular.adRevenue

Realiza un seguimiento de los eventos de ingresos publicitarios con información detallada de los datos publicitarios. Este método le permite informar de los ingresos generados por los anuncios mostrados en su aplicación, incluidos los datos de la red publicitaria, la información de colocación y los importes de los ingresos.

Firma

static void adRevenue(SingularAdData adData)

Ejemplo de uso

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

Singular.clearGlobalProperties Método

Elimina todas las propiedades globales que se hayan establecido. Las propiedades globales son pares clave-valor que se añaden automáticamente a todos los eventos seguidos por el SDK.

Firma

static void clearGlobalProperties()

Ejemplo de uso

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

// Clear all global properties
Singular.clearGlobalProperties();

createReferrerEnlaceCorto

Singular.createReferrerShortLink Método

Crea un enlace corto Singular para el seguimiento de referidos. Este método genera un enlace corto que los usuarios pueden compartir para realizar un seguimiento de la atribución de referencias.

Firma

static void createReferrerShortLink(
  String baseLink,
  String referrerName,
  String referrerId,
  Map<String, String> passthroughParams,
  ShortLinkCallback completionHandler
)

Ejemplo 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

Realiza un seguimiento de los eventos de ingresos personalizados con un nombre de evento, una divisa y un importe especificados. Este método se utiliza para realizar un seguimiento de los ingresos que no están relacionados con las compras dentro de la aplicación o los ingresos por publicidad.

Firma

static void customRevenue(
  String eventName,
  String currency,
  double amount
)

Ejemplo de uso

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

// Track custom revenue event
Singular.customRevenue('Subscription_Purchase', 'USD', 9.99);

customRevenueWithAttributes

Método Singular.customRevenueWithAttributes

Realiza un seguimiento de los eventos de ingresos personalizados con atributos adicionales. Este método amplía el seguimiento básico de ingresos personalizados permitiéndole incluir pares clave-valor personalizados para un seguimiento más detallado.

Firma

static void customRevenueWithAttributes(
  String eventName,
  String currency,
  double amount,
  Map attributes
)

Ejemplo de uso

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

Singular.customRevenueWithAllAttributes Método

Realiza un seguimiento de los eventos de ingresos personalizados con todos los atributos posibles, incluidos SKU de producto, nombre de producto, categoría de producto, cantidad de producto y atributos personalizados.

Firma

static void customRevenueWithAllAttributes(
  String eventName,
  String currency,
  double amount,
  String productSKU,
  String productName,
  String productCategory,
  int productQuantity,
  Map attributes
)

Ejemplo 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

Singular.event Método

Realiza el seguimiento de un evento simple con sólo un nombre de evento. Esta es la forma más básica de seguimiento de eventos en Singular SDK.

Firma

static void event(String eventName)

Ejemplo de uso

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

// Track a simple event
Singular.event('Level_Completed');

eventWithArgs

Método Singular.eventWithArgs

Rastrea un evento con atributos adicionales en forma de pares clave-valor. Esto permite un rastreo de eventos más detallado con parámetros personalizados.

Firma

static void eventWithArgs(String eventName, Map args)

Ejemplo de uso

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

Devuelve un mapa de todas las propiedades globales configuradas actualmente. Las propiedades globales se incluyen automáticamente con cada evento rastreado por el SDK.

Firma

static Future<Map<String, String>> getGlobalProperties()

Ejemplo 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

Singular.getLimitDataSharing Método

Devuelve el estado actual de la limitación del uso compartido de datos. Este método comprueba si el uso compartido de datos con terceros está limitado actualmente.

Firma

static Future<bool> getLimitDataSharing()

Ejemplo de uso

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

Singular.handlePushNotification Método

Maneja la atribución de notificaciones push. Este método debe invocarse cuando la aplicación recibe una notificación push para permitir el seguimiento de la atribución de aperturas de aplicaciones basadas en notificaciones.

Firma

static void handlePushNotification(Map notification)

Ejemplo 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

Singular.inAppPurchase Método

Realiza un seguimiento de los eventos de compra dentro de la aplicación. Este método informa de las compras realizadas dentro de su aplicación a Singular para el seguimiento y la atribución de ingresos. Utilice el paquete in_app_purchasede Flutter para recuperar el objeto de compra con todos los detalles de la transacción.

El objeto SingularIAP purchase debe construirse utilizando los constructores de subclase específicos de la plataforma:

  • SingularIOSIAP(double revenue, String? currencyCode, String? productId, String? transactionId, String? receipt)
  • SingularAndroidIAP(double revenue, String? currencyCode, String? signature, String? receipt)

Así que construya la subclase SingularIAP apropiada con revenue y currencyCode primero, y luego los campos específicos de la plataforma.

Firma

static void inAppPurchase(String eventName, SingularIAP purchase)

Ejemplo de uso

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

inAppPurchaseConAtributos

Singular.inAppPurchaseWithAttributes Método

Realiza un seguimiento de los eventos de compra desde la aplicación con atributos personalizados adicionales. Este método amplía el seguimiento básico de IAP permitiendo pares clave-valor personalizados para un seguimiento más detallado de las compras.

Firma

static void inAppPurchaseWithAttributes(String eventName, SingularIAP purchase, Map attributes)

Ejemplo de uso

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

Singular.isAllTrackingStopped Método

Devuelve si se ha detenido todo el seguimiento. Este método comprueba si el SDK se encuentra actualmente en un estado en el que no se están recopilando ni enviando datos.

Firma

static Future<bool> isAllTrackingStopped()

Ejemplo de uso

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

// Check if tracking is stopped
bool isStopped = await Singular.isAllTrackingStopped();
print('All tracking stopped: $isStopped');

limitDataSharing

Singular.limitDataSharing Método

Limita o activa el uso compartido de datos con terceros. Este método controla si el SDK comparte datos con redes publicitarias y otros servicios de terceros con fines de atribución.

Firma

static void limitDataSharing(bool limitDataSharingValue)

Ejemplo de uso

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

// Limit data sharing
Singular.limitDataSharing(true);

// Or enable data sharing
Singular.limitDataSharing(false);

registerDeviceTokenParaDesinstalar

Singular.registerDeviceTokenForUninstall Método

Registra el token de notificación push del dispositivo para el seguimiento de la desinstalación. Esto permite a Singular detectar cuándo los usuarios desinstalan su aplicación.

Firma

static void registerDeviceTokenForUninstall(String token)

Ejemplo 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

Reanuda todo el seguimiento que se detuvo previamente. Este método vuelve a activar la recopilación y transmisión de datos después de detener el seguimiento.

Firma

static void resumeAllTracking()

Ejemplo de uso

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

// Resume tracking after it was stopped
Singular.resumeAllTracking();

setCustomUserId

Singular.setCustomUserId Método

Establece un identificador de usuario personalizado para el seguimiento. Este método asocia eventos con un identificador de usuario específico del sistema de usuarios de tu aplicación.

Firma

static void setCustomUserId(String customUserId)

Ejemplo de uso

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

// Set custom user ID after user logs in
Singular.setCustomUserId('user_12345');

setDeviceCustomUserId

Singular.setDeviceCustomUserId Método

Establece un identificador de usuario personalizado a nivel de dispositivo. Este método se utiliza para asociar un identificador personalizado con el propio dispositivo, persistiendo a través de las sesiones de la aplicación y los inicios de sesión del usuario.

Firma

static void setDeviceCustomUserId(String customUserId)

Ejemplo de uso

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

// Set device-level custom user ID
Singular.setDeviceCustomUserId('device_user_67890');

setFCMDeviceToken

Singular.setFCMDeviceToken Método

Establece el token del dispositivo Firebase Cloud Messaging (FCM). Este método es específico para dispositivos Android que utilizan FCM para notificaciones push.

Firma

static void setFCMDeviceToken(String token)

Ejemplo 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

Singular.setGlobalProperty Método

Establece una propiedad global que se incluirá en todos los eventos posteriores. Las propiedades globales son pares clave-valor que se añaden automáticamente a cada evento rastreado por el SDK.

Firma

static void setGlobalProperty(
  String key,
  String value,
  bool overrideExisting
)

Ejemplo de uso

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

Singular.setLimitAdvertisingIdentifiers Método

Limita la recopilación de identificadores de publicidad (IDFA en iOS, GAID en Android). Este método controla si el SDK recopila y utiliza identificadores de publicidad para la atribución.

Firma

static void setLimitAdvertisingIdentifiers(bool limit)

Ejemplo de uso

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

// Limit advertising identifier collection
Singular.setLimitAdvertisingIdentifiers(true);

skanGetConversionValue

Singular.skanGetConversionValue Método

Obtiene el valor de conversión actual de SKAdNetwork (sólo iOS). Este método recupera el valor de conversión que se ha establecido para la atribución SKAdNetwork.

Firma

static Future<int> skanGetConversionValue()

Ejemplo de uso

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');
}

skanRegisterAppParaAtribuciónAdNetwork

Singular.skanRegisterAppForAdNetworkAttribution Método

Registra la aplicación para la atribución SKAdNetwork (sólo iOS). Se debe llamar a este método para habilitar el seguimiento de SKAdNetwork en dispositivos iOS.

Firma

static void skanRegisterAppForAdNetworkAttribution()

Ejemplo de uso

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

// Register for SKAdNetwork attribution (iOS only)
if (Platform.isIOS) {
  Singular.skanRegisterAppForAdNetworkAttribution();
}

skanUpdateConversionValue

Singular.skanUpdateConversionValue Método

Actualiza el valor de conversión de SKAdNetwork (sólo iOS). Este método establece un nuevo valor de conversión para la atribución SKAdNetwork, que representa la calidad del usuario o el nivel de compromiso.

Firma

static void skanUpdateConversionValue(int conversionValue)

Ejemplo de uso

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

// Update SKAdNetwork conversion value (iOS only)
if (Platform.isIOS) {
  Singular.skanUpdateConversionValue(5);
}

skanUpdateConversionValues

Singular.skanUpdateConversionValues Método

Actualiza los valores de conversión de SKAdNetwork con parámetros adicionales, incluidos el valor de conversión grueso y el estado de bloqueo (solo iOS 16.1+). Este método proporciona un control más granular sobre los postbacks de SKAdNetwork.

Firma

static void skanUpdateConversionValues(
  int conversionValue,
  int coarse,
  bool lock
)

Ejemplo de uso

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
  );
}

start

Singular.start Método

Inicializa e inicia el SDK de Singular con la configuración proporcionada. Este método debe invocarse antes que cualquier otro método del SDK y debe invocarse lo antes posible en el ciclo de vida de la aplicación.

Firma

static void start(SingularConfig config)

Ejemplo 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

Singular.stopAllTracking Método

Detiene todos los seguimientos del SDK. Este método detiene toda la recopilación y transmisión de datos, normalmente utilizado para el cumplimiento de la privacidad cuando un usuario opta por no realizar el seguimiento.

Firma

static void stopAllTracking()

Ejemplo de uso

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

// Stop all tracking (for privacy opt-out)
Singular.stopAllTracking();

trackingOptIn

Método Singular.trackingOptIn

Indica que el usuario ha optado por el seguimiento. Este método debe invocarse cuando un usuario consiente explícitamente el seguimiento y la atribución de datos.

Firma

static void trackingOptIn()

Ejemplo de uso

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

// User opted in to tracking
Singular.trackingOptIn();

trackingUnder13

Método Singular.trackingUnder13

Indica que el usuario es menor de 13 años. Este método activa el modo de cumplimiento de COPPA, limitando la recopilación de datos para usuarios menores de 13 años.

Firma

static void trackingUnder13()

Ejemplo de uso

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

// Enable COPPA compliance mode
Singular.trackingUnder13();

unsetCustomUserId

Singular.unsetCustomUserId Método

Elimina el identificador de usuario personalizado. Este método borra cualquier identificador de usuario personalizado establecido previamente, normalmente se llama cuando un usuario cierra la sesión.

Firma

static void unsetCustomUserId()

Ejemplo de uso

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

// Remove custom user ID on logout
Singular.unsetCustomUserId();

unsetGlobalProperty

Singular.unsetGlobalProperty Método

Elimina una propiedad global específica por clave. Este método borra una única propiedad global que se había establecido previamente.

Firma

static void unsetGlobalProperty(String key)

Ejemplo de uso

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

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