Integrar utilizando LLMs (IA) – Utilize o seguinte prompt:
Adicione o SDK do Tenjin ao meu projeto utilizando: https://raw.githubusercontent.com/tenjin/sdk-llm-guides/main/guides/android/llm-guide.md
Comece a utilizar o SDK do Android #
O SDK Tenjin Android permite aos utilizadores monitorizar eventos e instalações nas suas aplicações Android. Para saber mais sobre a Tenjin e a nossa gama de produtos, visite https://www.tenjin.com.
- Consulte as nossas Notas de Lançamento para ver o histórico detalhado das alterações introduzidas nas versões.
- Recomendamos a utilização da versão mais recente do Android Studio.
- Para a integração com o Unity, visite https://github.com/tenjin/tenjin-unity-sdk.
- Em caso de dúvidas ou para obter assistência, contacte: support@tenjin.com.
Integração básica #
Instalação manual #
Por favor, siga os passos indicados abaixo na secção ‘Android Studio’.’
Maven #
Se utilizar o Maven, adicione a implementação com.tenjin:android-sdk:VERSION às suas dependências do Gradle e adicione mavenCentral() aos repositórios de código-fonte, caso ainda não esteja lá.
Estúdio Android #
- Descarregue a versão mais recente do SDK Android a partir de aqui.
- Adicione o SDK do Tenjin ao seu projeto do Android Studio. Aceda ao Navegador de Projetos no Android Studio. Selecione a opção
Projetono Navegador de Projetos. Encontrará a pastalibsno móduloappdo seu projeto do Android Studio. - Tem de adicionar o ficheiro
tenjin.jaroutenjin.aarà pastalibs.
- No seu projeto Android Studio, no módulo
app, selecione o ficheirobuild.gradle, e adicione o seguinte no bloco de dependências:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
implementation files('libs/tenjin.aar')
}> Temos um projeto de demonstração – [tenjin-android-sdk-demo][31] – que ilustra a integração do tenjin-android-sdk. Pode utilizar este projeto como exemplo para compreender como integrar o tenjin-android-sdk.
Google Play ou loja Amazon #
Se distribuir as suas aplicações na Google Play Store ou na loja Amazon, efetue as seguintes configurações iniciais.
Autorização #
O SDK do Tenjin requer as seguintes autorizações:
<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) -->Os Serviços do Google Play exigem que todas as aplicações com nível de API 32 (Android 13) que utilizem o advertising_id (Android Advertising ID (AAID)) declarem a autorização AD_ID dos Serviços do Google Play (conforme indicado abaixo) no seu ficheiro de manifesto.
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>ID de publicidade Android (AAID) e Referenciador de instalação #
Adicione o ID de publicidade Android (AAID) e Install Referrer, e adicione-as ao seu ficheiro build.gradle.
dependencies {
implementation 'com.google.android.gms:play-services-ads-identifier:{version}'
implementation 'com.android.installreferrer:installreferrer:{version}'
}Para poder recolher o Install Referrer da Meta, adicione estas consultas ao seu manifesto Android:
<queries>
<package android:name="com.facebook.katana" />
</queries>
<queries>
<package android:name="com.instagram.android" />
</queries>Em seguida, adicione este valor ao seu ficheiro strings.xml:
<string name="facebook_app_id" translatable="false">YOUR_META_APP_ID</string>App Store #
Por predefinição, unspecified é a App Store predefinida. Atualize o valor da App Store para googleplay ou amazon, consoante a sua aplicação.
AndroidManifest.xml:
<meta-data
android:name="TENJIN_APP_STORE"
android:value="googleplay" />setAppStore():
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.setAppStore(TenjinSDK.AppStoreType.googleplay);Opções da App Store #
TenjinSDK.AppStoreType.googleplay // Google Play App Store
TenjinSDK.AppStoreType.amazon // Amazon AppStore
TenjinSDK.AppStoreType.other // OtherInicialização da aplicação #
- Obtenha a sua
SDK_KEYna página da sua aplicação. Nota:SDK_KEYé única para cada uma das suas aplicações. Pode criar até 3 chaves para a mesma aplicação.

