Integração básica

Novo: Guia em vídeo

Assista a este vídeo para obter uma visão detalhada do processo de integração. Recomendamos que utilize tanto o vídeo como o guia escrito abaixo.

Antes de começar: Pré-requisitos do SDK

Siga as etapas em Integração de um SDK Singular:Planejamento e pré-requisitos.

Essas etapas são pré-requisitos para qualquer integração do SDK Singular.


Instalar o SDK

Adicionando o SDK usando o Gradle

Observação: A partir do Gradle 7, o Android sugere o uso de declarações de repositório centralizadas em settings.gradle em vez de declaraçõesbuild.gradle no nível do projeto ou do módulo .

  1. Adicione o repositório Singular SDK ao arquivo settings.gradle:

    setting.gradle
    dependencyResolutionManagement {
         repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
         repositories {
              google()
              mavenCentral()
              maven{ url = uri("https://maven.singular.net/") }
         }
    }

    OU em versões mais antigas do Gradle, adicione o repositório Singular SDK ao arquivo project/build.gradle:

    project/build.gradle
    repositories {
         mavenCentral()
         maven { url 'https://maven.singular.net/' }
    }
  2. Adicione a biblioteca Singular à lista de dependências em app/build.gradle:

    app/build.gradle
    dependencies {
        ...
        implementation 'com.google.android.gms:play-services:6.5.87'
        implementation 'com.singular.sdk:singular_sdk:12.7.1'
        ...
    }

    Além disso, adicione o seguinte para dar suporte ao referenciador de instalação da Samsung Galaxy Store se seu aplicativo for distribuído por meio da Samsung Galaxy Store:

    app/build.gradle
    dependencies {
         ...
         implementation 'store.galaxy.samsung.installreferrer:samsung_galaxystore_install_referrer:4.0.0'
         ...
    }
  3. Se tiver desativado as dependências transitivas para o SDK Singular, adicione o seguinte à sua app/build.gradle:

    app/build.gradle
    dependencies {
        ...
        implementation 'com.android.installreferrer:installreferrer:2.2'
        implementation 'com.google.android.gms:play-services-appset:16.0.0'
        ...
    }
  4. Se o seu aplicativo não implementar a API 17.0.0 ou superior do Google Play Services , adicione a seguinte dependência ao arquivo app/build.gradle:

    app/build.gradle
    dependencies {
         ...
         implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0+'
         ...
    }

Nota: Os utilizadores do Gradle 1.x-2.x devem usar "compile" em vez de "implementation" para adicionar dependências.

Adicionando o SDK sem o Gradle

Baixando o SDK manualmente
  1. Faça o download do SDK a partir do link no topo da página.
  2. Descompacte o pacote SDK e adicione Singular.aar no diretório libs do seu projeto Android. Se ele não existir, crie um diretório chamado libs na pasta do seu projeto (geralmente em <project>/app/libs).
Adicionando o SDK usando o Maven

Adicione nosso repositório maven ao pom.xml do seu projeto:

pom.xml
<project ...>
<repositories>
    <repository>
      <id>singular.net</id>
      <url>http://maven.singular.net/</url>
    </repository>
 </repositories>
</project>

Adicionar a dependência:

<dependency>
    <groupId>com.singular.sdk</groupId>
    <artifactId>singular_sdk</artifactId>
    <version>12.7.1</version>
</dependency>
Adicionando o SDK usando o Eclipse

Você pode usar o plugin AAR do Eclipse: gradle-eclipse-aar-plugin

Se você não quiser usar o plugin, siga estes passos:

  1. Descompacte singular_sdk-12.7.1.aar.
  2. Renomeie classes.jar para singular_sdk-12.7.1.jar (este é o jar principal do SDK).
  3. Adicione a biblioteca 'com.android.installreferrer:installreferrer:2.2' ao seu projeto da forma que preferir.
  4. Copie a permissão BIND_GET_INSTALL_REFERRER_SERVICE do AndroidManifest.xml contido no AAR para o seu AndroidManifest.xml
  5. copie as permissões CHECK_LICENSE do AndroidManifest.xml contido no AAR para o seu AndroidManifest.xml

Requisitos se estiver a utilizar o Proguard

Adicione as seguintes linhas de código ao seu ficheiro proguard.config:

proguard.config
-keep class com.singular.sdk.** { *; }
-keep public class com.android.installreferrer.** { *; }
# Uncomment this line in case your are calling the 'revenue' function using the Google billing library
#-keep public class com.android.billingclient.** { *; }

Adicionando permissões necessárias

Adicione essas permissões sob a tag <manifest> no seu arquivo AndroidManifest.xml:

AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="BIND_GET_INSTALL_REFERRER_SERVICE" />
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
Exclua a permissãocom.google.android.gms.permission.AD_ID se estiver a integrar o Kids SDK.

Para suportar o referenciador de instalação da Samsung Galaxy Store, adicione o seguinte:

