SDK do Unity - Referência de configuração
Todas as opções de configuração expostas pelo SDK do Singular para Unity, com tipo, valor padrão, plataformas suportadas e como defini-las.
A maioria das opções são campos do componente SingularSDK, então aparecem no Inspector do Unity no GameObject do Singular SDK. Algumas são membros estáticos: não aparecem no Inspector e só podem ser definidas no código antes da inicialização. Cada entrada abaixo indica qual é o caso.
Configurar pelo código
Desmarque Initialize On Awake no Inspector, defina os campos necessários e inicialize o SDK você mesmo. Membros estáticos só podem ser definidos dessa forma.
using UnityEngine;
using Singular;
public class SingularBootstrap : MonoBehaviour
{
void Awake()
{
// Clear Initialize On Awake in the Inspector first, so the SDK
// does not start before these values are set.
SingularSDK singular = GetComponent<SingularSDK>();
singular.SingularAPIKey = "YOUR_SDK_KEY";
singular.SingularAPISecret = "YOUR_SDK_SECRET";
singular.sessionTimeoutSec = 120;
// Static members are not shown in the Inspector and are set here only.
SingularSDK.endSessionOnGoingToBackground = true;
SingularSDK.InitializeSingularSDK();
}
}
Exemplo de configuração completa
Configuração abrangente do SDK
Uma configuração representativa cobrindo as opções usadas pela maioria das integrações.
using UnityEngine;
using Singular;
public class SingularBootstrap : MonoBehaviour
{
void Awake()
{
SingularSDK singular = GetComponent<SingularSDK>();
// Required
singular.SingularAPIKey = "YOUR_SDK_KEY";
singular.SingularAPISecret = "YOUR_SDK_SECRET";
// Logging — off for a production build
singular.enableLogging = false;
// Sessions and link resolution
singular.sessionTimeoutSec = 120;
singular.shortlinkResolveTimeout = 15;
singular.ddlTimeoutSec = 120; // Android
// Links
singular.brandedDomains = new string[] { "go.yourcompany.com" };
singular.pushNotificationsLinkPaths = new string[] { "sng_link" };
// iOS
singular.waitForTrackingAuthorizationWithTimeoutInterval = 300;
singular.SKANEnabled = true;
// Android
singular.facebookAppId = "1234567890";
SingularSDK.InitializeSingularSDK();
}
}
autoIAPComplete
Propriedade SingularSDK.autoIAPComplete
Opção legada para concluir automaticamente as transações do StoreKit.
Recurso obsoleto: este campo está marcado como [Obsolete] no SDK e não deve ser usado em novas integrações. Conclua as transações pelo Unity IAP e reporte-as com SingularSDK.InAppPurchase().
Assinatura
public bool autoIAPComplete
Padrão: false
Plataforma: Somente iOS
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.autoIAPComplete = false;
brandedDomains
Propriedade SingularSDK.brandedDomains
Domínios de link personalizados que o SDK deve tratar como Singular Links. Adicione todos os domínios de marca usados em tracking links; sem isso, apenas os domínios sng.link registrados na página Manage Links são reconhecidos.
Assinatura
public string[] brandedDomains
Padrão: null
Plataforma: iOS e Android
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.brandedDomains = new string[] {
"yourcompany.com",
"go.yourcompany.com"
};
clipboardAttribution
Propriedade SingularSDK.clipboardAttribution
Permite que o SDK leia a área de transferência na inicialização para recuperar dados de atribuição de um Singular Link.
Ler a área de transferência exibe ao usuário a notificação de colagem do sistema no iOS 14 e posteriores. Habilite apenas se você aceita essa contrapartida.
Assinatura
public bool clipboardAttribution
Padrão: false
Plataforma: Somente iOS
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.clipboardAttribution = true;
collectOAID
Propriedade SingularSDK.collectOAID
Coleta o OAID, um identificador de publicidade usado em dispositivos Android sem o Google Play Services — principalmente na China continental. Exige a biblioteca OAID na sua build.
Assinatura
public bool collectOAID
Padrão: false
Plataforma: Somente Android
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.collectOAID = true;
CustomSdid
Propriedade SingularSDK.CustomSdid
Fornece o seu próprio Singular Device ID em vez de deixar o SDK gerá-lo. Defina antes da inicialização e registre um handler com SingularSDK.SetSingularSdidAccessorHandler() para saber quando ele foi aceito.
Recurso Enterprise: o SDID personalizado não vem habilitado por padrão. Não o defina a menos que sua conta esteja habilitada — fale antes com seu representante do Singular.
Assinatura
public static string CustomSdid
Padrão: null
Plataforma: iOS e Android
Definido em: Somente código — não aparece no Inspector
Exemplo de uso
SingularSDK.CustomSdid = "your-own-device-id";
ddlTimeoutSec
Propriedade SingularSDK.ddlTimeoutSec
Por quanto tempo após uma instalação nova o SDK ainda resolverá um deep link diferido e chamará o seu handler de Singular Link. Deixe em 0 para usar o padrão de 60 segundos.
Assinatura
public long ddlTimeoutSec
Padrão: 0 (uses the 60 second default)
Plataforma: Somente Android
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.ddlTimeoutSec = 120;
enableDeferredDeepLinks
Propriedade SingularSDK.enableDeferredDeepLinks
Registra o handler de deep links diferidos no Android. Deixe habilitado, a menos que você queira deliberadamente ignorar links diferidos.
Assinatura
public static bool enableDeferredDeepLinks
Padrão: true
Plataforma: Somente Android
Definido em: Somente código — não aparece no Inspector
Exemplo de uso
SingularSDK.enableDeferredDeepLinks = false;
enableLogging
Propriedade SingularSDK.enableLogging
Habilita a saída de log do SDK, útil durante a integração e a solução de problemas. Ela vem habilitada por padrão (enableLogging é true), então desmarque a caixa antes de publicar uma build de produção.
Assinatura
public bool enableLogging
Padrão: true
Plataforma: iOS e Android
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.enableLogging = false;
enableODMWithTimeoutInterval
Propriedade SingularSDK.enableODMWithTimeoutInterval
Habilita o On-Device Measurement (ODM) do Google e define quantos segundos o SDK aguarda pelo token de atribuição do Google antes de enviar a primeira sessão. Obrigatório para o Google Ads iOS Integrated Conversion Measurement (ICM).
Isso atrasa a primeira sessão. O SDK bloqueia até o Google retornar um token ou o intervalo se esgotar, então os callbacks de deep link são adiados em até esse número de segundos. O ODM também exige o SDK de ODM do Google, a flag de linkagem -ObjC e o SDK do Unity v5.5.0 ou posterior.
Assinatura
public int enableODMWithTimeoutInterval
Padrão: -1 (disabled)
Plataforma: Somente iOS
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.enableODMWithTimeoutInterval = 10;
endSessionOnGoingToBackground
Propriedade SingularSDK.endSessionOnGoingToBackground
Encerra a sessão do Singular assim que o app vai para segundo plano, em vez de deixá-la expirar após o tempo limite de sessão. A maioria dos apps deve deixar isso desativado e usar o sessionTimeoutSec.
Assinatura
public static bool endSessionOnGoingToBackground
Padrão: false
Plataforma: iOS e Android
Definido em: Somente código — não aparece no Inspector
Exemplo de uso
SingularSDK.endSessionOnGoingToBackground = true;
facebookAppId
Propriedade SingularSDK.facebookAppId
Seu Facebook App ID, necessário para a atribuição por install referrer da Meta no Android.
Assinatura
public string facebookAppId
Padrão: null
Plataforma: Somente Android
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.facebookAppId = "1234567890";
fcmDeviceToken
Propriedade SingularSDK.fcmDeviceToken
O token do Firebase Cloud Messaging usado no rastreamento de desinstalações. Prefira SingularSDK.RegisterTokenForUninstall(), que o define antes da inicialização e chama o SDK nativo depois.
Assinatura
public static string fcmDeviceToken
Padrão: null
Plataforma: Somente Android
Definido em: Somente código — não aparece no Inspector
Exemplo de uso
SingularSDK.RegisterTokenForUninstall(token);
Initialized
Propriedade SingularSDK.Initialized
Somente leitura. Informa se o SDK terminou de inicializar. A maioria dos métodos do SDK não faz nada até que isso seja true.
Assinatura
public static bool { get; } Initialized
Padrão: false
Plataforma: iOS e Android
Definido em: Somente código — não aparece no Inspector
Exemplo de uso
if (SingularSDK.Initialized) {
SingularSDK.Event("level_complete");
}
InitializeOnAwake
Propriedade SingularSDK.InitializeOnAwake
Inicializa o SDK automaticamente no Awake() do GameObject. Desmarque quando precisar definir a configuração no código primeiro e então chame SingularSDK.InitializeSingularSDK() você mesmo.
Assinatura
public bool InitializeOnAwake
Padrão: true
Plataforma: iOS e Android
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.InitializeOnAwake = false;
limitAdvertisingIdentifiers
Propriedade SingularSDK.limitAdvertisingIdentifiers
Impede que o SDK colete identificadores de publicidade do dispositivo. Use em apps de público misto que não podem coletar um ID de publicidade de determinados usuários.
Assinatura
public bool limitAdvertisingIdentifiers
Padrão: false
Plataforma: iOS e Android
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.limitAdvertisingIdentifiers = true;
logLevel
Propriedade SingularSDK.logLevel
Define o nível de detalhe da saída de log do SDK. Os valores são as constantes do Android android.util.Log, em que um número menor é mais detalhado: 2 Verbose, 3 Debug, 4 Info, 5 Warn, 6 Error, 7 Assert. O padrão é 3 (Debug). Qualquer valor fora de 2–7 é rejeitado e o SDK volta para Debug, então 0 e 1 não reduzem os logs — desmarque Enable Logging para desativá-los.
Assinatura
public int logLevel
Padrão: 3 (Debug)
Plataforma: iOS e Android
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.logLevel = 3; // Debug
manualSKANConversionManagement
Propriedade SingularSDK.manualSKANConversionManagement
Transfere ao seu app o controle dos valores de conversão do SKAdNetwork. Quando habilitado, o Singular deixa de gerenciá-los e você precisa chamar SingularSDK.SkanUpdateConversionValue().
Enquanto isso estiver desativado, as atualizações manuais são ignoradas. Se os valores de conversão não estiverem chegando, verifique primeiro esta opção.
Assinatura
public bool manualSKANConversionManagement
Padrão: false
Plataforma: Somente iOS
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.manualSKANConversionManagement = true;
openUri
Propriedade SingularSDK.openUri
O URI com que o app foi aberto, entregue ao SDK na inicialização para que ele possa atribuir a abertura. Defina antes da inicialização quando sua activity receber um deep link antes de o SDK iniciar.
Assinatura
public static string openUri
Padrão: null
Plataforma: Somente Android
Definido em: Somente código — não aparece no Inspector
Exemplo de uso
SingularSDK.openUri = "myapp://product/123";
pushNotificationsLinkPaths
Propriedade SingularSDK.pushNotificationsLinkPaths
Onde encontrar o Singular Link dentro dos payloads das suas notificações push. Cada entrada é um caminho pelo payload, com os níveis separados por /. Adicione uma entrada para cada formato de payload que o app recebe.
Assinatura
public string[] pushNotificationsLinkPaths
Padrão: null
Plataforma: iOS e Android
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.pushNotificationsLinkPaths = new string[] {
"sng_link",
"notification/deep_link",
"rootObj/nestedObj/singularLink"
};
restartSessionOnReturningToForeground
Propriedade SingularSDK.restartSessionOnReturningToForeground
Inicia uma nova sessão do Singular sempre que o app volta ao primeiro plano. Use junto com endSessionOnGoingToBackground; a maioria dos apps deve deixar ambos desativados.
Assinatura
public static bool restartSessionOnReturningToForeground
Padrão: false
Plataforma: iOS e Android
Definido em: Somente código — não aparece no Inspector
Exemplo de uso
SingularSDK.restartSessionOnReturningToForeground = true;
sessionTimeoutSec
Propriedade SingularSDK.sessionTimeoutSec
Por quanto tempo o app pode ficar em segundo plano antes que a próxima abertura conte como uma nova sessão. Deixe em 0 para usar o padrão de 60 segundos.
Assinatura
public long sessionTimeoutSec
Padrão: 0 (uses the 60 second default)
Plataforma: iOS e Android
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.sessionTimeoutSec = 120;
shortlinkResolveTimeout
Propriedade SingularSDK.shortlinkResolveTimeout
Quanto tempo o SDK aguarda a resolução de um short link antes de desistir. Deixe em 0 para usar o padrão de 10 segundos.
Assinatura
public long shortlinkResolveTimeout
Padrão: 0 (uses the 10 second default)
Plataforma: iOS e Android
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.shortlinkResolveTimeout = 15;
SingularAPIKey
Propriedade SingularSDK.SingularAPIKey
Sua SDK Key. Encontre-a no Singular em Developer Tools > SDK Integration > SDK Keys.
Não use aqui a Reporting API Key do Singular. Apenas a SDK Key da página SDK Integration funciona; qualquer outra impede silenciosamente que os dados cheguem ao Singular.
Assinatura
public string SingularAPIKey
Padrão: Obrigatório
Plataforma: iOS e Android
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.SingularAPIKey = "YOUR_SDK_KEY";
SingularAPISecret
Propriedade SingularSDK.SingularAPISecret
Seu SDK Secret, emitido junto com a SDK Key na mesma página.
Assinatura
public string SingularAPISecret
Padrão: Obrigatório
Plataforma: iOS e Android
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.SingularAPISecret = "YOUR_SDK_SECRET";
SKANEnabled
Propriedade SingularSDK.SKANEnabled
Registra o app para atribuição via SKAdNetwork e permite que o Singular gerencie os valores de conversão. Deixe ativado, a menos que outro SDK do seu app cuide do SKAdNetwork.
Assinatura
public bool SKANEnabled
Padrão: true
Plataforma: Somente iOS
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.SKANEnabled = false;
waitForTrackingAuthorizationWithTimeoutInterval
Propriedade SingularSDK.waitForTrackingAuthorizationWithTimeoutInterval
Quantos segundos o SDK aguarda o usuário responder ao aviso do App Tracking Transparency antes de enviar a primeira sessão. Aguardar permite que a primeira sessão leve o IDFA quando o consentimento é concedido.
O IDFA só pode ser anexado à primeira sessão. Se a sessão for enviada antes de o usuário responder ao aviso, aquela instalação fica permanentemente sem IDFA. O Singular recomenda 300 segundos quando o app exibe o aviso de ATT.
Assinatura
public int waitForTrackingAuthorizationWithTimeoutInterval
Padrão: 0 (do not wait)
Plataforma: Somente iOS
Definido em: Inspector do Unity ou código
Exemplo de uso
singular.waitForTrackingAuthorizationWithTimeoutInterval = 300;