Integrar utilizando modelos de lenguaje grande (LLM) (IA): utiliza el siguiente comando:
Añade el SDK de Tenjin a mi proyecto utilizando: https://raw.githubusercontent.com/tenjin/sdk-llm-guides/main/guides/android/llm-guide.md
Primeros pasos con el SDK de Android #
El SDK de Tenjin Android permite a los usuarios realizar un seguimiento de los eventos y las instalaciones en sus aplicaciones Android. Para obtener más información sobre Tenjin y nuestra oferta de productos, visita https://www.tenjin.com.
- Consulta nuestras Notas de la versión para ver el historial detallado de los cambios realizados en cada versión.
- Recomendamos utilizar la última versión de Android Studio.
- Para la integración con Unity, visita https://github.com/tenjin/tenjin-unity-sdk.
- Si tienes alguna duda o necesitas ayuda, ponte en contacto con: support@tenjin.com.
Integración básica #
Instalación manual #
Sigue los pasos que se indican a continuación en la sección ‘Android Studio’.’
Maven #
Si utilizas Maven, añade la implementación com.tenjin:android-sdk:VERSION a tus dependencias de Gradle y añade mavenCentral() a los repositorios de código fuente si aún no está incluido.
Estudio Android #
- Descarga la última versión del SDK de Android desde aquí.
- Añade el SDK de Tenjin a tu proyecto de Android Studio. Ve al Navegador de proyectos en Android Studio. Selecciona la opción
Proyectoen el Navegador de proyectos. Encontrarás la carpetalibsdentro del móduloappde tu proyecto de Android Studio. - Debes añadir el archivo
tenjin.jarotenjin.aara la carpetalibs.
- En tu proyecto de Android Studio, dentro del módulo
app, selecciona el archivobuild.gradle, y añade lo siguiente dentro del bloque de dependencias:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
implementation files('libs/tenjin.aar')
}> Tenemos un proyecto de demostración —[tenjin-android-sdk-demo][31]— que muestra cómo integrar tenjin-android-sdk. Puedes utilizar este proyecto como ejemplo para comprender cómo integrar tenjin-android-sdk.
Google Play o la tienda Amazon #
Si distribuyes tus aplicaciones en Google Play Store o en la tienda Amazon, realiza las siguientes configuraciones iniciales.
Autorización #
El SDK de Tenjin requiere los siguientes permisos:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- Required to get network connectivity (i.e. wifi vs. mobile) -->Google Play Services exige que todas las aplicaciones de nivel de API 32 (Android 13) que utilicen el advertising_id (Android Advertising ID (AAID)) declaren el permiso AD_ID de Google Play Services (que se muestra a continuación) en su archivo de manifiesto.
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>ID de publicidad de Android (AAID) y fuente de instalación #
Añade Android Advertising ID (AAID) y Install Referrer, y añádelas a tu archivo build.gradle.
dependencies {
implementation 'com.google.android.gms:play-services-ads-identifier:{version}'
implementation 'com.android.installreferrer:installreferrer:{version}'
}Para poder recopilar el «Install Referrer» de Meta, añade estas consultas a tu manifiesto Android:
<queries>
<package android:name="com.facebook.katana" />
</queries>
<queries>
<package android:name="com.instagram.android" />
</queries>A continuación, añade este valor a tu archivo strings.xml:
<string name="facebook_app_id" translatable="false">YOUR_META_APP_ID</string>App Store #
Por defecto, sin especificar es la App Store predeterminada. Actualiza el valor de la tienda de aplicaciones a googleplay o amazon, según tu aplicación.
AndroidManifest.xml:
<meta-data
android:name="TENJIN_APP_STORE"
android:value="googleplay" />setAppStore():
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.setAppStore(TenjinSDK.AppStoreType.googleplay);Opciones de la App Store #
TenjinSDK.AppStoreType.googleplay // Google Play App Store
TenjinSDK.AppStoreType.amazon // Amazon AppStore
TenjinSDK.AppStoreType.other // OtherInicialización de la aplicación #
- Consigue tu
SDK_KEYen la página de tu aplicación. Nota:SDK_KEYes única para cada una de tus aplicaciones. Puedes crear hasta 3 claves para la misma aplicación.

