Campañas LiveOps #
La respuesta de la función LiveOps no siempre se producirá en tiempo real. No podemos garantizar un tiempo de respuesta concreto, por lo que te recomendamos que implementes la lógica de reintento si no recibes una respuesta a tiempo.
En Tenjin puedes configurar un recorrido de usuario personalizado en función de su fuente de atribución. Esto abre todo un abanico de oportunidades para ofrecer una experiencia dentro de la aplicación mejor y más innovadora.
Ejemplo 1: Ofrecer recompensas dentro del juego a los usuarios que provengan de una campaña publicitaria concreta (por ejemplo, una campaña de promoción cruzada).
Ejemplo 2: Configura diferentes flujos de usuario (incorporación, monetización y otros) en función de si el usuario procede de una campaña publicitaria o de una fuente orgánica.
¿Cómo funcionan las campañas de LiveOps? #
Una vez que los datos de atribución se han procesado en un servidor de Tenjin, pueden enviarse de vuelta a un cliente (aplicación) cuando este lo solicite. A continuación, la aplicación procesa los datos y los utiliza para mostrar el contenido de la aplicación en consecuencia.
Tenjin solo se encarga de la parte de la transición de datos de este flujo de trabajo. La sustitución dinámica del contenido dentro de la aplicación es responsabilidad de los desarrolladores de la aplicación.
¿Qué datos de atribución puedo enviar a una aplicación? #
Cuando estén disponibles, se pueden devolver los siguientes parámetros a una aplicación:
| Parámetro | Descripción | Ejemplo de valor devuelto |
advertising_id | ID de publicidad del dispositivo | 11de7924d076456d9a203c8dee56632a |
ad_network | Red publicitaria de la campaña | mintegral |
campaign_id | ID de la campaña de Tenjin | 6ebd3332-68f8-4919-875c-73fe6780d4f7 |
campaign_name | Nombre de la campaña de Tenjin o nombre de la campaña de la red publicitaria (si la red publicitaria transmite el nombre de la campaña a Tenjin a través de un enlace de atribución o de la API, incluyendo todos los canales principales: Meta, Google, TikTok, Axon de Applovin, etc.) | mtg_us_1103 |
site_id | ID del subcanal o de la aplicación de origen | mtg_1256527 |
creative_name | Nombre creativo de la red publicitaria | video_123 |
remote_campaign_id | ID de la campaña de la red publicitaria | ss_mtg_US_1123 |
deferred_deeplink_url | URL de enlace profundo diferido | |
click_id | ID de clic de la red publicitaria | mtg65cebc77cddec80001c17f4w |
analytics_installation_id | Identificador específico de la instalación de la aplicación generada por Tenjin | f024e65f3dd94f16983726bcef192d68 |
A continuación se muestra un ejemplo de cómo podría tener el aspecto el objeto de datos devuelto:
{"referrer":"utm_source=(not%20set)&utm_medium=(not%20set)","referrer_params":{"utm_source":"(not set)","utm_medium":"(not set)"},"advertising_id":"00000000000000000000000000000000","ad_network":"ironsource","campaign_id":"f92aa3f1-8f2c-4110-ac2c-37c9a39618c4","campaign_name":"T1_ALL","site_id":"23445433","creative_name":"trees_playing_football"}¿Qué necesito para configurar campañas de LiveOps con Tenjin? #
Necesitarás lo siguiente:
- Integrar correctamente el SDK de Tenjin 1.12.19+
- Asegúrate de iniciar el SDK de Tenjin cada vez que abras una aplicación.
- Para Android, en el método onResume, llama a instance.connect();
- En el plugin de Unity, en los métodos onStart y onApplicationPause de la aplicación, llama a instance.connect();
Ejemplo de integración – iOS:
[[TenjinSDK sharedInstance]
getAttributionInfo:^(NSMutableDictionary *attributionInfo) {
NSLog(@"TenjinSDK getAttributionInfo result: %@", attributionInfo);
// Extract individual parameters
NSString *advertisingId = attributionInfo[@"advertising_id"];
NSString *adNetwork = attributionInfo[@"ad_network"];
NSString *campaignId = attributionInfo[@"campaign_id"];
NSString *campaignName = attributionInfo[@"campaign_name"];
NSString *siteId = attributionInfo[@"site_id"];
NSString *creativeName = attributionInfo[@"creative_name"];
NSString *deferredDeeplinkUrl = attributionInfo[@"deferred_deeplink_url"];
}]
;Ejemplo de integración – Android:
import com.tenjin.android.Callback;
import com.tenjin.android.TenjinSDK;
public class TenjinDemo extends ActionBarActivity {
//...other Callbacks are here
@Override
public void onResume() {
// standard code
super.onResume()
// Integrate TenjinSDK connect call
String apiKey = "<API_KEY>";
TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);
instance.connect();
instance.getAttributionInfo(new Callback() {
@Override
public void onSuccess(Map<String, String> data) {
if (data.containsKey(TenjinConsts.ATTR_PARAM_ADVERTISING_ID)) {
// Advertising ID of the device
}
if (data.containsKey(TenjinConsts.ATTR_PARAM_AD_NETWORK)) {
// Ad Network of the campaign
}
if (data.containsKey(TenjinConsts.ATTR_PARAM_CAMPAIGN_ID)) {
// Tenjin campaign ID
}
if (data.containsKey(TenjinConsts.ATTR_PARAM_CAMPAIGN_NAME)) {
// Tenjin campaign name
}
if (data.containsKey(TenjinConsts.ATTR_PARAM_SITE_ID)) {
// Tenjin Site ID
}
if (data.containsKey(TenjinConsts.ATTR_PARAM_CREATIVE_NAME)) {
// Tenjin creative name
}
}
});
}
}
Ejemplo de integración – Unity:
BaseTenjin instance = Tenjin.getInstance("<SDK_KEY>");
instance.GetAttributionInfo((Dictionary<string, string> attributionInfoData) => {
// Extract individual parameters
string advertisingId = GetValueOrDefault(attributionInfoData, "advertising_id");
string adNetwork = GetValueOrDefault(attributionInfoData, "ad_network");
string campaignId = GetValueOrDefault(attributionInfoData, "campaign_id");
string campaignName = GetValueOrDefault(attributionInfoData, "campaign_name");
string siteId = GetValueOrDefault(attributionInfoData, "site_id");
string creativeName = GetValueOrDefault(attributionInfoData, "creative_name");
string deferredDeeplinkUrl = GetValueOrDefault(attributionInfoData, "deferred_deeplink_url");
});