AndroidManifest.xml
<queries>
   <package android:name="com.sec.android.app.samsungapps" />
</queries>

Integrar o SDK

Nota: Lembre-se de manter a conformidade com as várias leis de privacidade promulgadas nas regiões onde está a fazer negócios, incluindo GDPR, CCPA e COPPA, ao implementar os SDKs Singular. Para obter mais informações, consulte Práticas de aceitação e exclusão de SDK.

Importando a biblioteca Singular

Para importar a biblioteca Singular, adicione a seguinte importação ao seu arquivo MainActivity:

Java (MainActivity.java) Kotlin (MainActivity.kt)
import com.singular.sdk.*;

Inicializando o SDK Singular

Inicializando o SDK Singular com uma função privada

Para habilitar o rastreamento e a atribuição de sessões, o SDK Singular deve ser inicializado sempre que seu aplicativo for iniciado. Recomendamos criar um método privado, initSingularSDK(), e chamá-lo a partir do método onCreate() de MainActivity.

Siga estas etapas:

  1. Adicione a função: Coloque o seguinte método dentro da sua classe MainActivity (ou qualquer ponto de entrada Activity).
  2. Insira as credenciais: Substitua "SDK KEY" e "SDK SECRET" pela sua chave e segredo do Singular SDK do seu painel do Singular.
  3. Atualizar o objeto SingularConfig: Antes de inicializar o SDK, é necessário criar um objeto SingularConfig. Opcionalmente, quaisquer preferências do SDK que você queira definir devem ser definidas aqui. Use a Referência do Método SingularConfig abaixo para ver as opções:

    Referência do método SingularConfig: Veja todas as opções ".with" disponíveis

    A tabela abaixo lista todos os métodos ".with" disponíveis para o objeto SingularConfig para adicionar opções e funcionalidades à sua aplicação.

    Encontrará detalhes sobre cada funcionalidade nas secções abaixo ou em Opções avançadas.

    Método

    Descrição do método

    .withFacebookAppId(String facebookAppID)

    Configura a ID do aplicativo do Facebook. Necessário para atribuição de "Meta Install Referrer".

    Consulte"Onde posso encontrar a ID de aplicativo do Facebook de um aplicativo?"

    .withCustomUserId(String customId)

    Envia a ID do usuário para o Singular.

    .withSingularLink(getIntent(), SingularLinkHandler handler)

    Habilita o deep linking com Singular Links.

    .withDDLTimeoutInSec (long timeout)

    Define o período de tempo que o Singular procura por um deep link diferido quando o aplicativo é aberto pela primeira vez.

    .withOpenURI (URI openURI)

    Busca o URI da intenção (para processar deep links se o aplicativo for aberto através de um link que não seja originário do Singular).

    .withGlobalProperty(String key, String value, boolean overrideExisting)

    Define uma propriedade global para um determinado valor. A chave e o valor serão enviados para o Singular com qualquer evento/sessão enviado pela aplicação.

    .withSessionTimeoutInSec (long timeout)

    Define o tempo limite da sessão.

    .withFCMDeviceToken(String token)

    Define o token FCM a ser enviado na primeira sessão.

    .withLoggingEnabled ()

    Ativar o registo.

    .withLogLevel (int level)

    Configura o nível de registo (a predefinição é Log.ERROR).

  4. Chamar a função: Invoque initSingularSDK() em onCreate() após a configuração da interface do usuário, mas antes de registrar eventos.

Aqui está a implementação básica:

Java - MainActivity Kotlin - MainActivity
private void initSingularSDK() {
    // Configure Singular with SDK key and secret

    SingularConfig config = new SingularConfig("SDK KEY", "SDK SECRET");

    try {
        Singular.init(getApplicationContext(), config);
        Log.d("Singular", "SDK initialized successfully");
    } catch (Exception e) {
        Log.e("Singular", "SDK initialization failed: " + e.getMessage());
    }
}

Exemplo de utilização em MainActivity

Java - MainActivity Kotlin - MainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Initialize Singular SDK

    initSingularSDK();

    // Proceed with your app setup (e.g., UI initialization)

}

Detalhes da chave

  • Colocação: Adicione este método em MainActivity, não na classe Application, para garantir o rastreamento adequado da sessão.
  • Tratamento de erros: O bloco try-catch regista erros de inicialização (por exemplo, credenciais inválidas) sem bloquear a sua aplicação.
  • Deep Linking (opcional): Para lidar com links profundos (por exemplo, URLs que iniciam seu aplicativo), consulte nosso artigo Suporte a links profundos para obter a configuração estendida.
  • Suporte à atribuição de referenciador da instalação META: Adicione a opção de configuração config.withFacebookAppId("FacebookAppID") para ativar a atribuição "Meta Install Referrer".

Dica profissional: Se o seu aplicativo suportar vários pontos de entrada (por exemplo, links profundos), certifique-se de que initSingularSDK() seja chamado em cada atividaderelevante onCreate() para garantir um comportamento consistente.