Traqio.

SDK

SDK para Flutter

Añade Traqio a una app de Flutter: el paquete traqio lee el Play Install Referrer en Android, registra en SKAdNetwork en iOS y reenvía los deep links.

traqio es el SDK de Traqio para Flutter: un paquete de Dart con un plugin para Android y otro para iOS. En Android lee el Install Referrer de Google Play para una atribución determinista; en iOS registra las instalaciones en SKAdNetwork. Pone los eventos en cola en shared_preferences, registra las aperturas de la app a partir del ciclo de vida de la app y reenvía los deep links. Sin portapapeles, y sin identificador publicitario — la opción que ofrecen los SDK de iOS, Android y React Native aún no está en este.

Aún no está en pub.dev — acceso anticipado

Paquete traqio · versión 0.1.0Los paquetes del SDK aún no están en sus registros públicos. Para integrarlo hoy, pide la build: hello@traqio.appNivel de prueba: Analizado y tipado en CI; la parte nativa compila en una app anfitriona.

Requisitos#

  • Dart 3, Flutter 3.
  • Android 5.0 (API 21) o posterior; iOS 13 o posterior.

Configuración#

  1. Añade el paquete#

    flutter pub add traqio

    Hasta que el paquete esté en pub.dev, referencia por ruta la copia que te enviamos:

    # pubspec.yaml — the package you received, until it is on pub.dev
    dependencies:
      traqio:
        path: ../traqio
  2. Inicializa en main()#

    lib/main.dart
    import 'package:flutter/widgets.dart';
    import 'package:traqio/traqio.dart';
    
    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Traqio.init(sdkKey: 'YOUR_SDK_KEY', endpoint: 'https://api.traqio.app');
      runApp(const MyApp());
    }

    init informa de la instalación en el primer arranque, resuelve el deep link diferido y registra la apertura de la app. Esperarlo con await antes de runApp garantiza que no se pierda la URL que abrió la app.

  3. Registra eventos y define el id de usuario#

    Traqio.setUserId(user.id); // after sign-in — same id as RevenueCat's app_user_id
    Traqio.track('signup');
    Traqio.track('purchase', value: 9.99, currency: 'EUR');

    Nombres con los que Meta y TikTok pueden optimizar: Nombres de eventos.

  4. Declara el endpoint de SKAdNetwork#

    ios/Runner/Info.plist
    <key>NSAdvertisingAttributionReportEndpoint</key>
    <string>https://api.traqio.app</string>
final unsubscribe = Traqio.onDeepLink((link) {
  if (link.deepLink != null) router.go(link.deepLink!);
});

// The install's deferred link, or null:
final deferred = await Traqio.getDeferredDeepLink();

El plugin reenvía las URL por sí solo y nunca las consume: tu router las sigue recibiendo todas. Una app iOS con el ciclo de vida UIScene no recibe los callbacks del app delegate que escucha el plugin, y reenvía ella misma las URL:

// iOS apps on the UIScene lifecycle only: forward the URL yourself
Traqio.handleUrl(url.toString());
await Traqio.setConsent(granted); // sharing with ad networks, not measurement

API#

LlamadaQué hace
init(sdkKey:, endpoint:, userId:, deepLinking: true, consent:)Arranca una vez.
track(name, value:, currency:)Pone un evento en cola; lotes de 20, reintentados con backoff.
setUserId(id)Asocia tu id de usuario a partir de ahora.
setConsent(granted)Guarda el consentimiento del usuario para compartir con redes publicitarias.
onDeepLink(listener)Se suscribe; devuelve la función para cancelar la suscripción.
getDeferredDeepLink()El enlace diferido de la instalación, o null.
handleUrl(url)Resuelve una URL que llegó a la app por otra vía.

Aún no está en este SDK#

  • Valores de conversión de iOS y Apple Ads. Las instalaciones se registran en SKAdNetwork, pero no se define ningún valor de conversión ni se informa de ningún token de Apple Ads.
  • Reintentos del Install Referrer. El referrer se lee una vez en el primer arranque; si Google Play no responde, la instalación se registra como orgánica.
  • Ids de transacción de compras, ingresos publicitarios de AdMob, borrado desde la app. Usa RevenueCat para las compras y el borrado del lado del servidor.

Pruebas hasta ahora

El código Dart se analiza en CI y la mitad Android se ha ejecutado de principio a fin en un emulador; Traqio aún no ha compilado el plugin de iOS. La primera app en producción es también la primera prueba completa de sus mitades nativas.

Preguntas frecuentes#

¿El SDK de Flutter define los valores de conversión de SKAdNetwork?
Todavía no. En iOS registra cada instalación en SKAdNetwork, así que las instalaciones procedentes de redes publicitarias se atribuyen mediante los postbacks de Apple, pero no define los valores de conversión según tu mapeo, así que esos postbacks no llevan ninguna señal de ingresos. Los SDK de React Native e iOS nativo sí los definen.
¿Tengo que reenviar los deep links yo mismo?
Normalmente no. El plugin reenvía el intent de arranque y los nuevos intents en Android, y los universal links y las aperturas de URL que recibe el app delegate en iOS. Solo una app iOS con el ciclo de vida UIScene pasa ella misma las URL a Traqio.handleUrl.

Actualizado el 22 de octubre de 2026