- En tu actividad, importa Tenjin:
import com.tenjin.android.TenjinSDK; - En el método
onResumede tu clase principalActivity, añade la siguiente línea de código:
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.connect();NOTA: Si tu aplicación tiene la lógica para solicitar el consentimiento del usuario entre onCreate y onResume, utiliza onCreate en lugar de onResume para la inicialización del SDK de Tenjin, ya que no se realizará el seguimiento de los usuarios que no den su consentimiento en onResume.
NOTA: Asegúrate de implementar este código en cada onResume, y no solo la primera vez que se abra la aplicación.
Otra tienda Android #
Si distribuyes tus aplicaciones fuera de Google Play Store o de la tienda Amazon (la otra tienda Android), realiza las siguientes configuraciones iniciales.
Autorización #
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- Required to get network connectivity (i.e. wifi vs. mobile) -->Google Play Services exige que todas las aplicaciones con nivel de API 32 (Android 13) que utilicen el advertising_id (Android Advertising ID (AAID)) declaren el permiso AD_ID de Google Play Services (que se muestra a continuación) en su archivo de manifiesto.
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>ID de publicidad de Android (AAID) y fuente de instalación #
Añade Android Advertising ID (AAID) y Install Referrer, y añádelas a tu archivo build.gradle.
dependencies {
implementation 'com.google.android.gms:play-services-ads-identifier:{version}'
implementation 'com.android.installreferrer:installreferrer:{version}'
}Si utilizas una red publicitaria que utilice el IMEI, deberás habilitar los siguientes permisos. (Si distribuyes tus aplicaciones en Google Play, por favor, NO añadas este permiso.)
<uses-permission android:name="android.permission.READ_PHONE_STATE" />OAID #
Tenjin te ayuda a promocionar tu aplicación en otras tiendas de aplicaciones de Android mediante el OAID de Android. Tenemos los siguientes requisitos para integrar las bibliotecas OAID.
MSA OAID #
MSA OAID es un identificador publicitario para dispositivos fabricados en China que proporciona la MSA (Mobile Security Alliance). Para integrarlo con la biblioteca MSA, descarga los siguientes archivos: oaid\_sdk\_1.0.25.aar y supplierconfig.json.
Añade lo siguiente al archivo Gradle de tu proyecto:
implementation files('libs/oaid_sdk_1.0.25.aar')Asegúrate de copiar el archivo supplierconfig.json en la carpeta assets de tu proyecto.
OAID de Huawei #
Fuera de China, puedes obtener el OAID utilizando la biblioteca proporcionada por Huawei. Para la integración con la biblioteca OAID de Huawei, añade lo siguiente a tu proyecto:
En tu archivo build.gradle, añade la dirección de Maven para los SDK de Huawei:
allprojects {
repositories {
google()
maven { url 'https://developer.huawei.com/repo/' }
}
}dependencies {
implementation 'com.huawei.hms:ads-identifier:{version}'
}Referente de instalación de Huawei #
Si estás promocionando tu aplicación a través de Huawei App Gallery, añade tanto el SDK de Huawei OAID mencionado anteriormente como la biblioteca biblioteca Install Referrer.
dependencies {
implementation 'com.huawei.hms:ads-identifier:{version}'
implementation 'com.huawei.hms:ads-installreferrer:{version}'
}
App Store #
Por defecto, sin especificar es la App Store predeterminada. Actualiza el valor de la App Store a otra.
AndroidManifest.xml:
<meta-data
android:name="TENJIN_APP_STORE"
android:value="other" />setAppStore():
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.setAppStore(TenjinSDK.AppStoreType.other);Inicialización de la aplicación #
- Consigue tu
SDK_KEYen la página de tu aplicación. Nota:SDK_KEYes única para cada una de tus aplicaciones. Puedes crear hasta 3 claves para la misma aplicación.

