Flutter SDK - Integración básica

Documento
NuevoGuía en vídeo

Vea este vídeo para obtener una visión detallada del proceso de integración. Le recomendamos que utilice tanto el vídeo como la guía escrita que figura a continuación.

Antes de empezar: Requisitos previos del SDK

Siga los pasos indicados en Integración de un SDK Singular:Planificación y requisitos previos.

Estos pasos son requisitos previos para cualquier integración de Singular SDK.


Instale el SDK

El SDK de Singular está disponible como complemento para Flutter. Las siguientes instrucciones muestran cómo integrar Singular en tu aplicación Flutter.

  • En este artículo se presupone que dispone de una aplicación Flutter funcional.
  • Para inicializar el SDK, necesitas la clave y el secreto del SDK de Singular. Puedes obtenerlas en la plataforma Singular en"Developer Tools > SDK Integration > SDK Keys".

Para añadir el plugin Singular Flutter a tu proyecto:

  1. Añada el singular_flutter_sdk: ^1.6.2 a su archivo pubspec.yaml:

    pubspec.yaml
    dependencies:
      flutter:
        sdk: flutter
      singular_flutter_sdk: ^1.6.2
  2. A continuación, vaya a su proyecto en el terminal y ejecute lo siguiente:

    bash
    flutter packages get

Configurar requisitos previos

Requisitos previos de iOS

Para utilizar el plugin Singular Flutter, añada el framework AdServices.

  1. Añada el framework AdServices a su proyecto iOS:

    • Vaya a la carpeta ios de su proyecto Flutter.
    • Abra Runner.xcworkspace en Xcode (utilice .xcworkspace si utiliza CocoaPods; en caso contrario, utilice .xcodeproj).
  2. Añada el marco AdServices:

    • En Xcode, seleccione el destino de su proyecto (por ejemplo, "Runner").
    • Vaya a la pestaña General.
    • Desplácese hasta la sección Frameworks, Libraries, and Embedded Content.
    • Haz clic en el botón +.
    • Busca AdServices.framework y añádelo.
    • Establezca el estado del framework en Opcional (para garantizar la compatibilidad si el framework no está disponible en versiones anteriores de iOS).

Requisitos previos de Android

Añadir los permisos y dependencias necesarios para Android

Añada estos permisos bajo la etiqueta <manifest> en su archivo AndroidManifest.xml:

AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="BIND_GET_INSTALL_REFERRER_SERVICE" />
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
Excluya el permisocom.google.android.gms.permission.AD_ID si va a integrar el SDK para niños.

Para admitir el referente de instalación de Samsung Galaxy Store, añada lo siguiente:

AndroidManifest.xml
<queries>
   <package android:name="com.sec.android.app.samsungapps" />
</queries>

Si has desactivado las dependencias transitivas para el SDK Singular, añade lo siguiente a tu android/app/build.gradle:

android/app/build.gradle
dependencies {
    implementation 'com.android.installreferrer:installreferrer:2.2'
    implementation 'com.google.android.gms:play-services-appset:16.0.0'
}

Requisitos de configuración si utiliza Proguard

Configuración de ProGuard para Singular SDK en React Native Android

Al integrar el SDK de Singular Android en su aplicación Flutter Android, debe añadir reglas específicas de ProGuard para garantizar que el SDK funciona correctamente en las compilaciones de lanzamiento. ProGuard (o R8, su sustituto moderno) se utiliza para optimizar y ofuscar el código. Sin las reglas ProGuard adecuadas, el SDK de Singular o sus dependencias pueden ser eliminados u ofuscados, causando problemas en tiempo de ejecución.

Siga estos pasos para configurar ProGuard para Singular SDK:

  1. Localice el archivo de reglas de ProGuard: En el proyecto Flutter, vaya al archivo android/app/proguard-rules.pro. Este archivo contiene reglas de ProGuard personalizadas para su aplicación.
  2. Añada las reglas ProGuard de Singular SDK: Añada las siguientes líneas a android/app/proguard-rules.pro para conservar Singular SDK y sus dependencias:
android/app/proguard-rules.pro
# Preserve Singular SDK classes
-keep class com.singular.sdk.** { *; }

# Preserve Android Install Referrer library
-keep public class com.android.installreferrer.** { *; }

# Uncomment the following line if you are using the Singular 'revenue' function with Google Play Billing Library
#-keep public class com.android.billingclient.** { *; }

Integrar el SDK

Nota: Recuerde seguir cumpliendo las distintas leyes de privacidad promulgadas en las regiones en las que hace negocios, incluidas, entre otras, GDPR, CCPA y COPPA, al implementar los SDK de Singular. Para obtener más información, consulte Prácticas de inclusión y exclusión de SDK.

El código de inicialización del SDK debe ejecutarse cada vez que se abra la aplicación. Es un prerrequisito para toda la funcionalidad de atribución de Singular, y también envía una nueva sesión de usuario a Singular. Las sesiones se utilizan para calcular la retención de usuarios.

Importación de la biblioteca de Singular

En su archivo main.dart, añada el siguiente código para importar las clases de Singular.

main.dart
import 'package:singular_flutter_sdk/singular.dart';
import 'package:singular_flutter_sdk/singular_config.dart';

Inicialización del SDK de Singular

El código de inicialización de Singular SDK debe ejecutarse cada vez que se abra la aplicación. Es un requisito previo para todas las funciones de atribución de Singular, y también envía una nueva sesión de usuario a Singular (las sesiones se utilizan para calcular la retención de usuarios).

El código de inicialización va en el widget principal de la aplicación (es decir, main.dart), el primero que se carga al abrir la aplicación. Este widget tiene que ser stateful, y el código tiene que ser añadido en el método initState() del widget.

  1. Crea un objeto SingularConfig. El objeto contiene tu SDK Key y SDK Secret (obtén la clave y el secreto accediendo a tu cuenta de Singular y navegando a"Developer Tools > SDK Integration > SDK Keys").
  2. Si lo desea, añada varios métodos de configuración para establecer o activar diversas funciones del SDK.

  3. A continuación, utilice el métodostart para inicializar el SDK, pasando el objeto SingularConfig objeto.
  4. Actualice su clase _MyHomePageState en main.dart para incluir el código de inicialización.

Ejemplo de una clase main.dart:

dart
import 'package:singular_flutter_sdk/singular.dart';
import 'package:singular_flutter_sdk/singular_config.dart';
//... class MyHomePage extends StatefulWidget { //... } class _MyHomePageState extends State<MyHomePage> { //... @override void initState() { super.initState(); //... SingularConfig config = new SingularConfig('SDK KEY', 'SDK SECRET');
// Enable Logging for testing config.logLevel = 3; config.enableLogging = true; // Set hashed User ID if available config.customUserId = "b642b4217b34b1e8d3bd915fc65c4452"; // For iOS (Remove this if you are not displaying an ATT prompt)! config.waitForTrackingAuthorizationWithTimeoutInterval = 300; // To enable SkAdNetwork Support config.skAdNetworkEnabled = true; // To enable META Install Referrer config.facebookAppId = "INSERT YOUR FACEBOOK APP ID HERE"; // (optional) Using Singular Global Properties feature to capture // third party identifiers. The respective SDK(s) must be initialized // before the Singular SDK. Example of passing the CleverTapID. // var cleverTapId = CleverTapPlugin.getCleverTapID(); // config.withGlobalProperty("CLEVERTAPID", cleverTapId, true); Singular.start(config); }