- Na sua atividade, importe o Tenjin:
import com.tenjin.android.TenjinSDK; - No método
onResumeda sua classe principalActivity, adicione a seguinte linha de código:
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.connect();NOTA: Se a sua aplicação tiver a lógica para solicitar o consentimento do utilizador entre onCreate e onResume, utilize onCreate em vez de onResume para a inicialização do SDK Tenjin, uma vez que os utilizadores que não derem o seu consentimento não serão rastreados em onResume.
NOTA: Certifique-se de que implementa este código em todos os onResume, e não apenas na primeira vez que a aplicação for aberta.
Outra loja Android #
Se distribuir as suas aplicações fora da Google Play Store ou da loja Amazon (outra loja Android), efetue as seguintes configurações iniciais.
Autorização #
<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) -->Os Serviços do Google Play exigem que todas as aplicações com nível de API 32 (Android 13) que utilizem o advertising_id (Android Advertising ID (AAID)) declarem a autorização AD_ID dos Serviços do Google Play (conforme indicado abaixo) no seu ficheiro manifest.
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>ID de publicidade Android (AAID) e Referenciador de instalação #
Adicione o ID de publicidade Android (AAID) e Install Referrer, e adicione-as ao seu ficheiro build.gradle.
dependencies {
implementation 'com.google.android.gms:play-services-ads-identifier:{version}'
implementation 'com.android.installreferrer:installreferrer:{version}'
}Se estiver a utilizar uma rede de publicidade que utilize o IMEI, terá de ativar as seguintes permissões. (Se estiver a distribuir as suas aplicações no Google Play, por favor NÃO adicione esta permissão.)
<uses-permission android:name="android.permission.READ_PHONE_STATE" />OAID #
A Tenjin apoia a promoção da sua aplicação noutras lojas de aplicações Android através do Android OAID. Temos os seguintes requisitos para a integração das bibliotecas OAID.
MSA OAID #
O MSA OAID é um identificador de publicidade para dispositivos fabricados na China, fornecido pela MSA (Mobile Security Alliance). Para integração com a biblioteca MSA, descarregue os seguintes ficheiros: oaid\_sdk\_1.0.25.aar e supplierconfig.json.
Adicione o seguinte ao ficheiro Gradle do seu projeto:
implementation files('libs/oaid_sdk_1.0.25.aar')Certifique-se de que copia o ficheiro supplierconfig.json para a pasta assets do seu projeto.
Huawei OAID #
Fora da China, pode obter o OAID utilizando a biblioteca fornecida pela Huawei. Para integrar a biblioteca OAID da Huawei, adicione o seguinte ao seu projeto:
No seu ficheiro build.gradle, adicione o endereço Maven dos SDKs da Huawei:
allprojects {
repositories {
google()
maven { url 'https://developer.huawei.com/repo/' }
}
}dependencies {
implementation 'com.huawei.hms:ads-identifier:{version}'
}Referenciador de instalação da Huawei #
Se estiver a promover a sua aplicação através da Huawei App Gallery, adicione tanto o SDK do Huawei OAID mencionado acima como a biblioteca biblioteca Install Referrer.
dependencies {
implementation 'com.huawei.hms:ads-identifier:{version}'
implementation 'com.huawei.hms:ads-installreferrer:{version}'
}
App Store #
Por predefinição, não especificado é a App Store predefinida. Atualize o valor da App Store para outra.
AndroidManifest.xml:
<meta-data
android:name="TENJIN_APP_STORE"
android:value="other" />setAppStore():
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.setAppStore(TenjinSDK.AppStoreType.other);Inicialização da aplicação #
- Obtenha a sua
SDK_KEYna página da sua aplicação. Nota:SDK_KEYé única para cada uma das suas aplicações. Pode criar até 3 chaves para a mesma aplicação.

