Campanhas LiveOps #
A resposta da funcionalidade LiveOps nem sempre será em tempo real. Não temos um tempo de resposta garantido, pelo que solicitamos que implemente a lógica de repetição da tentativa caso não obtenha uma resposta atempadamente.
No Tenjin, é possível configurar um percurso personalizado para cada utilizador, consoante a sua fonte de atribuição. Isto abre todo um leque de oportunidades diferentes para uma experiência dentro da aplicação melhor e mais inovadora.
Exemplo 1: Atribuir recompensas no jogo aos utilizadores provenientes de uma campanha publicitária específica (por exemplo, uma campanha promocional cruzada).
Exemplo 2: Definir diferentes fluxos de utilizadores (integração, monetização e outros) consoante o utilizador provenha de uma campanha publicitária ou de uma fonte orgânica.
Como funcionam as campanhas da LiveOps? #
Depois de os dados de atribuição serem processados num servidor Tenjin, podem ser devolvidos a um cliente (aplicação) mediante pedido. Os dados são então processados pela aplicação e utilizados para apresentar o conteúdo da aplicação em conformidade.
O Tenjin abrange apenas a parte relativa à transição de dados deste fluxo de trabalho. A substituição dinâmica do conteúdo da aplicação é da responsabilidade dos programadores da aplicação.
Que dados de atribuição posso enviar para uma aplicação? #
Quando disponíveis, os seguintes parâmetros podem ser devolvidos a uma aplicação:
| Parâmetro | Descrição | Exemplo de valor devolvido |
advertising_id | ID de publicidade do dispositivo | 11de7924d076456d9a203c8dee56632a |
ad_network | Rede de publicidade da campanha | minintegral |
campaign_id | ID da campanha Tenjin | 6ebd3332-68f8-4919-875c-73fe6780d4f7 |
campaign_name | Nome da campanha no Tenjin ou nome da campanha da rede publicitária (caso a rede publicitária transmita o nome da campanha ao Tenjin através de um link de atribuição ou da API, incluindo todos os principais canais: Meta, Google, TikTok, Axon da Applovin, etc.) | mtg_us_1103 |
site_id | ID do subcanal ou da aplicação de origem | mtg_1256527 |
creative_name | Nome criativo da rede de publicidade | vídeo_123 |
remote_campaign_id | ID da campanha da rede de publicidade | ss_mtg_US_1123 |
deferred_deeplink_url | URL do deep link diferido | |
click_id | ID de clique da rede de publicidade | mtg65cebc77cddec80001c17f4w |
analytics_installation_id | Identificador específico da instalação da aplicação gerado pelo Tenjin | f024e65f3dd94f16983726bcef192d68 |
Eis um exemplo de como o objeto de dados devolvido pode se apresentar:
{"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"}O que preciso para configurar campanhas do LiveOps com o Tenjin? #
Vai precisar do seguinte:
- Integrar com sucesso o SDK do Tenjin 1.12.19+
- Certifique-se de que inicia o Tenjin SDK sempre que abrir uma aplicação
- Para o Android, na atividade principal do onResume, chame instance.connect();
- No plugin do Unity, nos métodos onStart e onApplicationPause da aplicação, chame instance.connect();
Exemplo de integração – 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"];
}]
;Exemplo de integração – 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
}
}
});
}
}
Exemplo de integração – 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");
});