- En tu actividad, importa Tenjin:
import com.tenjin.android.TenjinSDK; - En el método
onResumede tu clase principalActivity, añade la siguiente línea de código:
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.connect();NOTA: Asegúrate de implementar este código en cada , no solo la primera vez que se abre la aplicación. Si observamos que no sigues nuestra recomendación, no podremos ofrecerte la asistencia adecuada o tu cuenta podría quedar suspendida.onResume
Configuración de Proguard #
-keep class com.tenjin.** { *; }
-keep public class com.google.android.gms.ads.identifier.** { *; }
-keep public class com.google.android.gms.common.** { *; }
-keep public class com.android.installreferrer.** { *; }
-keep class * extends java.util.ListResourceBundle {
protected java.lang.Object[][] getContents();
}
# Keep the signatures that Gson/TypeToken rely on
-keepattributes Signature
-keepattributes *Annotation*
# General Gson/TypeToken protection
-keep class com.google.gson.reflect.TypeToken { *; }
-keep class * extends com.google.gson.reflect.TypeTokenNo ocultes las clases de oaid:
-keep class XI.CA.XI.**{*;}
-keep class XI.K0.XI.**{*;}
-keep class XI.XI.K0.**{*;}
-keep class XI.xo.XI.XI.**{*;}
-keep class com.asus.msa.SupplementaryDID.**{*;}
-keep class com.asus.msa.sdid.**{*;}
-keep class com.bun.lib.**{*;}
-keep class com.bun.miitmdid.**{*;}
-keep class com.huawei.hms.ads.identifier.**{*;}
-keep class com.samsung.android.deviceidservice.**{*;}
-keep class com.zui.opendeviceidlibrary.**{*;}
-keep class org.json.**{*;}
-keep public class com.netease.nis.sdkwrapper.Utils {public <methods>;}Si utilizas las bibliotecas de Huawei, puedes utilizar esta configuración:
-keep class com.huawei.hms.ads.** { *; }
-keep interface com.huawei.hms.ads.** { *; }Integración adicional #
GDPR #
El Reglamento General de Protección de Datos (UE) (RGPD) es un reglamento de la legislación de la UE sobre protección de datos y privacidad en la Unión Europea (UE) y el Espacio Económico Europeo (EEE).
Debes obtener el consentimiento del usuario sobre si permite o no el seguimiento la primera vez que se abre la aplicación y, a continuación, escribir el resultado en checkOptInValue() . A continuación, puedes seguir los pasos de integración que se indican a continuación. Si no es necesario que tu aplicación cumpla con el RGPD, simplemente ignora toda esta sección.
Como parte del cumplimiento del RGPD, con el SDK de Tenjin puedes activar o desactivar la participación de dispositivos o usuarios, o seleccionar qué parámetros específicos relacionados con los dispositivos deseas activar o desactivar. optOut() no enviará ninguna solicitud de API a Tenjin, y no procesaremos ningún evento.
Para darse de alta o darse de baja:
import com.tenjin.android.TenjinSDK;
public class TenjinDemo extends ActionBarActivity {
@Override
public void onResume() {
//standard code
super.onResume()
//Integrate TenjinSDK connect call
String apiKey = " ";
TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);
boolean userOptIn = checkOptInValue();
if (userOptIn) {
instance.optIn();
}
else {
instance.optOut();
}
instance.connect();
//Your other code...
//...
}
protected boolean checkOptInValue(){
// check opt-in value
// return true; // if user opted-in
return false;
}
}Para activar o desactivar parámetros específicos relacionados con el dispositivo, puedes utilizar optInParams() o optOutParams().
optInParams()solo enviará los parámetros relacionados con el dispositivo que se hayan especificado.optOutParams()enviará todos los parámetros relacionados con el dispositivo, excepto los que se hayan especificado.- Tenga en cuenta que necesitamos el siguiente parámetro para realizar un seguimiento adecuado de los dispositivos en el sistema de Tenjin. Si falta este parámetro obligatorio, el evento no se procesará ni se registrará.
advertising_id
- Si te diriges a redes publicitarias basadas en IMEI y/o OAID, estos parámetros son obligatorios:
imeioaid
- Si tienes intención de utilizar Google AdWords, estos parámetros son obligatorios:
platformos_versionapp_versionlocaledevice_modelbuild_idadvertising_id
Si solo quieres obtener parámetros específicos relacionados con el dispositivo, utiliza optInParams(). En el ejemplo siguiente, solo utilizaremos estos parámetros relacionados con el dispositivo: ip_address, advertising_id, limit_ad_tracking y referrer.
String apiKey = " ";
TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);
String[] optInParams = {"ip_address", "advertising_id", "limit_ad_tracking", "referrer"};
instance.optInParams(optInParams);
instance.connect();Si quieres enviar TODOS los parámetros, excepto aquellos específicos relacionados con el dispositivo, utiliza optOutParams(). En el ejemplo siguiente, enviaremos TODOS los parámetros relacionados con el dispositivo, excepto:
String apiKey = " ";
TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);
String[] optOutParams = {"locale", "timezone", "build_id"};
instance.optOutParams(optOutParams);
instance.connect();Activar o desactivar mediante CMP #
Puedes activar o desactivar automáticamente esta opción mediante los consentimientos de tu CMP (finalidad 1), que ya están guardados en el dispositivo del usuario. El método devuelve un valor booleano que indica si la opción está activada o desactivada.
optInOutUsingCMP()
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
optInOut = instance.optInOutUsingCMP(); Parámetros relacionados con el dispositivo #
| Param | Descripción |
|---|---|
| dirección_IP | Dirección IP |
| id_publicitario | Identificador publicitario del dispositivo |
| limit_ad_tracking | Seguimiento publicitario activado |
| oaid | ID de publicidad abierto |
| IMEI | IMEI del dispositivo |
| plataforma | Plataforma |
| fuente de referencia | Referente de instalación de Google Play |
| os_version | versión del sistema operativo |
| dispositivo | nombre del dispositivo |
| fabricante_del_dispositivo | fabricante de dispositivos |
| modelo_del_dispositivo | modelo del dispositivo |
| marca_del_dispositivo | marca del dispositivo |
| producto_dispositivo | producto de dispositivo |
| transportista | operador de telefonía |
| tipo_de_conexión | móvil o wifi |
| ancho_de_pantalla | ancho de la pantalla del dispositivo |
| altura_de_la_pantalla | altura de la pantalla del dispositivo |
| os_version_release | versión del sistema operativo |
| build_id | ID de compilación |
| configuración regional | configuración regional del dispositivo |
| país | país de configuración regional |
| zona horaria | zona horaria |
Eventos de compra #
Para comprender los ingresos generados por los usuarios y su comportamiento de compra, los desarrolladores pueden enviar eventos de transacción a Tenjin. Tenjin validará por ti los recibos de transacción. Ten en cuenta que, actualmente, solo admitimos transacciones de compras dentro de la aplicación (IAP) de Google Play.
IMPORTANTE: Tendrás que añadir la clave pública de tu aplicación en el panel de control de Tenjin (en la página de ‘edición’ de la aplicación). Puedes recuperar tu clave pública RSA codificada en Base64 desde la Consola de desarrolladores de Google Play \> Selecciona tu aplicación > Monetizar > Configuración de monetización > Facturación de Google Play > Licencias: Clave pública RSA codificada en Base64. Ten en cuenta que, para Android, actualmente solo admitimos transacciones IAP desde Google Play.