- Na sua atividade, importe o Tenjin:
import com.tenjin.android.TenjinSDK; - No método
onResumeda sua classe principalActivity, adicione a seguinte linha de código:
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.connect();NOTA: Certifique-se de que implementa este código em todos os , e não apenas na primeira vez que a aplicação for aberta. Se verificarmos que não segue a nossa recomendação, não poderemos prestar-lhe o apoio adequado ou a sua conta poderá ser suspensa.onResume
Definições do 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.TypeTokenNão ofusque as classes do 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>;}Se estiver a utilizar bibliotecas da Huawei, pode utilizar estas definições:
-keep class com.huawei.hms.ads.** { *; }
-keep interface com.huawei.hms.ads.** { *; }Integração adicional #
RGPD #
O Regulamento Geral sobre a Proteção de Dados (UE) (RGPD) é um regulamento do direito da UE relativo à proteção de dados e à privacidade na União Europeia (UE) e no Espaço Económico Europeu (EEE).
É necessário obter o consentimento do utilizador, quer este permita ou não o rastreamento, na primeira vez que a aplicação for aberta; em seguida, registe o resultado na função checkOptInValue() . Depois disso, pode seguir os passos de integração abaixo. Se não for necessário que a sua aplicação esteja em conformidade com o RGPD, ignore simplesmente toda esta secção.
No âmbito da conformidade com o RGPD, com o SDK da Tenjin pode ativar ou desativar a participação de dispositivos/utilizadores, ou selecionar quais os parâmetros específicos relacionados com os dispositivos que pretende ativar ou desativar. optOut() não enviará quaisquer pedidos de API à Tenjin, e não processaremos quaisquer eventos.
Para subscrever/cancelar a subscrição:
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 ativar ou desativar parâmetros específicos relacionados com o dispositivo, pode utilizar optInParams() ou optOutParams().
A função optInParams()enviará apenas os parâmetros relacionados com o dispositivo que estiverem especificados.optOutParams()enviará todos os parâmetros relacionados com o dispositivo, exceto aqueles que forem especificados.- Por favor, tenha em atenção que necessitamos do seguinte parâmetro para efetuar o acompanhamento adequado dos dispositivos no sistema da Tenjin. Se este parâmetro obrigatório não estiver presente, o evento não será processado nem registado.
advertising_id
- Se estiver a direcionar anúncios para redes publicitárias baseadas em IMEI e/ou OAID, estes parâmetros são obrigatórios:
imeioaid
- Se pretender utilizar o Google AdWords, estes parâmetros são obrigatórios:
platformos_versionapp_versionlocaledevice_modelbuild_idadvertising_id
Se pretender obter apenas parâmetros específicos relacionados com o dispositivo, utilize optInParams(). No exemplo abaixo, iremos utilizar apenas estes parâmetros relacionados com o dispositivo: ip_address, advertising_id, limit_ad_tracking e referrer.
String apiKey = " ";
TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);
String[] optInParams = {"ip_address", "advertising_id", "limit_ad_tracking", "referrer"};
instance.optInParams(optInParams);
instance.connect();Se pretender enviar TODOS os parâmetros, exceto os parâmetros específicos relacionados com o dispositivo, utilize optOutParams(). No exemplo abaixo, iremos enviar TODOS os parâmetros relacionados com o dispositivo, exceto:
String apiKey = " ";
TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);
String[] optOutParams = {"locale", "timezone", "build_id"};
instance.optOutParams(optOutParams);
instance.connect();Ativar/desativar através do CMP #
Pode ativar ou desativar automaticamente esta funcionalidade utilizando os seus consentimentos CMP (finalidade 1), que já se encontram guardados no dispositivo do utilizador. O método devolve um valor booleano para indicar se a funcionalidade está ativada ou desativada.
optInOutUsingCMP()
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
optInOut = instance.optInOutUsingCMP(); Parâmetros relacionados com o dispositivo #
| Param | Descrição |
|---|---|
| endereço_IP | Endereço IP |
| id_publicitário | ID de publicidade do dispositivo |
| limitar_o_rastreio_de_publicidade | rastreamento de anúncios limitado ativado |
| oaid | ID de Publicidade Aberta |
| IMEI | IMEI do dispositivo |
| plataforma | Plataforma |
| referente | Referência de instalação do Google Play |
| os_version | versão do sistema operativo |
| dispositivo | nome do dispositivo |
| fabricante_do_dispositivo | fabricante de dispositivos |
| modelo_do_dispositivo | modelo do dispositivo |
| marca_do_dispositivo | marca do dispositivo |
| produto_dispositivo | produto de equipamento |
| transportadora | operadora de telemóvel |
| tipo_de_ligação | rede móvel ou Wi-Fi |
| largura_do_ecrã | largura do ecrã do dispositivo |
| altura_do_ecrã | altura do ecrã do dispositivo |
| os_version_release | versão do sistema operativo |
| build_id | ID da compilação |
| configuração regional | configuração regional do dispositivo |
| país | país de localização |
| fuso horário | fuso horário |
Eventos de compra #
Para compreender as receitas e o comportamento de compra dos utilizadores, os programadores podem enviar eventos de transação para a Tenjin. O Tenjin irá validar os recibos de transação por si. Tenha em atenção que, atualmente, apenas suportamos transações IAP do Google Play.
IMPORTANTE: Terá de adicionar a chave pública da sua aplicação no painel de controlo do Tenjin (na página de ‘edição’ da aplicação). Pode obter a sua chave pública RSA codificada em Base64 na Consola de Programadores do Google Play \> Selecione a sua aplicação > Monetizar > Configuração de monetização > Faturação do Google Play > Licenciamento: Chave pública RSA codificada em Base64. Tenha em atenção que, no caso do Android, atualmente só suportamos transações IAP a partir do Google Play.

