RudderStack es una plataforma de datos de clientes (CDP) de código abierto que permite a las empresas recopilar, unificar y dirigir los datos de los clientes a varios destinos. Proporciona una plataforma centralizada para la gestión de canalizaciones de datos de clientes, lo que permite a las organizaciones recopilar fácilmente datos de diversas fuentes, como sitios web, aplicaciones móviles, servidores y servicios en la nube.
Singular SDK está disponible como plug-in para Rudderstack, denominado Destino "Device-Mode". Las instrucciones siguientes ilustran cómo añadir el destino Singular en Rudderstack.
Tenga en cuenta que esta integración está construida y mantenida por Rudderstack. Consulte con Rudderstack si surgen problemas durante la implementación.
Guía para | Equipos de ingeniería |
Requisitos previos | Este artículo asume que ya tienes el SDK de Rudderstack iOS, Android, React Native o Cordova integrado en tu aplicación. Consulte la documentación de Rudderstack para obtener más detalles sobre el modo de dispositivo y los SDK móviles. |
Para utilizar esta integración, debe utilizar el SDK móvil de Rudderstack para: iOS (Native Obj-C o Swift), Android (Java o Kotlin), React Native o Cordova. ¡Esta integración NO es compatible con ningún otro framework!
- Instalación Básica Atribución
- Soporte SkAdNetwork
- Atribución de anuncios de búsqueda de Apple
- Seguimiento personalizado de eventos dentro de la aplicación
- Seguimiento de ingresos
- ID de usuario personalizado
- Instalación META Atribución de referencias
- Enlaces profundos
- Soporte limitado para compartir datos
Si necesita soporte para otros Frameworks o desea la "Funcionalidad Completa" ofrecida por Singular SDK, debe implementar Singular SDK independientemente de Rudderstack. Consulte las opciones de SDK y Frameworks AQUÍ.
Primeros pasos
- Desde su tablero RudderStack, añadir la fuente. A continuación, en la lista de destinos, seleccione Singular.
- Asigne un nombre a su destino y haga clic en Continuar.
Configuración de la conexión
Para configurar correctamente Singular como destino, debe configurar los siguientes ajustes:
- Clave API: Introduzca aquí su "Clave SDK" de Singular. Este campo es obligatorio.
-
Secreto: Introduzca su secreto de Singular. Este campo es obligatorio y se requiere para las integraciones en modo dispositivo con los SDK de RudderStack para iOS y Android.
Obtenga su "SDK KEY" de Singular, que encontrará en el Singular Dashboard en "Developer Tools > SDK Integration > SDK Keys".
Nota: Para la integración "Cloud-Mode", SÓLO debe introducir el valor de la API Key (SDK Key).
Deje el "Secreto" en blanco. - Nombre del evento de sesión: Este ajuste sólo es aplicable para el envío de eventos a través del modo nube.
-
Utilice el modo dispositivo para enviar eventos: Cuando utilices las plataformas Android o iOS, puedes activar este ajuste para enviar eventos a través del modo dispositivo. A continuación, siga la guía Singular Device Mode para conocer los pasos necesarios para añadir Singular a su proyecto.
Al enviar eventos a través del modo de dispositivo, RudderStack también le permite especificar qué eventos se deben descartar o permitir que fluyan. Para más información, consulte la guía Client-side Event Filtering.
Añadir la integración del modo dispositivo
Después de configurar Singular como destino en RudderStack, siga estos pasos para añadirlo a su proyecto, dependiendo de su plataforma de integración.
Para añadir Singular a tu aplicación iOS, sigue estos pasos:
-
En tu Podfile, añade las siguientes dependencias:
ruby
pod 'Singular-SDK', '11.0.4' pod 'Rudder-Singular', '1.0.0'
-
Después de añadir las dependencias seguidas del comando pod install, añade las siguientes importaciones a tu archivo AppDelegate.m:
Obj-C
//Objective-C
#import <rudder> #import <ruddersingularfactory.h> -
Inicializa tu RSClient:
Obj-C
//Objective-C
RSConfigBuilder *configBuilder = [[RSConfigBuilder alloc] init]; [configBuilder withDataPlaneUrl:<data_plane_url>]; [configBuilder withFactory:[RudderSingularFactory instance]]; RSClient *rudderClient = [RSClient getInstance:<write_key> config:[configBuilder build]];
Esta integración de modo de dispositivo es compatible con Singular v11.0.4 y superiores.
Siga estos pasos para añadir Singular a su proyecto iOS:
-
Instala RudderSingular (disponible a través de CocoaPods) añadiendo la siguiente línea a tu Podfile:
pod 'RudderSingular', '~ 1.0.0'
-
Después de añadir las dependencias seguidas del comando pod install, añade las importaciones a tu archivo AppDelegate dependiendo de tu plataforma preferida:
Swift
import RudderSingular
Obj-C
@import RudderSingular;
-
En su archivo AppDelegate actualice el método didFinishLaunchingWithOptions:
Importante:
- Si establece manualSkanConversionManagement = true, deberá actualizar manualmente sus propios valores de conversión. Esto NO permitirá que el Modelo SKAN de Singular actualice los valores de CV en su nombre. Establezca este valor en "false" para activar el modo "gestionado".
- La configuración de waitForTrackingAuthorizationWithTimeoutInterval sólo debe utilizarse si la aplicación utiliza el aviso de transparencia de seguimiento de aplicaciones de iOS (ATT). Si está mostrando ATT, entonces esto se debe establecer en un valor de 300.
Swift
let config: RSConfig = RSConfig(writeKey: WRITE_KEY) .dataPlaneURL(DATA_PLANE_URL) RSClient.sharedInstance().configure(with: config) let rudderSingularConfig = RudderSingularConfig() .skAdNetworkEnabled(true) .manualSkanConversionManagement(true) .conversionValueUpdatedCallback({ value in print("Your SKAN handler \(value)") }) .waitForTrackingAuthorizationWithTimeoutInterval(300) RSClient.sharedInstance().addDestination(RudderSingularDestination(rudderSingularConfig: rudderSingularConfig))
Obj-C
RSConfig *config = [[RSConfig alloc] initWithWriteKey:WRITE_KEY]; [config dataPlaneURL:DATA_PLANE_URL]; [[RSClient sharedInstance] configureWith:config]; RudderSingularConfig *rudderSingularConfig = [[RudderSingularConfig alloc] init]; [rudderSingularConfig skAdNetworkEnabled:YES]; [rudderSingularConfig manualSkanConversionManagement:YES]; [rudderSingularConfig conversionValueUpdatedCallback:^(NSInteger value) { printf("Your SKAN handler %ld", value); }]; [rudderSingularConfig waitForTrackingAuthorizationWithTimeoutInterval:300]; [[RSClient sharedInstance] addDestination:[[RudderSingularDestination alloc] initWithRudderSingularConfig:rudderSingularConfig]];
Para añadir Singular a su aplicación Android, siga estos pasos:
-
Abra el archivo app/build.gradle (Módulo: app) y añada lo siguiente en la sección de dependencias:
groovy
implementation 'com.rudderstack.android.sdk:core:[1.0,2.0)' implementation 'com.rudderstack.android.integration:singular:1.0.0' implementation 'com.google.code.gson:gson:2.8.6'
-
Añade el plugin Singular Maven a tu script de compilación. Para ello, añade el siguiente fragmento en la sección Gradle Scripts de tu build.gradle raíz:
groovy
buildscript { repositories { google() mavenCentral() maven { url 'https://maven.singular.net/' } } dependencies { classpath 'com.android.tools.build:gradle:7.1.2' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10' } } allprojects { repositories { google() mavenCentral() maven { url 'https://maven.singular.net/' } } }
-
Añade los siguientes permisos (si no están ya presentes) a tu AndroidManifest.xml:
<uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
-
Por último, inicialice el SDK RudderStack en el método onCreate() de su clase Application:
// initialize Rudder SDK val rudderClient = RudderClient.getInstance( this, WRITE_KEY, RudderConfig.Builder() .withDataPlaneUrl(DATA_PLANE_URL) .withFactory(SingularIntegrationFactory.FACTORY) .build() )
Para añadir Singular a tu aplicación React Native, sigue estos pasos:
-
Añada el módulo RudderStack-Singular a su aplicación ejecutando el siguiente comando:
bash
npm install @rudderstack/rudder-integration-singular-react-native // OR // yarn add @rudderstack/rudder-integration-singular-react-native
-
Abre tu archivo android/build.gradle a nivel de proyecto y añade el siguiente snippet:
groovy
repositories { maven { url "https://maven.singular.net/" } }
-
Importa el módulo anterior y añádelo a la inicialización de tu SDK:
typescript
import rudderClient from "@rudderstack/rudder-sdk-react-native" import singular from "@rudderstack/rudder-integration-singular-react-native" const config = { dataPlaneUrl: <data_plane_url>, trackAppLifecycleEvents: true, withFactories: [singular], } rudderClient.setup(<write_key>, config)
Para añadir Singular a su aplicación Cordova, siga estos pasos:
-
Vaya a la carpeta raíz de su aplicación y ejecute el siguiente comando:
bash
cordova plugin add rudder-integration-singular-cordova
-
Añada el siguiente código en la función onDeviceReady() de la página de inicio de su aplicación para inicializar el SDK:
javascript
RudderClient.initialize(<write_key>, { dataPlaneUrl: <data_plane_url>, factories: [RudderSingularFactory] })
Importante: Asegúrese de utilizar la palabra clave `await` con la llamada `initialize`.
Identifique
Para las integraciones en modo dispositivo, el SDK de Singular utiliza el método identify de RudderStack para asignar el ID de usuario a su ID de usuario personalizado. RudderStack utiliza la API setCustomUserId de Singular para reenviar el ID de usuario identificado a Singular.
A continuación se muestra un ejemplo de llamada de identificación para los SDK de Android e iOS:
[[RSClient getInstance] identify:@"1hKOmRA4el9Zt1WSfVJIVo4GRlm"];
RudderClient.getInstance()?.identify("1hKOmRA4el9Zt1WSfVJIVo4GRlm")
Seguimiento
La llamada track permite capturar las acciones del usuario y las propiedades asociadas a ellas. Cada acción del usuario se considera un evento.
Seguimiento de eventos personalizados
Una llamada de seguimiento personalizada le permite rastrear eventos personalizados a medida que ocurren en sus aplicaciones. RudderStack envía estas llamadas a Singular, donde se procesan como eventos personalizados posteriores a la instalación y están disponibles en los informes correspondientes.
A continuación se muestra un ejemplo de llamada de seguimiento personalizada para los SDK de Android e iOS:
[[RSClient getInstance] track:@"Product Reviewed" properties:@{
@"product_id" : @"345676543",
@"review_id" : @"123454387"
}];
RudderClient.getInstance()
?.track(
"Product Reviewed",
RudderProperty()
.putValue("product_id", "345676543")
.putValue("review_id", "123454387")
)
Seguimiento de ingresos
Singular admite el seguimiento de eventos de ingresos. Implementa el seguimiento de ingresos siempre que se envíe un evento que contenga la propiedad de ingresos (incluido un valor cero). Opcionalmente, también puede pasar el campo de moneda como un código ISO.
La moneda por defecto es USD.
A continuación se muestra un ejemplo de llamada de seguimiento de ingresos:
[[RSClient getInstance] track:@"Order Completed" properties:@{
@"revenue" : @1251,
@"currency" : @"INR"
}];
RudderClient.getInstance()
?.track(
"Order Completed",
RudderProperty().putValue("revenue", 1251).putValue("currency", "INR")
)
Pantalla
El método screen permite registrar cada vez que un usuario ve la pantalla del móvil, junto con cualquier propiedad opcional asociada. Esta llamada es similar a la llamada de página para las aplicaciones web, pero exclusiva para el dispositivo móvil.
A continuación se muestra un ejemplo de llamada a pantalla para los SDK de Android e iOS:
[[RSClient sharedInstance] screen:@"Home" properties:@{
@"category" : @"launcher"
}];
RudderClient.getInstance()
?.screen(
"Home",
RudderProperty().putValue("category", "launcher")
)
En el fragmento anterior, RudderStack captura toda la información relacionada con la pantalla visualizada, junto con cualquier información adicional sobre la pantalla.
RudderStack envía el evento de pantalla a Singular como un evento personalizado.
Reiniciar
El método reset restablece la identidad del usuario actual y crea una nueva sesión anónima. Debe ser llamado cuando un usuario cierra la sesión.
RudderStack llama al método unsetCustomUserId de Singular para restablecer la identidad de un usuario.
A continuación se muestra un ejemplo de llamada de restablecimiento para los SDK de Android e iOS:
[[RSClient getInstance] reset];
RudderClient.getInstance()?.reset();
Implementación de la compatibilidad con SKAdNetwork (SKAN)
Añada el siguiente código antes de la inicialización del SDK de iOS para dar el control a Singular para su integración SKAdNetwork:
Importante:
- Establecer el manualSkanConversionManagement = true requerirá que usted actualice manualmente sus propios Valores de Conversión. Esto NO permitirá que el Modelo SKAN de Singular actualice los valores CV en su nombre. Establezca este valor en "false" para activar el modo "gestionado".
- La configuración de waitForTrackingAuthorizationWithTimeoutInterval sólo debe utilizarse si la aplicación utiliza el aviso de transparencia de seguimiento de aplicaciones de iOS (ATT). Si usted está mostrando ATT, entonces esto se debe establecer en un valor de 300.
Obj-C
[RudderSingularIntegration setSKANOptions:YES
isManualSkanConversionManagementMode:NO
withWaitForTrackingAuthorizationWithTimeoutInterval:@300
withConversionValueUpdatedHandler:^(NSInteger conversionValue){
// Receive a callback whenever the Conversion Value is updated
NSLog(@"SKAN handler %ld",conversionValue);
}];