Una vez que hayas introducido tu clave pública en el panel de control de Tenjin para tu aplicación, puedes utilizar el método del SDK de Tenjin que se indica a continuación:
public void transaction(String productId, String currencyCode, int quantity, double unitPrice, String purchaseData, String dataSignature)Ejemplo:
public void sendPurchaseEvent(Purchase purchase, Double price, String currencyCode) {
String sku = purchase.getSku();
String purchaseData = purchase.getOriginalJson();
String dataSignature = purchase.getSignature();
TenjinSDK instance = getTenjinInstance();
instance.transaction(sku, currencyCode, 1, price, purchaseData, dataSignature);
}Puedes comprobar si la validación de IAP funciona correctamente a través de nuestra herramienta de datos de dispositivos de prueba en tiempo real. Deberías ver cómo se registra un evento en tiempo real:
Asegúrate de ‘confirmar’ la compra antes de enviarla a Tenjin. Para obtener más información, consulta aquí.
Elige entre las comisiones por ingresos de la App Store 0%, 15% y 30% a través de nuestra nueva configuración. Los pasos son los siguientes:
- Ve a CONFIGURACIÓN –> Aplicaciones
- Haz clic en la aplicación para la que quieras realizar el cambio
- En la sección ‘Comisión de la App Store’, haz clic en ‘Editar’.’
- Elige entre 30%, 15% o 0% como comisión de la tienda de aplicaciones que prefieras.
- Selecciona la fecha de inicio y la fecha de finalización (o puedes dejar en blanco la fecha de finalización si no quieres que haya una).
- Haz clic en «Guardar» (nota: la comisión solo se puede aplicar a fechas futuras, no a fechas pasadas. Por lo tanto, establece la fecha de inicio a partir de la fecha en la que realices el cambio y en adelante).
Amazon AppStore
La validación de recibos de Amazon en la App Store requiere los parámetros receiptId y userId.
IMPORTANTE: Tendrás que añadir la clave compartida de tu aplicación Amazon en el panel de control de Tenjin. La clave compartida se encuentra en la sección "Shared Key" de tu cuenta de desarrollador en la cuenta de Amazon Appstore.
Eventos personalizados #
NOTA: El evento de inicialización connect() debe producirse antes de enviar cualquier evento personalizado.
IMPORTANTE: Limita la longitud de los nombres de los eventos personalizados a menos de 80 caracteres. No superes los 500 nombres de eventos personalizados distintos.
Puedes utilizar el SDK de Tenjin para enviar un evento personalizado: eventWithName(String name).
Las interacciones personalizadas con tu aplicación pueden vincularse al coste por nivel de cada fuente de adquisición que utilices a través del servicio de Tenjin. A continuación te mostramos un ejemplo de uso:
String apiKey = <SDK_KEY>;
TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);
//Integrate a custom event with a distinct name - ie. swiping right on the screen
instance.eventWithName("swipe_right");Eventos personalizados con valores #
Puedes utilizar el SDK de Tenjin para enviar un evento personalizado con un valor entero: eventWithNameAndValue(String name, int value).
Al pasar un valor entero junto con el nombre de un evento permite a los profesionales del marketing resumir y realizar un seguimiento de los promedios de los valores pasados para esa métrica en el panel de control de Tenjin. Si tiene previsto utilizar DataVault, estos valores pueden servir para obtener métricas adicionales que pueden resultar útiles.
String sdkKey = <SDK_KEY>;
TenjinSDK.instance = TenjinSDK.getInstance(this, sdkKey);
//Integrate a custom event with a distinct name and value - ie. paying 100 virtual coins for an item
instance.eventWithNameAndValue("item", 100);Siguiendo el ejemplo anterior, el panel de control de Tenjin sumará y calculará la media de los valores de todos los eventos con el nombre item.
Ten en cuenta que este evento no funcionará si el valor pasado no es un número entero.
//Integrate a custom event with a distinct name and value - ie. paying 100 virtual coins for an item
instance.eventWithNameAndValue("item", "1");Integración entre servidores #
Tenjin ofrece integración de servidor a servidor. Esto te permite enviar tus eventos de instalación y posteriores a la instalación directamente desde tus servidores a los servidores de Tenjin sin necesidad de integrar un SDK.
Parámetro «Subversion» de la aplicación para pruebas A/B (requiere DataVault) #
Si estás realizando pruebas A/B y quieres informar de las diferencias, podemos añadir un valor numérico a la versión de tu aplicación mediante el método appendAppSubversion(). Por ejemplo, si la versión de tu aplicación es 1.0.1 y estableces appendAppSubversion(8888), la versión de la aplicación se mostrará como 1.0.1.8888.
Estos datos aparecerán en DataVault, donde podrás generar informes utilizando los valores de subversión de la aplicación.
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.appendAppSubversion(8888);
instance.connect();Campañas LiveOps #
Tenjin permite recuperar información de atribución de los usuarios, como la red publicitaria de origen red publicitaria y la campaña, desde el SDK. Esto permitirá a los desarrolladores recopilar y analizar datos de atribución a nivel de usuario en tiempo real. Estos son los posibles casos de uso con Tenjin LiveOps Campaigns:
- Si dispones de tu propia herramienta de análisis de datos, la función de devolución de llamada S2S te permitirá vincular los datos de atribución a tus datos del juego a nivel de dispositivo.
- Muestra contenido diferente en la aplicación en función de la procedencia del usuario. Por ejemplo, si al usuario A se le atribuye el tráfico orgánico y al usuario B se le atribuye el tráfico de Meta, y es probable que el usuario B se involucre más con tu aplicación, entonces te interesará mostrarle una oferta especial dentro del juego una vez que haya instalado la aplicación. Si quieres comentar casos de uso más específicos, escribe a support@tenjin.com.
Puedes encontrar más información sobre cómo utilizar LiveOps aquí.
Número de usuario del cliente #
Puedes establecer y obtener el ID de usuario del cliente para enviarlo como parámetro en los eventos.
.setCustomerUserId(userId: "user_id")
.getCustomerUserId()
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.setCustomerUserId(userId: "user_id");
userId = instance.getCustomerUserId(); ID de instalación de Analytics #
Puedes obtener el identificador de análisis, que se genera aleatoriamente y se guarda en el almacenamiento local del dispositivo. getAnalyticsInstallationId()
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
analyticsId = instance.getAnalyticsInstallationId; Perfil de usuario – LiveOps Metrics #
El SDK de Tenjin Android realiza un seguimiento automático de las métricas de interacción de los usuarios para ayudarte a comprender el comportamiento de los jugadores y su valor a lo largo de su ciclo de vida. Estas métricas se recopilan automáticamente y se puede acceder a ellas mediante programación.
Seguimiento automático #
El SDK realiza un seguimiento automático de:
- Métricas de sesión: Número de sesiones, duración, fechas de la primera y la última sesión
- Compras dentro de la aplicación (IAP): Número de transacciones, ingresos por divisa, identificadores de los productos adquiridos
- Ingresos por publicidad (ILRD): Ingresos por impresión procedentes de redes publicitarias compatibles
Recuperación de datos del perfil de usuario #
Obtener el objeto de perfil completo #
Devuelve un objeto UserProfileData con todas las métricas:
import com.tenjin.android.TenjinSDK;
import com.tenjin.android.userprofile.UserProfileData;
TenjinSDK instance = TenjinSDK.getInstance(this, "<SDK_KEY>");
UserProfileData profile = instance.getUserProfile();
// Session metrics
int sessionCount = profile.getSessionCount();
long totalTime = profile.getTotalSessionTime();
long avgLength = profile.getAverageSessionLength();
long lastSession = profile.getLastSessionLength();
long currentSession = profile.getCurrentSessionDuration();
Long firstSession = profile.getFirstSessionDate();
Long lastSessionDate = profile.getLastSessionDate();
// IAP metrics
int iapCount = profile.getIapTransactionCount();
Map<String, Double> revenueByCurrency = profile.getIapRevenueByCurrency();
List<String> productIDs = profile.getPurchasedProductIDs();
// ILRD metrics
double totalAdRevenue = profile.getTotalILRDRevenueUSD();
Map<String, Double> revenueByNetwork = profile.getIlrdRevenueByNetwork();Propiedades disponibles (métodos «getter» de Java):
| Método | Tipo de retorno | Descripción |
|---|---|---|
getSessionCount() | int | Número total de sesiones |
getTotalSessionTime() | long | Tiempo total en milisegundos |
getAverageSessionLength() | long | Duración media de la sesión en milisegundos |
getLastSessionLength() | long | Última sesión completada en milisegundos |
getCurrentSessionDuration() | long | Sesión activa actual en milisegundos |
getFirstSessionDate() | Long | Marca de tiempo de la primera sesión (ms desde la época) |
getLastSessionDate() | Long | Marca de tiempo de la última sesión (ms desde la época) |
getIapTransactionCount() | int | Recuento total de IAP |
getIapRevenueByCurrency() | Map<String, Double> | Ingresos por código de divisa |
getPurchasedProductIDs() | List<String> | ID de productos ordenados |
getTotalILRDRevenueUSD() | double | Ingresos publicitarios totales en USD |
getIlrdRevenueByNetwork() | Map<String, Double> | Ingresos publicitarios por cadena |
Obtener el perfil como diccionario #
Devuelve un mapa con todas las métricas para facilitar la serialización:
Map<String, Object> profileDict = instance.getUserProfileDictionary();
// Example usage
Integer sessionCount = (Integer) profileDict.get("session_count");
String firstSession = (String) profileDict.get("first_session_date");
Map<String, Double> iapRevenue = (Map<String, Double>) profileDict.get("iap_revenue_by_currency");
List<String> productIds = (List<String>) profileDict.get("purchased_product_ids");Claves del diccionario (siempre presentes):
| Clave | Tipo | Descripción |
|---|---|---|
session_count | Integer | Total de sesiones |
total_session_time | Long | Tiempo total (milisegundos) |
average_session_length | Long | Duración media de la sesión (milisegundos) |
last_session_length | Long | Última sesión (milisegundos) |
iap_transaction_count | Integer | Recuento total de IAP |
total_ilrd_revenue_usd | Double | Ingresos publicitarios totales en USD |
Claves del diccionario (condicionales: solo si están disponibles):
| Clave | Tipo | Descripción |
|---|---|---|
first_session_date | String | Fecha con formato ISO 8601 |
last_session_date | String | Fecha con formato ISO 8601 |
current_session_length | Long | Duración de la sesión activa (milisegundos) |
iap_revenue_by_currency | Map<String, Double> | Correspondencia entre divisas y ingresos |
purchased_product_ids | List<String> | Lista ordenada de identificadores de productos |
ilrd_revenue_by_network | Map<String, Double> | Mapa de la red → ingresos |
Restablecer perfil #
Borra todos los datos del perfil de usuario:
instance.resetUserProfile();Configuración de la sesión #
Personalizar el tiempo de espera de la sesión (por defecto, 30 minutos):
UserProfileManager.setSessionTimeoutMs(600000); // 10 minutesVolver a intentar con la caché #
Puedes activar o desactivar el reenvío y el almacenamiento en caché de todos los eventos cuando las solicitudes fallen o los usuarios no dispongan de conexión a Internet. Estos eventos se enviarán una vez que se haya añadido un nuevo evento a la cola y el usuario haya recuperado la conexión.
.setCacheEventSetting(setting: true)
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.setCacheEventSetting(setting: true);Integración de los ingresos publicitarios por impresiones #
Tenjin es compatible con la función «Ingresos publicitarios por impresión» (ILRD) de,
- AppLovin MAX
- Unity LevelPlay
- HyperBid
- AdMob
- TopOn
- CAS
- TradPlus
- CloudX
Esta función te permite recibir notificaciones sobre los eventos que afectan a tus ingresos publicitarios cada vez que se muestra un anuncio a un usuario. Puedes acceder a la guía de integración aquí
Parámetros de Google DMA #
Si ya tienes una CMP integrada, el SDK de Tenjin recopilará automáticamente los parámetros de Google DMA. No es necesario implementar nada en el SDK de Tenjin si tienes una CMP integrada. Si deseas anular tu CMP o, simplemente, crear tus propios mecanismos de consentimiento, puedes utilizar lo siguiente:
setGoogleDMAParameters(boolean, boolean)
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.setGoogleDMAParameters(adPersonalization, adUserData); Para gestionar de forma explícita la recopilación de los parámetros de Google DMA, tienes la posibilidad de activar o desactivar esta opción en cualquier momento. Aunque la configuración predeterminada es la de activarla, puedes ajustar fácilmente tus preferencias mediante los métodos `optInGoogleDMA` u `optOutGoogleDMA`, lo que te garantiza un control total sobre tus ajustes de privacidad de datos:
instance.optInGoogleDMA();
instance.optOutGoogleDMA(); Pruebas #
Puedes comprobar si la integración funciona a través de nuestra herramienta de datos de dispositivos de prueba en tiempo real. Añade tu advertising_id a la lista de dispositivos de prueba. Lo encontrarás en Soporte -> Dispositivos de prueba. Ve a la página de la herramienta de eventos en tiempo real y envía los eventos de prueba desde tu aplicación. Deberías ver cómo llegan los eventos en tiempo real:
