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:
-
Añada el singular_flutter_sdk: ^1.6.2 a su archivo pubspec.yaml:
dependencies: flutter: sdk: flutter singular_flutter_sdk: ^1.6.2
-
A continuación, vaya a su proyecto en el terminal y ejecute lo siguiente:
flutter packages get
Configurar requisitos previos
Requisitos previos de iOS
Para utilizar el plugin Singular Flutter, añada el framework AdServices.
-
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).
-
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:
<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" />
Para admitir el referente de instalación de Samsung Galaxy Store, añada lo siguiente:
<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:
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:
- 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.
- 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:
# 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.
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.
- 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").
-
Si lo desea, añada varios métodos de configuración para establecer o activar diversas funciones del SDK.
- A continuación, utilice el métodostart para inicializar el SDK, pasando el objeto SingularConfig objeto.
- Actualice su clase _MyHomePageState en main.dart para incluir el código de inicialización.
Ejemplo de una clase main.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);
}