Depois de introduzir a sua chave pública no painel de controlo do Tenjin para a sua aplicação, pode utilizar o método do SDK do Tenjin abaixo:
public void transaction(String productId, String currencyCode, int quantity, double unitPrice, String purchaseData, String dataSignature)Exemplo:
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);
}Pode verificar se a validação do IAP está a funcionar através da nossa Ferramenta de Dados de Dispositivos de Teste em Tempo Real. Deverá ver a aparecer um evento em tempo real:
Certifique-se de que ‘confirma’ o evento de compra antes de o enviar para a Tenjin. Para mais detalhes, leia aqui.
Escolha entre as comissões sobre as receitas da App Store 0%, 15% e 30% através da nossa nova configuração. Os passos são os seguintes: –
- Vá a CONFIGURAR –> Aplicações
- Clique na aplicação que pretende alterar
- Na secção ‘Comissão da App Store’, clique em ‘Editar’
- Escolha 30%, 15% ou 0% como a comissão que pretende receber da loja de aplicações.
- Selecione a data de início e a data de fim (ou pode deixar a data de fim em branco, se não quiser definir uma data de fim)
- Clique em «Guardar» (nota: a comissão só pode ser aplicada a datas futuras e não a datas passadas. Por isso, defina a data de início a partir da data em que efetuar a alteração e para a frente)
Amazon AppStore
A validação de recibos da AppStore do Amazon requer os parâmetros receiptId e userId.
IMPORTANTE: Terá de adicionar a chave partilhada da sua aplicação Amazon no painel de controlo do Tenjin. A chave secreta pode ser encontrada na secção "Chave Partilhada" da sua conta de programador na conta da Amazon Appstore
Eventos personalizados #
NOTA: O evento de inicialização connect() deve ocorrer antes do envio de quaisquer eventos personalizados.
IMPORTANTE: Limite os nomes dos eventos personalizados a menos de 80 caracteres. Não exceda os 500 nomes únicos de eventos personalizados.
Pode utilizar o SDK do Tenjin para enviar um evento personalizado: eventWithName(String name).
As interações personalizadas com a sua aplicação podem ser associadas ao custo por nível de cada fonte de aquisição que utilize através do serviço da Tenjin. Eis um exemplo de utilização:
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 com valores #
Pode utilizar o SDK do Tenjin para enviar um evento personalizado com um valor inteiro: eventWithNameAndValue(String name, int value).
A passagem de um valor inteiro com o nome permite aos profissionais de marketing resumir e acompanhar as médias dos valores passados para essa métrica no painel do Tenjin. Se pretender utilizar o DataVault, estes valores podem ser utilizados para derivar métricas adicionais que podem ser úteis.
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);Com base no exemplo acima, o painel do Tenjin irá somar e calcular a média dos valores de todos os eventos com o nome item.
Tenha em atenção que este evento não funcionará se o valor passado não for um número inteiro.
//Integrate a custom event with a distinct name and value - ie. paying 100 virtual coins for an item
instance.eventWithNameAndValue("item", "1");Integração entre servidores #
A Tenjin oferece integração servidor a servidor. Isto permite-lhe enviar os seus eventos de instalação e pós-instalação diretamente dos seus servidores para os servidores da Tenjin, sem necessidade de integração de um SDK.
Parâmetro «Subversion» da aplicação para testes A/B (requer o DataVault) #
Se estiver a realizar testes A/B e pretender relatar as diferenças, podemos acrescentar um valor numérico à versão da sua aplicação utilizando o método appendAppSubversion(). Por exemplo, se a versão da sua aplicação for 1.0.1 e definir appendAppSubversion(8888), a versão da aplicação será apresentada como 1.0.1.8888.
Estes dados serão apresentados no DataVault, onde poderá gerar relatórios utilizando os valores de subversão da aplicação.
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.appendAppSubversion(8888);
instance.connect();Campanhas LiveOps #
O Tenjin permite a recuperação de informações de atribuição do utilizador, tais como a origem rede de publicidade e da campanha, a partir do SDK. Isto permitirá aos programadores recolher e analisar dados de atribuição ao nível do utilizador em tempo real. Eis os possíveis casos de utilização com as Campanhas Tenjin LiveOps:
- Se tiver a sua própria ferramenta de análise de dados, o callback S2S permitir-lhe-á associar os dados de atribuição aos seus dados no jogo, ao nível de cada dispositivo.
- Mostre conteúdos diferentes na aplicação, dependendo da origem do utilizador. Por exemplo, se o utilizador A for atribuído ao tráfego orgânico e o utilizador B for atribuído à Meta, e se for provável que o utilizador B se envolva mais com a sua aplicação, então convém mostrar uma oferta especial no jogo depois de o utilizador instalar a aplicação. Se quiser discutir casos de utilização mais específicos, escreva para support@tenjin.com.
Pode encontrar mais informações sobre como utilizar o LiveOps aqui.
ID de utilizador do cliente #
Pode definir e obter o ID de utilizador do cliente para o enviar como parâmetro nos eventos.
.setCustomerUserId(userId: "user_id")
.getCustomerUserId()
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.setCustomerUserId(userId: "user_id");
userId = instance.getCustomerUserId(); ID de instalação do Analytics #
Pode obter o ID de análise, que é gerado aleatoriamente e guardado no armazenamento local do dispositivo. getAnalyticsInstallationId()
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
analyticsId = instance.getAnalyticsInstallationId; Perfil do utilizador – LiveOps Metrics #
O SDK Tenjin Android monitoriza automaticamente as métricas de envolvimento dos utilizadores para o ajudar a compreender o comportamento dos jogadores e o valor ao longo do ciclo de vida. Estas métricas são recolhidas automaticamente e podem ser acedidas por via programática.
Rastreamento automático #
O SDK monitoriza automaticamente:
- Métricas da sessão: Número de sessões, duração, datas da primeira e da última sessão
- Compras na aplicação (IAP): Número de transações, receitas por moeda, IDs dos produtos adquiridos
- Receitas publicitárias (ILRD): Receitas por impressão provenientes de redes de publicidade compatíveis
Recuperação de dados do perfil do utilizador #
Obter o objeto de perfil completo #
Devolve um objeto UserProfileData com todas as 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();Propriedades disponíveis (getters em Java):
| Método | Tipo de retorno | Descrição |
|---|---|---|
getSessionCount() | int | Número total de sessões |
getTotalSessionTime() | long | Tempo total em milissegundos |
getAverageSessionLength() | long | Duração média da sessão em milissegundos |
getLastSessionLength() | long | Última sessão concluída em milissegundos |
getCurrentSessionDuration() | long | Sessão ativa atual em milissegundos |
getFirstSessionDate() | Long | Carimbo de data/hora da primeira sessão (ms desde a época) |
getLastSessionDate() | Long | Carimbo de data/hora da última sessão (ms desde a época) |
getIapTransactionCount() | int | Número total de IAP |
getIapRevenueByCurrency() | Map<String, Double> | Receitas por código de moeda |
getPurchasedProductIDs() | List<String> | IDs de produtos ordenados |
getTotalILRDRevenueUSD() | double | Receita total de publicidade em USD |
getIlrdRevenueByNetwork() | Map<String, Double> | Receitas publicitárias por rede |
Obter perfil como dicionário #
Devolve um mapa com todas as métricas para facilitar a serialização:
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");Chaves do dicionário (sempre presentes):
| Chave | Tipo | Descrição |
|---|---|---|
session_count | Integer | Total de sessões |
total_session_time | Long | Tempo total (milissegundos) |
average_session_length | Long | Duração média da sessão (milissegundos) |
last_session_length | Long | Última sessão (milissegundos) |
iap_transaction_count | Integer | Número total de IAP |
total_ilrd_revenue_usd | Double | Receita total de publicidade em USD |
Chaves do dicionário (condicionais – apenas se estiverem disponíveis):
| Chave | Tipo | Descrição |
|---|---|---|
first_session_date | String | Data no formato ISO 8601 |
last_session_date | String | Data no formato ISO 8601 |
current_session_length | Long | Duração da sessão ativa (milissegundos) |
iap_revenue_by_currency | Map<String, Double> | Mapa da moeda → receitas |
purchased_product_ids | List<String> | Lista ordenada de IDs de produtos |
ilrd_revenue_by_network | Map<String, Double> | Mapa da rede → receitas |
Redefinir perfil #
Apaga todos os dados do perfil do utilizador:
instance.resetUserProfile();Configuração da sessão #
Personalizar o tempo de expiração da sessão (por predefinição, 30 minutos):
UserProfileManager.setSessionTimeoutMs(600000); // 10 minutesReiniciar a cache #
Pode ativar ou desativar a repetição de tentativas e o armazenamento em cache de todos os eventos quando as solicitações falham ou os utilizadores não têm ligação à Internet. Estes eventos serão enviados depois de um novo evento ter sido adicionado à fila e de o utilizador ter recuperado a ligação.
.setCacheEventSetting(setting: true)
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.setCacheEventSetting(setting: true);Integração das receitas publicitárias com base no número de impressões #
O Tenjin suporta a integração com a funcionalidade «Impression Level Ad Revenue» (ILRD) da,
- AppLovin MAX
- Unity LevelPlay
- HyperBid
- AdMob
- TopOn
- CAS
- TradPlus
- CloudX
Esta funcionalidade permite-lhe receber eventos que correspondem à forma como a sua receita publicitária é afetada por cada exibição de anúncio a um utilizador. O acesso ao guia de integração está aqui
Parâmetros do Google DMA #
Se já tiver uma CMP integrada, os parâmetros do Google DMA serão recolhidos automaticamente pelo SDK do Tenjin. Não é necessário implementar nada no SDK do Tenjin se tiver uma CMP integrada. Se pretender substituir a sua CMP ou, simplesmente, criar os seus próprios mecanismos de consentimento, pode utilizar o seguinte:
setGoogleDMAParameters(boolean, boolean)
TenjinSDK instance = TenjinSDK.getInstance(this, " ");
instance.setGoogleDMAParameters(adPersonalization, adUserData); Para gerir explicitamente a recolha de parâmetros do Google DMA, tem a flexibilidade de ativar ou desativar esta funcionalidade a qualquer momento. Embora a configuração predefinida seja a ativação, pode ajustar facilmente as suas preferências utilizando os métodos optInGoogleDMA ou optOutGoogleDMA, garantindo assim o controlo total sobre as suas definições de privacidade de dados:
instance.optInGoogleDMA();
instance.optOutGoogleDMA(); Testes #
Pode verificar se a integração está a funcionar através da nossa Ferramenta de Dados de Dispositivos de Teste em Tempo Real. Adicione o seu advertising_id à lista de dispositivos de teste. Pode encontrá-lo em Suporte -> Dispositivos de Teste. Aceda à página Ferramenta de Eventos em Tempo Real e envie os eventos de teste a partir da sua aplicação. Deverá ver os eventos em tempo real a chegar:
