Integração do SDK do Braze
Saiba como integrar o Braze SDK em seu app para dispositivos móveis. Cada SDK é hospedado em seu próprio repositório público do GitHub, que inclui apps de amostra totalmente compiláveis que você pode usar para testar os recursos do Braze ou implementar junto com seus próprios aplicativos. Para saber mais, consulte Referências, repositórios e aplicativos de amostra. Para saber mais informações gerais sobre o SDK, consulte Getting started: Visão geral da integração.
Integração do SDK do Android
Etapa 1: Atualize seu build.gradle
Em seu site build.gradle, adicione mavenCentral() à sua lista de repositórios.
1
2
3
repositories {
mavenCentral()
}
Em seguida, adicione o Braze às suas dependências.
Se não planeja usar os componentes da interface do usuário do Braze, adicione o seguinte código ao seu site build.gradle. Substitua SDK_VERSION pela versão atual de seu Android Braze SDK. Para obter a lista completa de versões, consulte Changelogs.
1
2
3
4
dependencies {
implementation 'com.braze:android-sdk-base:SDK_VERSION' // (Required) Adds dependencies for the base Braze SDK.
implementation 'com.braze:android-sdk-location:SDK_VERSION' // (Optional) Adds dependencies for Braze location services.
}
Se planeja usar os componentes da interface do usuário do Braze posteriormente, adicione o seguinte código ao seu site build.gradle. Substitua SDK_VERSION pela versão atual de seu Android Braze SDK. Para obter a lista completa de versões, consulte Changelogs.
1
2
3
4
dependencies {
implementation 'com.braze:android-sdk-ui:SDK_VERSION' // (Required) Adds dependencies for the Braze SDK and Braze UI components.
implementation 'com.braze:android-sdk-location:SDK_VERSION' // (Optional) Adds dependencies for Braze location services.
}
Etapa 2: Configure seu braze.xml
A partir de dezembro de 2019, os pontos de extremidade personalizados não serão mais fornecidos. Se você tiver um ponto de extremidade personalizado pré-existente, poderá continuar a usá-lo. Para obter mais informações, consulte nossa lista de endpoints disponíveis.
Crie um arquivo braze.xml na pasta res/values de seu projeto. Se estiver em um cluster de dados específico ou tiver um endpoint personalizado pré-existente, também será necessário especificar o endpoint no arquivo braze.xml.
O conteúdo desse arquivo deve se parecer com o seguinte trecho de código. Certifique-se de substituir YOUR_APP_IDENTIFIER_API_KEY pelo identificador encontrado na página Manage Settings (Gerenciar configurações) do dashboard do Braze. Faça o registro em dashboard.braze.com para encontrar seu endereço de cluster.
1
2
3
4
5
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string translatable="false" name="com_braze_api_key">YOUR_APP_IDENTIFIER_API_KEY</string>
<string translatable="false" name="com_braze_custom_endpoint">YOUR_CUSTOM_ENDPOINT_OR_CLUSTER</string>
</resources>
Etapa 3: Adicionar permissões a AndroidManifest.xml
Em seguida, adicione as seguintes permissões ao seu site AndroidManifest.xml:
1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Com o lançamento do Android M, o Android mudou de um modelo de permissões de tempo de instalação para um modelo de permissões de tempo de execução. No entanto, essas duas permissões são permissões normais e são concedidas automaticamente se estiverem listadas no manifesto do app. Para saber mais, consulte a documentação de permissões do Android.
Etapa 4: Ativar a inicialização com postergação (opcional)
Para usar a inicialização por postergação, é necessária a versão mínima do Braze SDK:
Enquanto a capacitação estiver ativada, todas as conexões de rede serão canceladas, impedindo que o SDK envie dados para os servidores Braze.
Etapa 4.1: Atualize seu braze.xml
A inicialização com postergação está desativada por padrão. Para ativar, use uma das seguintes opções:
No arquivo braze.xml de seu projeto, defina com_braze_enable_delayed_initialization como true.
1
<bool name="com_braze_enable_delayed_initialization">true</bool>
Para ativar a capacitação com postergação no tempo de execução, use o seguinte método.
1
Braze.enableDelayedInitialization(context);
1
Braze.enableDelayedInitialization(context)
Etapa 4.2: Configurar a análise de dados push (opcional)
Quando a inicialização com postergação é ativada, as análises de dados push são enfileiradas por padrão. No entanto, você pode optar por enfileirar ou descartar explicitamente a análise de dados push.
Enfileirar explicitamente
Para enfileirar explicitamente a análise de dados push, escolha uma das seguintes opções:
Em seu arquivo braze.xml, defina com_braze_delayed_initialization_analytics_behavior como QUEUE:
1
<string name="com_braze_delayed_initialization_analytics_behavior">QUEUE</string>
Adicione QUEUE ao seu Braze.enableDelayedInitialization() método:
1
Braze.enableDelayedInitialization(context, DelayedInitializationAnalyticsBehavior.QUEUE);
1
Braze.enableDelayedInitialization(context, DelayedInitializationAnalyticsBehavior.QUEUE)
Queda
Para descartar a análise de dados por push, escolha uma das seguintes opções:
Em seu arquivo braze.xml, defina com_braze_delayed_initialization_analytics_behavior como DROP:
1
<string name="com_braze_delayed_initialization_analytics_behavior">DROP</string>
Adicione DROP ao método Braze.enableDelayedInitialization() method:
1
Braze.enableDelayedInitialization(context, DelayedInitializationAnalyticsBehavior.DROP);
1
Braze.enableDelayedInitialization(context, DelayedInitializationAnalyticsBehavior.DROP)
Etapa 4.3: Inicialização manual do SDK
Após o período de postergação escolhido, use o método Braze.disableDelayedInitialization() para inicializar manualmente o SDK.
1
Braze.disableDelayedInitialization(context);
1
Braze.disableDelayedInitialization(context)
Etapa 5: Ativar o rastreamento da sessão do usuário
Ao ativar o rastreamento da sessão do usuário, as chamadas para openSession(), closeSession(),ensureSubscribedToInAppMessageEvents()e InAppMessageManager podem ser tratadas automaticamente.
Para registrar retornos de chamada do ciclo de vida da atividade, adicione o seguinte código ao método onCreate() da sua classe Application.
1
2
3
4
5
6
7
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(new BrazeActivityLifecycleCallbackListener());
}
}
1
2
3
4
5
6
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
registerActivityLifecycleCallbacks(BrazeActivityLifecycleCallbackListener())
}
}
Para obter a lista de parâmetros disponíveis, consulte BrazeActivityLifecycleCallbackListener.
Teste de rastreamento de sessão
Você também pode usar o SDK Debugger para diagnosticar problemas do SDK.
Se tiver problemas durante o teste, ative a capacitação de registro detalhado e use o logcat para detectar chamadas ausentes de openSession e closeSession em suas atividades.
- No Braze, acesse Overview (Visão geral), selecione seu app e, no menu suspenso Display Data For (Exibir dados para ), escolha Today (Hoje).

- Abra seu app e, em seguida, atualize o dashboard do Braze. Verifique se suas métricas aumentaram em 1.
- Navegue pelo seu app e verifique se apenas uma sessão foi registrada no Braze.
- Coloque o app em segundo plano por pelo menos 10 segundos e, em seguida, coloque-o em primeiro plano. Verifique se uma nova sessão foi registrada.
Configurações opcionais
Configuração do tempo de execução
Para definir suas opções do Braze no código em vez de no arquivo braze.xml, use a configuração de tempo de execução. Se houver um valor em ambos os lugares, o valor de tempo de execução será usado em seu lugar. Depois que todas as configurações necessárias forem fornecidas em tempo de execução, você poderá excluir o arquivo braze.xml.
No exemplo a seguir, um objeto builder é criado e, em seguida, passado para Braze.configure(). Note que apenas algumas das opções de tempo de execução disponíveis são mostradas - consulte nosso KDoc para obter a lista completa.
1
2
3
4
5
6
7
8
BrazeConfig brazeConfig = new BrazeConfig.Builder()
.setApiKey("api-key-here")
.setCustomEndpoint("YOUR_CUSTOM_ENDPOINT_OR_CLUSTER")
.setSessionTimeout(60)
.setHandlePushDeepLinksAutomatically(true)
.setGreatNetworkDataFlushInterval(10)
.build();
Braze.configure(this, brazeConfig);
1
2
3
4
5
6
7
8
val brazeConfig = BrazeConfig.Builder()
.setApiKey("api-key-here")
.setCustomEndpoint("YOUR_CUSTOM_ENDPOINT_OR_CLUSTER")
.setSessionTimeout(60)
.setHandlePushDeepLinksAutomatically(true)
.setGreatNetworkDataFlushInterval(10)
.build()
Braze.configure(this, brazeConfig)
Está procurando outro exemplo? Dê uma olhada em nosso app de amostra Hello Braze.
ID de publicidade do Google
O Google Advertising ID (GAID) é um ID opcional específico do usuário, anônimo, exclusivo e redefinível para publicidade, fornecido pelos serviços do Google Play. O GAID permite que os usuários redefinam seu identificador, aceitem anúncios baseados em interesses nos aplicativos do Google Play e fornece aos desenvolvedores um sistema simples e padrão para continuar a monetizar seus apps.
O ID de publicidade do Google não é coletado automaticamente pelo SDK da Braze e deve ser definido manualmente por meio do método Braze.setGoogleAdvertisingId().
1
2
3
4
5
6
7
8
9
10
11
new Thread(new Runnable() {
@Override
public void run() {
try {
AdvertisingIdClient.Info idInfo = AdvertisingIdClient.getAdvertisingIdInfo(getApplicationContext());
Braze.getInstance(getApplicationContext()).setGoogleAdvertisingId(idInfo.getId(), idInfo.isLimitAdTrackingEnabled());
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
suspend fun fetchAndSetAdvertisingId(
context: Context,
scope: CoroutineScope = GlobalScope
) {
scope.launch(Dispatchers.IO) {
try {
val idInfo = AdvertisingIdClient.getAdvertisingIdInfo(context)
Braze.getInstance(context).setGoogleAdvertisingId(
idInfo.id,
idInfo.isLimitAdTrackingEnabled
)
} catch (e: Exception) {
e.printStackTrace()
}
}
}
O Google exige que o ID de publicidade seja coletado em um thread que não seja da UI.
monitoramento de localização
Para ativar a coleta de locais do Braze, defina com_braze_enable_location_collection como true em seu arquivo braze.xml:
1
<bool name="com_braze_enable_location_collection">true</bool>
A partir da versão 3.6.0 do Braze Android SDK, a coleta de locais da Braze é desativada por padrão.
Registro
Por padrão, o nível de registro do Braze Android SDK é definido como INFO. Você pode suprimir esses registros ou definir um nível de registro diferente, como VERBOSE, DEBUG ou WARN.
Capacitação de registros
Para ajudar a solucionar problemas no seu app, ou reduzir o tempo de resposta com o suporte da Braze, você vai querer ativar registros detalhados para o SDK. Quando você enviar registros detalhados para o suporte da Braze, certifique-se de que eles comecem assim que você lançar seu aplicativo e terminem muito depois que seu problema ocorrer.
Lembre-se de que registro detalhados são destinados apenas para o seu ambiente de desenvolvimento, então é interessante desativá-los antes de lançar seu app.
Ativar registros detalhados antes de qualquer outra chamada em Application.onCreate() para garantir que seus registros sejam o mais completos possível.
Para ativar logs diretamente no seu app, adicione o seguinte ao método onCreate() do seu aplicativo antes de qualquer outro método.
1
BrazeLogger.setLogLevel(Log.MIN_LOG_LEVEL);
1
BrazeLogger.logLevel = Log.MIN_LOG_LEVEL
Substitua MIN_LOG_LEVEL pelo Constante do nível de registro que você gostaria de definir como seu nível de registro mínimo. Quaisquer registro em um nível >= para o seu conjunto MIN_LOG_LEVEL serão encaminhados para o método padrão do Android Log. Qualquer registro < que você definir como MIN_LOG_LEVEL será descartado.
| Constante | Valor | Descrição |
|---|---|---|
VERBOSE |
2 | Registra as mensagens mais detalhadas para depuração e desenvolvimento. |
DEBUG |
3 | Registra mensagens descritivas para depuração e desenvolvimento. |
INFO |
4 | Registra mensagens informativas para destaques gerais. |
WARN |
5 | Registra mensagens de aviso para identificar situações potencialmente prejudiciais. |
ERROR |
6 | Registra mensagens de erro para indicar falha no aplicativo ou problemas sérios. |
ASSERT |
7 | Registra mensagens de asserção quando as condições são falsas durante o desenvolvimento. |
Por exemplo, o código a seguir encaminhará os níveis de registro 2, 3, 4, 5, 6 e 7 para o método Log.
1
BrazeLogger.setLogLevel(Log.VERBOSE);
1
BrazeLogger.logLevel = Log.VERBOSE
Para ativar registros no braze.xml, adicione o seguinte ao seu arquivo:
1
<integer name="com_braze_logger_initial_log_level">MIN_LOG_LEVEL</integer>
Substitua MIN_LOG_LEVEL pelo Valor do nível de registro que você gostaria de definir como seu nível de registro mínimo. Quaisquer registro em um nível >= para o seu conjunto MIN_LOG_LEVEL serão encaminhados para o método padrão do Android Log. Qualquer registro < que você definir como MIN_LOG_LEVEL será descartado.
| Constante | Valor | Descrição |
|---|---|---|
VERBOSE |
2 | Registra as mensagens mais detalhadas para depuração e desenvolvimento. |
DEBUG |
3 | Registra mensagens descritivas para depuração e desenvolvimento. |
INFO |
4 | Registra mensagens informativas para destaques gerais. |
WARN |
5 | Registra mensagens de aviso para identificar situações potencialmente prejudiciais. |
ERROR |
6 | Registra mensagens de erro para indicar falha no aplicativo ou problemas sérios. |
ASSERT |
7 | Registra mensagens de asserção quando as condições são falsas durante o desenvolvimento. |
Por exemplo, o código a seguir encaminhará os níveis de registro 2, 3, 4, 5, 6 e 7 para o método Log.
1
<integer name="com_braze_logger_initial_log_level">2</integer>
Verificação de registros detalhados
Para verificar se seus registros estão definidos para VERBOSE, verifique se V/Braze ocorre em algum lugar nos seus registros. Se isso acontecer, os registros detalhados foram ativados com sucesso. Por exemplo:
1
2077-11-19 16:22:49.591 ? V/Braze v9.0.01 .bo.app.d3: Request started
Supressão de registros
Para suprimir todos os registros do Braze Android SDK, defina o nível de registro como BrazeLogger.SUPPRESS no método onCreate() do seu aplicativo antes de qualquer outro método.
1
BrazeLogger.setLogLevel(BrazeLogger.SUPPRESS);
1
BrazeLogger.setLogLevel(BrazeLogger.SUPPRESS)
Múltiplas chaves de API
O caso de uso mais comum para várias chaves de API é separar chaves de API para variantes de build de depuração e release.
Para alternar facilmente entre várias chaves de API em suas compilações, recomendamos criar um arquivo braze.xml separado para cada variante de compilação relevante. Uma variante de compilação é uma combinação de tipo de compilação e sabor do produto. Por padrão, os novos projetos Android são configurados com os tipos de compilaçãodebug e release e nenhum tipo de produto.
Para cada variante de compilação relevante, crie um novo braze.xml no diretório src/<build variant name>/res/values/. Quando a variante de compilação for compilada, ela usará o nova chave de API.
1
2
3
4
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="com_braze_api_key">REPLACE_WITH_YOUR_BUILD_VARIANT_API_KEY</string>
</resources>
Para saber como configurar a chave de API em seu código, consulte Configuração do tempo de execução.
Mensagem exclusiva no app TalkBack
Em conformidade com as diretrizes de acessibilidade do Android, o SDK do Braze para Android oferece o Android Talkback por padrão. Para garantir que apenas o conteúdo das mensagens no app seja lido em voz alta - sem incluir outros elementos da tela, como a barra de título do app ou a navegação -, é possível ativar o modo exclusivo para o TalkBack.
Para ativar o modo exclusivo para mensagens no app:
1
<bool name="com_braze_device_in_app_message_accessibility_exclusive_mode_enabled">true</bool>
1
2
3
val brazeConfigBuilder = BrazeConfig.Builder()
brazeConfigBuilder.setIsInAppMessageAccessibilityExclusiveModeEnabled(true)
Braze.configure(this, brazeConfigBuilder.build())
1
2
3
BrazeConfig.Builder brazeConfigBuilder = new BrazeConfig.Builder()
brazeConfigBuilder.setIsInAppMessageAccessibilityExclusiveModeEnabled(true);
Braze.configure(this, brazeConfigBuilder.build());
R8 e ProGuard
A configuração de redução de código é incluída automaticamente com sua integração Braze.
Os aplicativos do cliente que ofuscam o código da Braze devem armazenar arquivos de mapeamento de versão para que a Braze interprete os rastreamentos de pilha. Se você quiser manter todo o código da Braze, adicione o seguinte ao seu arquivo ProGuard:
1
2
-keep class bo.app.** { *; }
-keep class com.braze.** { *; }
Integrando o SDK Swift
Você pode integrar e personalizar o SDK Swift da Braze usando o Swift Package Manager (SPM), CocoaPods ou métodos de integração manual. Para mais informações sobre os vários símbolos do SDK, consulte documentação de referência do Braze Swift.
Pré-requisitos
Antes de começar, verifique se seu ambiente é suportado pela última versão do SDK Swift da Braze.
Etapa 1: Instale o SDK Swift da Braze
Recomendamos usar o Swift Package Manager (SwiftPM) ou CocoaPods para instalar o SDK Swift da Braze. Alternativamente, você pode instalar o SDK manualmente.
Etapa 1.1: Importar versão do SDK
Abra seu projeto e navegue até as configurações do seu projeto. Selecione a guia SWIFT Packages e clique no botão adicionar abaixo da lista de pacotes.

A partir da versão 7.4.0, o SDK Braze SWIFT tem canais de distribuição adicionais como XCFrameworks estáticos e XCFrameworks dinâmicos. Se você quiser usar qualquer um desses formatos, siga as instruções de instalação do respectivo repositório.
Digite o URL do nosso repositório iOS SWIFT SDK https://github.com/braze-inc/braze-swift-sdk no campo de texto. Embaixo da seção Regra de Dependência, selecione a versão do SDK. Finalmente, clique em Adicionar Pacote.

Etapa 1.2: Selecione seus pacotes
O SDK Braze SWIFT separa os recursos em bibliotecas independentes para fornecer aos desenvolvedores mais controle sobre quais recursos importar para seus projetos.
| Pacote | Informações |
|---|---|
BrazeKit |
Biblioteca principal do SDK que fornece suporte para análise de dados e notificações por push. |
BrazeLocation |
Biblioteca de local fornecendo suporte para análise de dados de local e monitoramento de geofence. |
BrazeUI |
Biblioteca de interface do usuário fornecida pela Braze para mensagens no aplicativo, Cartões de Conteúdo e Banners. Importe esta biblioteca se você pretende usar os componentes de UI padrão. |
Sobre bibliotecas de extensão
Serviço de Notificação Braze e História de Push Braze são módulos de extensão que fornecem funcionalidade adicional e não devem ser adicionados diretamente ao alvo principal do seu aplicativo. Em vez disso, siga os guias vinculados para integrá-los separadamente em suas respectivas extensões de destino.
| Pacote | Informações |
|---|---|
BrazeNotificationService |
Biblioteca de extensão de serviço de notificação que fornece suporte para notificações por push avançadas. |
BrazePushStory |
Biblioteca de extensão de conteúdo de notificação que fornece suporte para push Stories. |
Selecione o pacote que melhor atenda às suas necessidades e clique Adicionar Pacote. Certifique-se de selecionar BrazeKit no mínimo.

Etapa 1.1: Instalar o CocoaPods
Para um guia completo, consulte o Guia de Introdução do CocoaPods. Caso contrário, você pode executar o seguinte comando para começar rapidamente:
1
$ sudo gem install cocoapods
Se você ficar preso, consulte o Guia de Solução de Problemas do CocoaPods.
Etapa 1.2: Construindo o arquivo de pod
Em seguida, crie um arquivo no diretório do seu projeto Xcode chamado Podfile.
A partir da versão 7.4.0, o SDK Braze SWIFT tem canais de distribuição adicionais como XCFrameworks estáticos e XCFrameworks dinâmicos. Se você quiser usar qualquer um desses formatos, siga as instruções de instalação do respectivo repositório.
Adicione a seguinte linha ao seu Podfile:
1
2
3
target 'YourAppTarget' do
pod 'BrazeKit'
end
BrazeKit contém a biblioteca principal do SDK que oferece suporte a análises de dados e notificações por push.
Sugerimos que você faça uma versão da Braze para que as atualizações do pod capturem automaticamente qualquer coisa menor que uma atualização de versão secundária. Fica assim: pod 'BrazeKit' ~> Major.Minor.Build. Se quiser integrar automaticamente a versão mais recente do SDK da Braze, mesmo com grandes alterações, você poderá usar pod 'BrazeKit' em seu Podfile.
Sobre bibliotecas adicionais
O SDK Braze SWIFT separa os recursos em bibliotecas independentes para fornecer aos desenvolvedores mais controle sobre quais recursos importar para seus projetos. Além de BrazeKit, você pode adicionar as seguintes bibliotecas ao seu Podfile:
| Biblioteca | Informações |
|---|---|
pod 'BrazeLocation' |
Biblioteca de local fornecendo suporte para análise de dados de local e monitoramento de geofence. |
pod 'BrazeUI' |
Biblioteca de interface do usuário fornecida pela Braze para mensagens no aplicativo, Cartões de Conteúdo e Banners. Importe esta biblioteca se você pretende usar os componentes de UI padrão. |
Bibliotecas de extensão
BrazeNotificationService e BrazePushStory são módulos de extensão que fornecem funcionalidade adicional e não devem ser adicionados diretamente ao direcionamento de seu aplicativo principal. Em vez disso, será necessário criar direcionamentos de extensão separados para cada um desses módulos e importar os módulos Braze para seus direcionamentos correspondentes.
| Biblioteca | Informações |
|---|---|
pod 'BrazeNotificationService' |
Biblioteca de extensão de serviço de notificação que fornece suporte para notificações por push avançadas. |
pod 'BrazePushStory' |
Biblioteca de extensão de conteúdo de notificação que fornece suporte para push Stories. |
Etapa 1.3: Instale o SDK
Para instalar o Braze SDK CocoaPods, navegue até o diretório do seu projeto de app do Xcode em seu terminal e execute o seguinte comando:
1
pod install
Nesse ponto, você deve conseguir abrir o novo espaço de trabalho do projeto Xcode criado pelo CocoaPods. Use esse espaço de trabalho do Xcode em vez de seu projeto do Xcode.

Atualizando o SDK usando CocoaPods
Para atualizar um CocoaPod, basta executar o seguinte comando no diretório do projeto:
1
pod update
Etapa 1.1: Baixar o SDK da Braze
Acessar a página de lançamento do SDK da Braze no GitHub, então baixar braze-swift-sdk-prebuilt.zip.

Etapa 1.2: Escolha seus frameworks
O SDK Braze SWIFT contém uma variedade de XCFrameworks independentes, o que lhe dá a liberdade de integrar os recursos que você deseja—sem precisar integrá-los todos. Consulte a tabela a seguir para escolher seus XCFrameworks:
| Pacote | Necessário? | Descrição |
|---|---|---|
BrazeKit |
Sim | Biblioteca principal do SDK que fornece suporte para análise de dados e notificações por push. |
BrazeLocation |
Não | Biblioteca de local que fornece suporte para análise de dados de local e monitoramento de geofence. |
BrazeUI |
Não | Biblioteca de interface do usuário fornecida pela Braze para mensagens no aplicativo, Cartões de Conteúdo e Banners. Importe esta biblioteca se você pretende usar os componentes de UI padrão. |
BrazeNotificationService |
Não | Biblioteca de extensão de serviço de notificação que fornece suporte para notificações por push avançadas. Não adicione esta biblioteca diretamente ao seu alvo principal do aplicativo, em vez disso adicione a biblioteca BrazeNotificationService separadamente. |
BrazePushStory |
Não | Biblioteca de extensão de conteúdo de notificação que fornece suporte para Push Stories. Não adicione esta biblioteca diretamente ao seu alvo principal do aplicativo, em vez disso adicione a biblioteca BrazePushStory separadamente. |
BrazeKitCompat |
Não | Biblioteca de compatibilidade contendo todas as classes e métodos Appboy e ABK* que estavam disponíveis na versão Appboy-iOS-SDK 4.X.X. Para obter mais informações sobre o uso, consulte o cenário de migração mínima no guia de migração. |
BrazeUICompat |
Não | Biblioteca de compatibilidade contendo todas as ABK* classes e métodos que estavam disponíveis na biblioteca AppboyUI da versão Appboy-iOS-SDK 4.X.X. Para obter mais informações sobre o uso, consulte o cenário de migração mínima no guia de migração. |
SDWebImage |
Não | Dependência usada apenas por BrazeUICompat no cenário de migração mínima. |
Etapa 1.3: Prepare seus arquivos
Decida se você quer usar Estático ou Dinâmico XCFrameworks, então prepare seus arquivos:
- Crie um diretório temporário para seus XCFrameworks.
- No
braze-swift-sdk-prebuilt, abra o diretóriodynamice movaBrazeKit.xcframeworkpara o seu diretório. Seu diretório deve ser semelhante ao seguinte:1 2
temp_dir └── BrazeKit.xcframework
- Mova cada um dos seus XCFrameworks escolhidos para o seu diretório temporário. Seu diretório deve ser semelhante ao seguinte:
1 2 3 4 5
temp_dir ├── BrazeKit.xcframework ├── BrazeKitCompat.xcframework ├── BrazeLocation.xcframework └── SDWebImage.xcframework
Etapa 1.4: Integre seus frameworks
Em seguida, integre as Dinâmicas ou Estáticas XCFrameworks que você preparou anteriormente:
No seu projeto Xcode, selecione seu alvo de build, então Geral. Em Frameworks, Bibliotecas e Conteúdo Incorporado, arraste e solte os arquivos que você preparou anteriormente.

A partir do SDK Swift 12.0.0, você deve sempre selecionar Embed & Sign para os XCFrameworks da Braze, tanto para as variantes estáticas quanto dinâmicas. Isso garante que os recursos dos frameworks sejam devidamente incorporados no pacote do seu app.
Para ativar o suporte a GIF, adicione SDWebImage.xcframework, localizado em braze-swift-sdk-prebuilt/static ou braze-swift-sdk-prebuilt/dynamic.
Erros comuns para projetos Objective-C
Se o seu projeto Xcode contiver apenas arquivos Objective-C, você poderá receber erros de “símbolo ausente” ao tentar compilar seu projeto. Para corrigir esses erros, abra seu projeto e adicione um arquivo Swift vazio à sua árvore de arquivos. Isso forçará sua cadeia de ferramentas a incorporar SWIFT Runtime e vincular aos frameworks apropriados durante o período em questão.
1
FILE_NAME.swift
Substitua FILE_NAME por qualquer string sem espaços. Seu arquivo deve ser semelhante ao seguinte:
1
empty_swift_file.swift
Etapa 2: Configure a inicialização atrasada (opcional)
Você pode escolher atrasar quando o SDK Braze Swift é inicializado, o que é útil se seu app precisar carregar configurações ou esperar pelo consentimento do usuário antes de iniciar o SDK. A inicialização atrasada garante que as notificações por push do Braze sejam enfileiradas até que o SDK esteja pronto.
Para ativar isso, chame Braze.prepareForDelayedInitialization() o mais cedo possível—idealmente dentro ou antes do seu application(_:didFinishLaunchingWithOptions:).
Isso se aplica apenas às notificações por push do Braze. Outras notificações por push são tratadas normalmente pelos delegados do sistema.
1
2
3
4
5
6
7
8
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Prepare the SDK for delayed initialization
Braze.prepareForDelayedInitialization()
// ... Additional non-Braze setup code
return true
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@main
struct MyApp: App {
@UIApplicationDelegateAdaptor var appDelegate: AppDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
class AppDelegate: NSObject, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
// Prepare the SDK for delayed initialization
Braze.prepareForDelayedInitialization()
// ... Additional non-Braze setup code
return true
}
}
1
2
3
4
5
6
7
8
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Prepare the SDK for delayed initialization
[Braze prepareForDelayedInitialization];
// ... Additional non-Braze setup code
return YES;
}
Braze.prepareForDelayedInitialization(pushAutomation:) aceita um parâmetro pushAutomation opcional. Se definido como nil, todos os recursos de automação de push são ativados, exceto a solicitação de autorização de push na inicialização.
Etapa 3: Atualize seu delegado do app
O seguinte assume que você já adicionou um AppDelegate ao seu projeto (que não são gerados por padrão). Se você não planeja usar um, certifique-se de inicializar o SDK Braze o mais cedo possível, como durante a inicialização do app.
Adicione a seguinte linha de código ao seu AppDelegate.swift arquivo para importar os recursos incluídos no SDK da Braze para Swift:
1
import BrazeKit
Em seguida, adicione uma propriedade estática à sua classe AppDelegate para manter uma referência forte à instância da Braze durante toda a vida útil do seu aplicativo:
1
2
3
class AppDelegate: UIResponder, UIApplicationDelegate {
static var braze: Braze? = nil
}
Finalmente, em AppDelegate.swift, adicione o seguinte trecho ao seu método application:didFinishLaunchingWithOptions::
1
2
3
4
5
6
let configuration = Braze.Configuration(
apiKey: "YOUR-APP-IDENTIFIER-API-KEY",
endpoint: "YOUR-BRAZE-ENDPOINT"
)
let braze = Braze(configuration: configuration)
AppDelegate.braze = braze
Atualize YOUR-APP-IDENTIFIER-API-KEY e YOUR-BRAZE-ENDPOINT com o valor correto da sua página de Configurações do App. Confira nossos tipos de identificadores de API para saber mais sobre onde encontrar a chave de API do seu identificador de app.
Adicione a seguinte linha de código ao seu arquivo AppDelegate.m:
1
@import BrazeKit;
Em seguida, adicione uma variável estática ao seu arquivo AppDelegate.m para manter uma referência à instância da Braze durante toda a vida útil do seu aplicativo:
1
2
3
4
5
6
7
8
9
10
11
static Braze *_braze;
@implementation AppDelegate
+ (Braze *)braze {
return _braze;
}
+ (void)setBraze:(Braze *)braze {
_braze = braze;
}
@end
Finalmente, dentro do seu arquivoAppDelegate.m, adicione o seguinte trecho dentro do seu método application:didFinishLaunchingWithOptions::
1
2
3
4
BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:"YOUR-APP-IDENTIFIER-API-KEY"
endpoint:"YOUR-BRAZE-ENDPOINT"];
Braze *braze = [[Braze alloc] initWithConfiguration:configuration];
AppDelegate.braze = braze;
Atualize YOUR-APP-IDENTIFIER-API-KEY e YOUR-BRAZE-ENDPOINT com o valor correto da sua página Gerenciar Configurações. Confira nossa documentação da API para saber mais sobre onde encontrar a chave de API do seu identificador de app.
Configurações opcionais
Registro
Níveis de registro
O nível de log padrão para o SDK Braze Swift é .error—é também o nível mínimo suportado quando os logs estão ativados. Esta é a lista completa de níveis de log:
| Swift | Objective C | Descrição |
|---|---|---|
.debug |
BRZLoggerLevelDebug |
(Padrão) Registre informações de depuração + .info + .error. |
.info |
BRZLoggerLevelInfo |
Registre informações gerais do SDK (alterações de usuário, etc.) + .error. |
.error |
BRZLoggerLevelError |
Erros de registro. |
.disabled |
BRZLoggerLevelDisabled |
Não ocorre nenhum registro. |
Definindo o nível de log
Você pode atribuir o nível de log em tempo de execução no seu objeto Braze.Configuration. Para detalhes completos de uso, veja Braze.Configuration.Logger.
1
2
3
4
5
6
7
let configuration = Braze.Configuration(
apiKey: "<BRAZE_API_KEY>",
endpoint: "<BRAZE_ENDPOINT>"
)
// Enable logging of general SDK information (such as user changes, etc.)
configuration.logger.level = .info
let braze = Braze(configuration: configuration)
1
2
3
4
5
BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:self.APIKey
endpoint:self.apiEndpoint];
// Enable logging of general SDK information (such as user changes, etc.)
[configuration.logger setLevel:BRZLoggerLevelInfo];
Braze *braze = [[Braze alloc] initWithConfiguration:configuration];
Sobre o SDK Braze para Web
O SDK Braze para Web permite coletar análises e exibir mensagens ricas no aplicativo, push e mensagens de Cartão de Conteúdo para seus usuários da web. Para mais informações, consulte documentação de referência do Braze JavaScript.
This guide uses code samples from the Braze Web SDK 4.0.0+. To upgrade to the latest Web SDK version, see SDK Upgrade Guide.
Integrando o SDK para Web
Você pode integrar o SDK Braze para Web usando os seguintes métodos. Para opções adicionais, consulte outros métodos de integração.
- Integração Baseada em Código: Integre o SDK Braze para Web diretamente em seu código usando seu gerenciador de pacotes preferido ou a CDN do Braze. Isso lhe dará controle total sobre como o SDK é carregado e configurado.
- Google Tag Manager: Uma solução sem código que permite integrar o SDK Braze para Web sem modificar o código do seu site. Para mais informações, consulte Google Tag Manager com o SDK Braze.
Etapa 1: Instalar a biblioteca do Braze
Você pode instalar a biblioteca Braze usando um dos seguintes métodos. No entanto, se seu site usar um Content-Security-Policy, revise a Política de Segurança de Conteúdo antes de continuar.
Embora a maioria dos bloqueadores de anúncios não bloqueie o SDK Braze para Web, alguns bloqueadores de anúncios mais restritivos são conhecidos por causar problemas.
Se o seu site usar os gerenciadores de pacotes NPM ou Yarn, você poderá adicionar o pacote Braze NPM como uma dependência.
As definições do Typescript agora estão incluídas a partir da versão 3.0.0. Para notas sobre como fazer upgrade da versão 2.x para a 3.x, consulte nosso changelog.
1
2
3
npm install --save @braze/web-sdk
# or, using yarn:
# yarn add @braze/web-sdk
Depois de instalada, você pode import ou require a biblioteca da maneira habitual:
1
2
3
import * as braze from "@braze/web-sdk";
// or, using `require`
const braze = require("@braze/web-sdk");
Adicione o SDK da Braze para Web diretamente ao seu HTML fazendo referência ao nosso script hospedado na CDN, que carrega a biblioteca de forma assíncrona.
Etapa 2: Inicializar o SDK
Após adicionar o SDK Braze para Web ao seu site, inicialize a biblioteca com a chave de API e URL do endpoint de SDK encontrados em Configurações > Configurações do App dentro do seu painel do Braze. Para uma lista completa de opções para braze.initialize(), juntamente com nossos outros métodos JavaScript, consulte documentação do Braze JavaScript.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// initialize the SDK
braze.initialize('YOUR-API-KEY-HERE', {
baseUrl: "YOUR-SDK-ENDPOINT-HERE",
enableLogging: false, // set to `true` for debugging
allowUserSuppliedJavascript: false, // set to `true` to support custom HTML messages
});
// optionally show all in-app messages without custom handling
braze.automaticallyShowInAppMessages();
// if you use Content Cards
braze.subscribeToContentCardsUpdates(function(cards){
// cards have been updated
});
// optionally set the current user's external ID before starting a new session
// you can also call `changeUser` later in the session after the user logs in
if (isLoggedIn){
braze.changeUser(userIdentifier);
}
// `openSession` should be called last - after `changeUser` and `automaticallyShowInAppMessages`
braze.openSession();
Usuários anônimos em dispositivos móveis ou da Web podem ser contabilizados no seu MAU. Como resultado, talvez seja necessário carregar ou inicializar condicionalmente o SDK para excluir esses usuários da sua contagem de MAU.
Pré-requisitos
Antes de usar esse método de integração, será necessário criar uma conta e um contêiner para o Google Tag Manager.
Etapa 1: Abra a galeria de modelos de tag
No Google Tag Manager, escolha seu espaço de trabalho e, em seguida, selecione Modelos. No painel Modelo de tag, selecione Pesquisar galeria.

Etapa 2: Adicionar o modelo de tag de inicialização
Na galeria de modelos, procure por braze-inc e selecione Braze Initialization Tag.

Selecione Adicionar ao espaço de trabalho > Adicionar.

Etapa 3: Configurar a tag
Na seção Modelos, selecione o modelo recém-adicionado.

Selecione o ícone de lápis para abrir o menu suspenso Tag Configuration (Configuração de tag ).

Insira as informações mínimas necessárias:
| Campo | Descrição |
|---|---|
| Chave de API | Sua chave de API do Braze, encontrada no dashboard do Braze em Configurações > Configurações do app. |
| Endpoint de API | Sua URL de endpoint REST. Seu endpoint dependerá do [URL da Braze para sua instância. |
| Versão do SDK | A versão MAJOR.MINOR mais recente do Web Braze SDK listada no changelog. Por exemplo, se a versão mais recente for 4.1.2, digite 4.1. Para saber mais, consulte Sobre o gerenciamento de versões do SDK. |
Para configurações adicionais de inicialização, selecione Braze Initialization Options (Opções de inicialização do Braze ) e escolha as opções necessárias.

Etapa 4: Definido para disparar em todas as páginas
A tag de inicialização deve ser executada em todas as páginas de seu site. Isso permite que você use os métodos do Braze SDK e registre a análise de dados web push.
Etapa 5: Verifique sua integração
Você pode verificar sua integração usando uma das seguintes opções:
- Opção 1: Usando a ferramenta de debug do Google Tag Manager, é possível verificar se a tag de inicialização do Braze está disparando corretamente em suas páginas ou eventos configurados.
- Opção 2: Verifique se há alguma solicitação de rede feita ao Braze a partir de sua página da Web. Além disso, a biblioteca global
window.brazedeve ser definida agora.
Configurações opcionais
Registro
Para ativar rapidamente o registro, adicione ?brazeLogging=true como um parâmetro ao URL do seu site. Como alternativa, é possível ativar o registro básico ou personalizado.
Registro básico
Use enableLogging para registrar mensagens básicas de depuração no console JavaScript antes que o SDK seja inicializado.
1
enableLogging: true
Seu método deve ser semelhante ao seguinte:
1
2
3
4
5
braze.initialize('API-KEY', {
baseUrl: 'API-ENDPOINT',
enableLogging: true
});
braze.openSession();
Use braze.toggleLogging() para registrar mensagens básicas de depuração no console JavaScript após a inicialização do SDK. Seu método deve ser semelhante ao seguinte:
1
2
3
4
5
6
braze.initialize('API-KEY', {
baseUrl: 'API-ENDPOINT',
});
braze.openSession();
...
braze.toggleLogging();
Os registros básicos são visíveis para todos os usuários, portanto, considere desativar ou mudar para setLoggerantes de liberar seu código para produção.
Registro personalizado
Use setLogger para registrar mensagens de depuração personalizadas no console JavaScript. Ao contrário dos registros básicos, esses registros não são visíveis para os usuários.
1
setLogger(loggerFunction: (message: STRING) => void): void
Substitua STRING por sua mensagem como um único parâmetro string. Seu método deve ser semelhante ao seguinte:
1
2
3
4
5
braze.initialize('API-KEY');
braze.setLogger(function(message) {
console.log("Braze Custom Logger: " + message);
});
braze.openSession();
Fazendo upgrade do SDK
This guide uses code samples from the Braze Web SDK 4.0.0+. To upgrade to the latest Web SDK version, see SDK Upgrade Guide.
Ao fazer referência ao Braze Web SDK a partir de nossa rede de fornecimento de conteúdo, por exemplo, https://js.appboycdn.com/web-sdk/a.a/braze.min.js (conforme recomendado por nossas instruções de integração padrão), seus usuários receberão pequenas atualizações (correções de bugs e recursos compatíveis com versões anteriores, versões a.a.a a a.a.z nos exemplos acima) automaticamente quando atualizarem seu site.
No entanto, quando lançamos alterações importantes, solicitamos que você faça upgrade do SDK da Braze para Web manualmente para garantir que nada em sua integração seja afetado por quaisquer alterações significativas. Além disso, se você baixar nosso SDK e hospedá-lo você mesmo, não receberá nenhuma atualização de versão automaticamente e deverá fazer upgrade manualmente para receber os recursos e as correções de bugs mais recentes.
Mantenha-se atualizado com a versão mais recente seguindo nosso feed de versões com o leitor de RSS ou serviço de sua preferência e consulte nosso changelog para obter uma contabilidade completa do histórico de versões do Web SDK. Para fazer upgrade do SDK da Braze para Web:
- Atualize a versão da biblioteca do Braze alterando o número da versão em
https://js.appboycdn.com/web-sdk/[OLD VERSION NUMBER]/braze.min.jsou nas dependências do gerenciador de pacotes. - Se você tiver o web push integrado, atualize o arquivo do service worker em seu site - por padrão, ele está localizado em
/service-worker.jsno diretório raiz do site, mas o local pode ser personalizado em algumas integrações. Você deve acessar o diretório raiz para hospedar um arquivo de service worker.
Esses dois arquivos devem ser atualizados em coordenação um com o outro para a funcionalidade adequada.
Outros métodos de integração
Páginas Móveis Aceleradas (AMP)
Veja mais
Etapa 1: Incluir script de push para web de AMP
Adicione a seguinte tag de script assíncrono em seu cabeçalho:
1
<script async custom-element="amp-web-push" src="https://cdn.ampproject.org/v0/amp-web-push-0.1.js"></script>
Etapa 2: Adicionar widgets de inscrição
Adicione um widget ao corpo do seu HTML que permite aos usuários se inscreverem e cancelarem a inscrição do push.
1
2
3
4
5
6
7
8
9
<!-- A subscription widget -->
<amp-web-push-widget visibility="unsubscribed" layout="fixed" width="250" height="80">
<button on="tap:amp-web-push.subscribe">Subscribe to Notifications</button>
</amp-web-push-widget>
<!-- An unsubscription widget -->
<amp-web-push-widget visibility="subscribed" layout="fixed" width="250" height="80">
<button on="tap:amp-web-push.unsubscribe">Unsubscribe from Notifications</button>
</amp-web-push-widget>
Etapa 3: Adicionar helper-iframe e permission-dialog
O componente AMP Web Push cria um popup para gerenciar inscrições de push, então você precisará adicionar os seguintes arquivos auxiliares ao seu projeto para ativar esse recurso:
Etapa 4: Criar um arquivo de service worker
Crie um arquivo service-worker.js no diretório raiz do seu site e adicione o seguinte trecho:
Etapa 5: Configurar o elemento HTML do AMP web push
Adicione o seguinte elemento HTML amp-web-push ao corpo do seu HTML. Lembre-se, você precisa anexar seu apiKey e baseUrl como parâmetros de consulta para service-worker-URL.
1
2
3
4
5
6
7
<amp-web-push
layout="nodisplay"
id="amp-web-push"
helper-iframe-url="FILE_PATH_TO_YOUR_HELPER_IFRAME"
permission-dialog-url="FILE_PATH_TO_YOUR_PERMISSION_DIALOG"
service-worker-url="FILE_PATH_TO_YOUR_SERVICE_WORKER?apiKey={YOUR_API_KEY}&baseUrl={YOUR_BASE_URL}"
>
Definição de Módulo Assíncrono (AMD)
Desativar suporte
Se o seu site usa RequireJS ou outro carregador de módulos AMD, mas você prefere carregar o Braze Web SDK através de uma das outras opções nesta lista, você pode carregar uma versão da biblioteca que não inclui suporte a AMD. Essa versão da biblioteca pode ser carregada no seguinte local da CDN:
Carregador de módulos
Se você usa o RequireJS ou outros carregadores de módulos da AMD, recomendamos que hospede uma cópia da nossa biblioteca e faça referência a ela como faria com outros recursos:
1
2
3
4
5
require(['path/to/braze.min.js'], function(braze) {
braze.initialize('YOUR-API-KEY-HERE', { baseUrl: 'YOUR-SDK-ENDPOINT' });
braze.automaticallyShowInAppMessages();
braze.openSession();
});
Electron
O Electron não oferece suporte oficial a notificações por push na Web (consulte: este problema no GitHub). Há outras soluções alternativas de código aberto que você pode tentar e que não foram testadas pelo Braze.
Framework Jest
Ao usar o Jest, você poderá ver um erro semelhante a SyntaxError: Unexpected token 'export'. Para corrigir isso, ajuste sua configuração em package.json para ignorar o SDK da Braze:
1
2
3
4
5
"jest": {
"transformIgnorePatterns": [
"/node_modules/(?!@braze)"
]
}
Frameworks SSR
Se você usar um framework de Renderização do Lado do Servidor (SSR) como Next.js, pode encontrar erros porque o SDK foi projetado para ser executado em um ambiente de navegador. Você pode resolver esses problemas importando dinamicamente o SDK.
Você pode manter os benefícios do tree-shaking ao fazer isso exportando as partes do SDK de que precisa em um arquivo separado e, em seguida, importando dinamicamente esse arquivo para o seu componente.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// MyComponent/braze-exports.js
// export the parts of the SDK you need here
export { initialize, openSession } from "@braze/web-sdk";
// MyComponent/MyComponent.js
// import the functions you need from the braze exports file
useEffect(() => {
import("./braze-exports.js").then(({ initialize, openSession }) => {
initialize("YOUR-API-KEY-HERE", {
baseUrl: "YOUR-SDK-ENDPOINT",
enableLogging: true,
});
openSession();
});
}, []);
Como alternativa, se estiver usando o Webpack para empacotar seu app, poderá aproveitar os comentários mágicos para importar dinamicamente apenas as partes do SDK de que precisa.
1
2
3
4
5
6
7
8
9
10
11
12
13
// MyComponent.js
useEffect(() => {
import(
/* webpackExports: ["initialize", "openSession"] */
"@braze/web-sdk"
).then(({ initialize, openSession }) => {
initialize("YOUR-API-KEY-HERE", {
baseUrl: "YOUR-SDK-ENDPOINT",
enableLogging: true,
});
openSession();
});
}, []);
Tealium iQ
O Tealium iQ oferece uma integração básica do Braze pronta para uso. Para configurar a integração, procure o Braze na interface do Tealium Tag Management e forneça a chave de API do Web SDK em seu dashboard.
Para obter mais detalhes ou suporte aprofundado à configuração do Tealium, consulte nossa documentação de integração ou entre em contato com seu gerente de conta do Tealium.
Vite
Se você usa o Vite e vir um aviso sobre dependências circulares ou Uncaught TypeError: Class extends value undefined is not a constructor or null, talvez seja necessário excluir o SDK da Braze de sua descoberta de dependências:
1
2
3
optimizeDeps: {
exclude: ['@braze/web-sdk']
},
Outros gerenciadores de tags
O Braze também pode ser compatível com outras soluções de gerenciamento de tags, seguindo nossas instruções de integração em uma tag HTML personalizada. Entre em contato com um representante da Braze se precisar de ajuda para avaliar essas soluções.
Integrating the Cordova SDK
Prerequisites
Before you start, verify your environment is supported by the latest Braze Cordova SDK version.
Step 1: Add the SDK to your project
Only add the Braze Cordova SDK using the methods below. Do not attempt to install using other methods as it could lead to a security breach.
If you’re on Cordova 6 or later, you can add the SDK directly from GitHub. Alternatively, you can download a ZIP of the GitHub repository and add the SDK manually.
If you don’t plan on using location collection and geofences, use the master branch from GitHub.
1
cordova plugin add https://github.com/braze-inc/braze-cordova-sdk#master
If you plan on using location collection and geofences, use the geofence-branch from GitHub.
1
cordova plugin add https://github.com/braze-inc/braze-cordova-sdk#geofence-branch
You can switch between master and geofence-branch at anytime by repeating this step.
Step 2: Configure your project
Next, adding the following preferences to the platform element in your project’s config.xml file.
1
2
<preference name="com.braze.ios_api_key" value="BRAZE_API_KEY" />
<preference name="com.braze.ios_api_endpoint" value="CUSTOM_API_ENDPOINT" />
1
2
<preference name="com.braze.android_api_key" value="BRAZE_API_KEY" />
<preference name="com.braze.android_api_endpoint" value="CUSTOM_API_ENDPOINT" />
Replace the following:
| Value | Description |
|---|---|
BRAZE_API_KEY |
Your Braze REST API key. |
CUSTOM_API_ENDPOINT |
A custom API endpoint. This endpoint is used to route your Braze instance data to the correct App Group in your Braze dashboard. |
The platform element in your config.xml file should be similar to the following:
1
2
3
4
<platform name="ios">
<preference name="com.braze.ios_api_key" value="BRAZE_API_KEY" />
<preference name="com.braze.ios_api_endpoint" value="sdk.fra-01.braze.eu" />
</platform>
1
2
3
4
<platform name="android">
<preference name="com.braze.android_api_key" value="BRAZE_API_KEY" />
<preference name="com.braze.android_api_endpoint" value="sdk.fra-01.braze.eu" />
</platform>
Platform-specific syntax
The following section covers the platform-specific syntax when using Cordova with iOS or Android.
Integers
Integer preferences are read as string representations, like in the following example:
1
2
3
4
<platform name="ios">
<preference name="com.braze.ios_flush_interval_seconds" value="10" />
<preference name="com.braze.ios_session_timeout" value="5" />
</platform>
Due to how the Cordova 8.0.0+ framework handles preferences, integer-only preferences (such as sender IDs) must be set to strings prepended with str_, like in the following example:
1
2
3
4
<platform name="android">
<preference name="com.braze.android_fcm_sender_id" value="str_64422926741" />
<preference name="com.braze.android_default_session_timeout" value="str_10" />
</platform>
Booleans
Boolean preferences are read by the SDK using YES and NO keywords as a string representation, like in the following example:
1
2
3
4
<platform name="ios">
<preference name="com.braze.should_opt_in_when_push_authorized" value="YES" />
<preference name="com.braze.ios_disable_automatic_push_handling" value="NO" />
</platform>
Boolean preferences are read by the SDK using true and false keywords as a string representation, like in the following example:
1
2
3
4
<platform name="android">
<preference name="com.braze.should_opt_in_when_push_authorized" value="true" />
<preference name="com.braze.is_session_start_based_timeout_enabled" value="false" />
</platform>
Optional configurations
You can add any of the following preferences to the platform element in your project’s config.xml file:
| Method | Description |
|---|---|
ios_api_key |
Sets the API key for your application. |
ios_api_endpoint |
Sets the SDK endpoint for your application. |
ios_disable_automatic_push_registration |
Sets whether automatic push registration should be disabled. |
ios_disable_automatic_push_handling |
Sets whether automatic push handling should be disabled. |
ios_enable_idfa_automatic_collection |
Sets whether the Braze SDK should automatically collect the IDFA information. For more information, see the Braze IDFA method documentation. |
enable_location_collection |
Sets whether the automatic location collection is enabled (if the user permits). The geofence-branch |
geofences_enabled |
Sets whether geofences are enabled. |
ios_session_timeout |
Sets the Braze session timeout for your application in seconds. Defaults to 10 seconds. |
sdk_authentication_enabled |
Sets whether to enable the SDK Authentication feature. |
display_foreground_push_notifications |
Sets whether push notifications should be displayed while the application is in the foreground. |
ios_disable_un_authorization_option_provisional |
Sets whether UNAuthorizationOptionProvisional should be disabled. |
trigger_action_minimum_time_interval_seconds |
Sets the minimum time interval in seconds between triggers. Defaults to 30 seconds. |
ios_push_app_group |
Sets the app group ID for iOS push extensions. |
ios_forward_universal_links |
Sets if the SDK should automatically recognize and forward universal links to the system methods. |
ios_log_level |
Sets the minimum logging level for Braze.Configuration.Logger. |
ios_use_uuid_as_device_id |
Sets if a randomly generated UUID should be used as the device ID. |
ios_flush_interval_seconds |
Sets the interval in seconds between automatic data flushes. Defaults to 10 seconds. |
ios_use_automatic_request_policy |
Sets whether the request policy for Braze.Configuration.Api should be automatic or manual. |
should_opt_in_when_push_authorized |
Sets if a user’s notification subscription state should automatically be set to optedIn when push permissions are authorized. |
For more detailed information, see GitHub: Braze iOS Cordova plugin.
| Method | Description |
|---|---|
android_api_key |
Sets the API key for your application. |
android_api_endpoint |
Sets the SDK endpoint for your application. |
android_small_notification_icon |
Sets the notification small icon. |
android_large_notification_icon |
Sets the notification large icon. |
android_notification_accent_color |
Sets the notification accent color using a hexadecimal representation. |
android_default_session_timeout |
Sets the Braze session timeout for your application in seconds. Defaults to 10 seconds. |
android_handle_push_deep_links_automatically |
Sets whether the Braze SDK should automatically handle push deep links. |
android_log_level |
Sets the log level for your application. The default log level is 4 and will minimally log info. To enable verbose logging for debugging, use log level 2. |
firebase_cloud_messaging_registration_enabled |
Sets whether to use Firebase Cloud Messaging for push notifications. |
android_fcm_sender_id |
Sets the Firebase Cloud Messaging sender ID. |
enable_location_collection |
Sets whether the automatic location collection is enabled (if the user permits). |
geofences_enabled |
Sets whether geofences are enabled. |
android_disable_auto_session_tracking |
Disable the Android Cordova plugin from automatically tracking sessions. For more information, see Disabling automatic session tracking |
sdk_authentication_enabled |
Sets whether to enable the SDK Authentication feature. |
trigger_action_minimum_time_interval_seconds |
Sets the minimum time interval in seconds between triggers. Defaults to 30 seconds. |
is_session_start_based_timeout_enabled |
Sets whether the session timeout behavior to be based either on session start or session end events. |
default_notification_channel_name |
Sets the user-facing name as seen via NotificationChannel.getName for the Braze default NotificationChannel. |
default_notification_channel_description |
Sets the user-facing description as seen via NotificationChannel.getDescription for the Braze default NotificationChannel. |
does_push_story_dismiss_on_click |
Sets whether a Push Story is automatically dismissed when clicked. |
is_fallback_firebase_messaging_service_enabled |
Sets whether the use of a fallback Firebase Cloud Messaging Service is enabled. |
fallback_firebase_messaging_service_classpath |
Sets the classpath for the fallback Firebase Cloud Messaging Service. |
is_content_cards_unread_visual_indicator_enabled |
Sets whether the Content Cards unread visual indication bar is enabled. |
is_firebase_messaging_service_on_new_token_registration_enabled |
Sets whether the Braze SDK will automatically register tokens in com.google.firebase.messaging.FirebaseMessagingService.onNewToken. |
is_push_deep_link_back_stack_activity_enabled |
Sets whether Braze will add an activity to the back stack when automatically following deep links for push. |
push_deep_link_back_stack_activity_class_name |
Sets the activity that Braze will add to the back stack when automatically following deep links for push. |
should_opt_in_when_push_authorized |
Sets if Braze should automatically opt-in the user when push is authorized. |
For more detailed information, see GitHub: Braze Android Cordova plugin.
The following is an example config.xml file with additional configurations:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<platform name="ios">
<preference name="com.braze.ios_disable_automatic_push_registration" value="NO"/"YES" />
<preference name="com.braze.ios_disable_automatic_push_handling" value="NO"/"YES" />
<preference name="com.braze.ios_enable_idfa_automatic_collection" value="YES"/"NO" />
<preference name="com.braze.enable_location_collection" value="NO"/"YES" />
<preference name="com.braze.geofences_enabled" value="NO"/"YES" />
<preference name="com.braze.ios_session_timeout" value="5" />
<preference name="com.braze.sdk_authentication_enabled" value="YES"/"NO" />
<preference name="com.braze.display_foreground_push_notifications" value="YES"/"NO" />
<preference name="com.braze.ios_disable_un_authorization_option_provisional" value="NO"/"YES" />
<preference name="com.braze.trigger_action_minimum_time_interval_seconds" value="30" />
<preference name="com.braze.ios_push_app_group" value="PUSH_APP_GROUP_ID" />
<preference name="com.braze.ios_forward_universal_links" value="YES"/"NO" />
<preference name="com.braze.ios_log_level" value="2" />
<preference name="com.braze.ios_use_uuid_as_device_id" value="YES"/"NO" />
<preference name="com.braze.ios_flush_interval_seconds" value="10" />
<preference name="com.braze.ios_use_automatic_request_policy" value="YES"/"NO" />
<preference name="com.braze.should_opt_in_when_push_authorized" value="YES"/"NO" />
</platform>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<platform name="android">
<preference name="com.braze.android_small_notification_icon" value="RESOURCE_ENTRY_NAME_FOR_ICON_DRAWABLE" />
<preference name="com.braze.android_large_notification_icon" value="RESOURCE_ENTRY_NAME_FOR_ICON_DRAWABLE" />
<preference name="com.braze.android_notification_accent_color" value="str_ACCENT_COLOR_INTEGER" />
<preference name="com.braze.android_default_session_timeout" value="str_SESSION_TIMEOUT_INTEGER" />
<preference name="com.braze.android_handle_push_deep_links_automatically" value="true"/"false" />
<preference name="com.braze.android_log_level" value="str_LOG_LEVEL_INTEGER" />
<preference name="com.braze.firebase_cloud_messaging_registration_enabled" value="true"/"false" />
<preference name="com.braze.android_fcm_sender_id" value="str_YOUR_FCM_SENDER_ID" />
<preference name="com.braze.enable_location_collection" value="true"/"false" />
<preference name="com.braze.geofences_enabled" value="true"/"false" />
<preference name="com.braze.android_disable_auto_session_tracking" value="true"/"false" />
<preference name="com.braze.sdk_authentication_enabled" value="true"/"false" />
<preference name="com.braze.trigger_action_minimum_time_interval_seconds" value="str_MINIMUM_INTERVAL_INTEGER" />
<preference name="com.braze.is_session_start_based_timeout_enabled" value="false"/"true" />
<preference name="com.braze.default_notification_channel_name" value="DEFAULT_NAME" />
<preference name="com.braze.default_notification_channel_description" value="DEFAULT_DESCRIPTION" />
<preference name="com.braze.does_push_story_dismiss_on_click" value="true"/"false" />
<preference name="com.braze.is_fallback_firebase_messaging_service_enabled" value="true"/"false" />
<preference name="com.braze.fallback_firebase_messaging_service_classpath" value="FALLBACK_FIREBASE_MESSAGING_CLASSPATH" />
<preference name="com.braze.is_content_cards_unread_visual_indicator_enabled" value="true"/"false" />
<preference name="com.braze.is_firebase_messaging_service_on_new_token_registration_enabled" value="true"/"false" />
<preference name="com.braze.is_push_deep_link_back_stack_activity_enabled" value="true"/"false" />
<preference name="com.braze.push_deep_link_back_stack_activity_class_name" value="DEEPLINK_BACKSTACK_ACTIVITY_CLASS_NAME" />
<preference name="com.braze.should_opt_in_when_push_authorized" value="true"/"false" />
</platform>
Disabling automatic session tracking (Android only)
By default, the Android Cordova plugin automatically tracks sessions. To disable automatic session tracking, add the following preference to the platform element in your project’s config.xml file:
1
2
3
<platform name="android">
<preference name="com.braze.android_disable_auto_session_tracking" value="true" />
</platform>
To start tracking sessions again, call BrazePlugin.startSessionTracking(). Keep in mind, only sessions started after the next Activity.onStart() will be tracked.
Sobre o SDK do Flutter Braze
Depois de integrar o Braze Flutter SDK no Android e no iOS, você poderá usar a API do Braze em seus apps Flutter escritos em Dart. Esse plug-in fornece a funcionalidade básica de análise de dados e permite integrar mensagens no app e cartões de conteúdo para iOS e Android com uma única base de código.
Integração do SDK do Flutter
Pré-requisitos
Antes de integrar o Braze Flutter SDK, você precisará concluir o seguinte:
| Pré-requisito | Descrição |
|---|---|
| Identificador de app da Braze API | Para localizar o identificador de seu aplicativo, acesse Configurações > APIs e identificadores > Identificadores de aplicativos. Para saber mais, consulte Tipos de identificadores da API. |
| Endpoint REST do Braze | Sua URL de endpoint REST. Seu endpoint dependerá da URL do Braze para sua instância. |
| SDK para Flutter | Instale o SDK oficial do Flutter e certifique-se de que ele atenda à versão mínima suportada do SDK do Braze Flutter. |
Etapa 1: Integrar a biblioteca do Braze
Adicione o pacote Braze Flutter SDK a partir da linha de comando. Isso adicionará a linha adequada a pubspec.yaml.
1
flutter pub add braze_plugin
Etapa 2: Configuração completa do SDK nativo
Para se conectar aos servidores da Braze, crie um arquivo braze.xml na pasta android/res/values do projeto. Cole o código a seguir e substitua a chave do identificador da API e o ponto final por seus valores:
1
2
3
4
5
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string translatable="false" name="com_braze_api_key">YOUR_APP_IDENTIFIER_API_KEY</string>
<string translatable="false" name="com_braze_custom_endpoint">YOUR_CUSTOM_ENDPOINT_OR_CLUSTER</string>
</resources>
Adicione as permissões necessárias ao seu arquivo AndroidManifest.xml:
1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Adicione a importação do SDK da Braze na parte superior do arquivo AppDelegate.swift:
1
2
import BrazeKit
import braze_plugin
No mesmo arquivo, crie o objeto de configuração do Braze no método application(_:didFinishLaunchingWithOptions:) e substitua a chave de API e o endpoint pelos valores do seu app. Em seguida, crie a instância da Braze usando a configuração e crie uma propriedade estática em AppDelegate para facilitar o acesso:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
static var braze: Braze? = nil
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
// Setup Braze
let configuration = Braze.Configuration(
apiKey: "<BRAZE_API_KEY>",
endpoint: "<BRAZE_ENDPOINT>"
)
// - Enable logging or customize configuration here
configuration.logger.level = .info
let braze = BrazePlugin.initBraze(configuration)
AppDelegate.braze = braze
return true
}
Importar BrazeKit na parte superior do arquivo AppDelegate.m:
1
@import BrazeKit;
No mesmo arquivo, crie o objeto de configuração do Braze no método application:didFinishLaunchingWithOptions: e substitua a chave de API e o endpoint pelos valores do seu app. Em seguida, crie a instância da Braze usando a configuração e crie uma propriedade estática em AppDelegate para facilitar o acesso:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Setup Braze
BRZConfiguration *configuration =
[[BRZConfiguration alloc] initWithApiKey:@"<BRAZE_API_KEY>"
endpoint:@"<BRAZE_ENDPOINT>"];
// - Enable logging or customize configuration here
configuration.logger.level = BRZLoggerLevelInfo;
Braze *braze = [BrazePlugin initBraze:configuration];
AppDelegate.braze = braze;
[self.window makeKeyAndVisible];
return YES;
}
#pragma mark - AppDelegate.braze
static Braze *_braze = nil;
+ (Braze *)braze {
return _braze;
}
+ (void)setBraze:(Braze *)braze {
_braze = braze;
}
Etapa 3: Configurar o plug-in
Para importar o plug-in em seu código Dart, use o seguinte:
1
import 'package:braze_plugin/braze_plugin.dart';
Em seguida, inicialize uma instância do plug-in da Braze chamando new BrazePlugin() como em nosso app de amostra.
Para evitar comportamentos indefinidos, aloque e use apenas uma única instância do BrazePlugin em seu código Dart.
Teste da integração
Você pode verificar se o SDK está integrado verificando as estatísticas da sessão no dashboard. Se você executar seu aplicativo em qualquer uma das plataformas, deverá ver uma nova sessão no dashboard (na seção Visão geral ).
Abra uma sessão para um usuário específico chamando o seguinte código em seu app.
1
2
BrazePlugin braze = BrazePlugin();
braze.changeUser("{some-user-id}");
Procure o usuário com {some-user-id} no dashboard em Público > Pesquisar usuários. Lá, é possível verificar se os dados da sessão e do dispositivo foram registrados.
Sobre o SDK do React Native Braze
A integração do React Native Braze SDK fornece funcionalidade básica de análise de dados e permite integrar mensagens no app e cartões de conteúdo para iOS e Android com apenas uma base de código.
Compatibilidade com a nova arquitetura
A versão mínima do SDK a seguir é compatível com todos os apps que usam a nova arquitetura do React Native:
A partir da versão 6.0.0 do SDK, o Braze usa um React Native Turbo Module, que é compatível com a Nova Arquitetura e com a arquitetura de ponte herdada, o que significa que não é necessária nenhuma configuração adicional.
Se o seu app para iOS estiver em conformidade com RCTAppDelegate e seguir nossa configuração anterior AppDelegate, revise os exemplos em Configuração nativa completa para evitar a ocorrência de falhas ao assinar eventos no Turbo Module.
Integração do SDK do React Native
Pré-requisitos
Para integrar o SDK, é necessária a versão 0.71 ou posterior do React Native. Para obter a lista completa de versões compatíveis, consulte nosso repositório do GitHub do React Native SDK.
Etapa 1: Integrar a biblioteca do Braze
1
npm install @braze/react-native-sdk
1
yarn add @braze/react-native-sdk
Etapa 2: Escolha uma opção de configuração
Você pode gerenciar o SDK do Braze usando o plug-in Braze Expo ou por meio de uma das camadas nativas. Com o plug-in Expo, você pode configurar determinados recursos do SDK sem escrever código em nenhuma das camadas nativas. Escolha a opção que melhor atenda às necessidades de seu app.
Etapa 2.1: Instale o plug-in Braze Expo
Confira se sua versão do SDK da Braze para React Native seja, no mínimo, 1.37.0. Para obter a lista completa das versões suportadas, consulte o repositório do Braze React Native.
Para instalar o plug-in Braze Expo, execute o seguinte comando:
1
npx expo install @braze/expo-plugin
Etapa 2.2: Adicione o plug-in ao seu app.json
Em app.json, adicione o plug-in Braze Expo. Você pode fornecer as seguintes opções de configuração:
| Método | Tipo | Descrição |
|---|---|---|
androidApiKey |
string | Necessário. A chave de API do seu aplicativo Android, localizada no dashboard do Braze em Manage Settings (Gerenciar configurações). |
iosApiKey |
string | Necessário. A chave de API para seu aplicativo iOS, localizada no dashboard do Braze em Manage Settings (Gerenciar configurações). |
baseUrl |
string | Necessário. O endpoint do SDK para seu app, localizado no dashboard da Braze em Gerenciar configurações. |
enableBrazeIosPush |
booleano | Somente iOS. Se deve usar a Braze para lidar com notificações por push no iOS. Introduzido no React Native SDK v1.38.0 e no Expo Plugin v0.4.0. |
enableFirebaseCloudMessaging |
booleano | Somente para Android. Define se deve usar o Firebase Cloud Messaging para notificações por push. Introduzido no React Native SDK v1.38.0 e no Expo Plugin v0.4.0. |
firebaseCloudMessagingSenderId |
string | Somente para Android. Seu ID de remetente do Firebase Cloud Messaging. Introduzido no React Native SDK v1.38.0 e no Expo Plugin v0.4.0. |
sessionTimeout |
inteiro | O tempo limite da sessão do Braze para seu aplicativo, em segundos. |
enableSdkAuthentication |
booleano | Define se deve ativar o recurso de autenticação do SDK. |
logLevel |
inteiro | Define o nível de registro para o seu aplicativo. O nível de registro padrão é 8 e registrará minimamente as informações. Para ativar o registro detalhado para depuração, use o nível de registro 0. |
minimumTriggerIntervalInSeconds |
inteiro | O intervalo de tempo mínimo, em segundos, entre os disparos. O padrão é 30 segundos. |
enableAutomaticLocationCollection |
booleano | Se a coleta automática de locais está ativada (se o usuário permitir). |
enableGeofence |
booleano | Se as geofences estão ativadas. |
enableAutomaticGeofenceRequests |
booleano | Se as solicitações de geofence devem ser feitas automaticamente. |
dismissModalOnOutsideTap |
booleano | Somente iOS. Se uma mensagem modal no app será descartada quando o usuário clicar fora da mensagem no app. |
androidHandlePushDeepLinksAutomatically |
booleano | Somente para Android. Se o SDK da Braze deve tratar automaticamente os deep links de push. |
androidPushNotificationHtmlRenderingEnabled |
booleano | Somente para Android. Define se o conteúdo do texto em uma notificação por push deve ser interpretado e renderizado como HTML usando android.text.Html.fromHtml. |
androidNotificationAccentColor |
string | Somente para Android. Define a cor de destaque da notificação do Android. |
androidNotificationLargeIcon |
string | Somente para Android. Define o ícone grande de notificação do Android. |
androidNotificationSmallIcon |
string | Somente para Android. Define o ícone pequeno de notificação do Android. |
iosRequestPushPermissionsAutomatically |
booleano | Somente iOS. Define se o usuário deve ser automaticamente solicitado a fornecer permissões push na inicialização do app. |
enableBrazeIosRichPush |
booleano | Somente iOS. Define se deve ativar recursos avançados de push para iOS. |
enableBrazeIosPushStories |
booleano | Somente iOS. Se deseja ativar os stories por push da Braze para iOS. |
iosPushStoryAppGroup |
string | Somente iOS. O grupo de app usado para o iOS Push Stories. |
Exemplo de configuração:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{
"expo": {
"plugins": [
[
"@braze/expo-plugin",
{
"androidApiKey": "YOUR-ANDROID-API-KEY",
"iosApiKey": "YOUR-IOS-API-KEY",
"baseUrl": "YOUR-SDK-ENDPOINT",
"sessionTimeout": 60,
"enableGeofence": false,
"enableBrazeIosPush": false,
"enableFirebaseCloudMessaging": false,
"firebaseCloudMessagingSenderId": "YOUR-FCM-SENDER-ID",
"androidHandlePushDeepLinksAutomatically": true,
"enableSdkAuthentication": false,
"logLevel": 0,
"minimumTriggerIntervalInSeconds": 0,
"enableAutomaticLocationCollection": false,
"enableAutomaticGeofenceRequests": false,
"dismissModalOnOutsideTap": true,
"androidPushNotificationHtmlRenderingEnabled": true,
"androidNotificationAccentColor": "#ff3344",
"androidNotificationLargeIcon": "@drawable/custom_app_large_icon",
"androidNotificationSmallIcon": "@drawable/custom_app_small_icon",
"iosRequestPushPermissionsAutomatically": false,
"enableBrazeIosPushStories": true,
"iosPushStoryAppGroup": "group.com.example.myapp.PushStories"
}
],
]
}
}
Etapa 2.3: Crie e execute seu aplicativo
A pré-construção de seu aplicativo gerará os arquivos nativos necessários para o funcionamento do plug-in Braze Expo.
1
npx expo prebuild
Execute seu aplicativo conforme especificado nos documentos da Expo. Lembre-se de que, se você fizer alguma alteração nas opções de configuração, será necessário fazer o pré-compilamento e executar o aplicativo novamente.
Etapa 2.1: Adicionar nosso repositório
Em seu projeto de nível superior build.gradle, adicione o seguinte em buildscript > dependencies:
1
2
3
4
5
6
7
buildscript {
dependencies {
...
// Choose your Kotlin version
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10")
}
}
Isso adicionará o Kotlin ao seu projeto.
Etapa 2.2: Configurar o SDK do Braze
Para se conectar aos servidores da Braze, crie um arquivo braze.xml na pasta res/values do projeto. Cole o código a seguir e substitua a chave de API e o ponto final por seus valores:
1
2
3
4
5
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string translatable="false" name="com_braze_api_key">YOU_APP_IDENTIFIER_API_KEY</string>
<string translatable="false" name="com_braze_custom_endpoint">YOUR_CUSTOM_ENDPOINT_OR_CLUSTER</string>
</resources>
Adicione as permissões necessárias ao seu arquivo AndroidManifest.xml:
1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
No Braze SDK versão 12.2.0 ou posterior, você pode obter automaticamente a biblioteca Android-sdk-location definindo importBrazeLocationLibrary=true em seu arquivo gradle.properties.
Etapa 2.3: Implemente o rastreamento da sessão do usuário
As chamadas para openSession() e closeSession() são tratadas automaticamente.
Adicione o seguinte código ao método onCreate() de sua classe MainApplication:
1
2
3
4
5
6
7
8
import com.braze.BrazeActivityLifecycleCallbackListener;
@Override
public void onCreate() {
super.onCreate();
...
registerActivityLifecycleCallbacks(new BrazeActivityLifecycleCallbackListener());
}
1
2
3
4
5
6
7
import com.braze.BrazeActivityLifecycleCallbackListener
override fun onCreate() {
super.onCreate()
...
registerActivityLifecycleCallbacks(BrazeActivityLifecycleCallbackListener())
}
Etapa 2.4: Lidar com atualizações de intenção
Se sua MainActivity tiver android:launchMode definido como singleTask, adicione o seguinte código à sua classe MainActivity:
1
2
3
4
5
@Override
public void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
1
2
3
4
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
setIntent(intent)
}
Etapa 2.1: (Opcional) Configurar o Podfile para XCFrameworks dinâmicos
Para importar determinadas bibliotecas da Braze, como a BrazeUI, em um arquivo Objective C++, você precisará usar a sintaxe #import. A partir da versão 7.4.0 do Braze Swift SDK, os binários têm um canal de distribuição opcional como XCFrameworks dinâmicos, que são compatíveis com essa sintaxe.
Se quiser usar esse canal de distribuição, substitua manualmente os locais de origem do CocoaPods em seu Podfile. Consulte o exemplo abaixo e substitua {your-version} pela versão relevante que você deseja importar:
1
2
3
pod 'BrazeKit', :podspec => 'https://raw.githubusercontent.com/braze-inc/braze-swift-sdk-prebuilt-dynamic/{your-version}/BrazeKit.podspec'
pod 'BrazeUI', :podspec => 'https://raw.githubusercontent.com/braze-inc/braze-swift-sdk-prebuilt-dynamic/{your-version}/BrazeUI.podspec'
pod 'BrazeLocation', :podspec => 'https://raw.githubusercontent.com/braze-inc/braze-swift-sdk-prebuilt-dynamic/{your-version}/BrazeLocation.podspec'
Etapa 2.2: Instalar pods
Como o React Native vincula automaticamente as bibliotecas à plataforma nativa, você pode instalar o SDK com a ajuda do CocoaPods.
Na pasta raiz do projeto:
1
2
3
4
5
# To install using the React Native New Architecture
cd ios && pod install
# To install using the React Native legacy architecture
cd ios && RCT_NEW_ARCH_ENABLED=0 pod install
Etapa 2.3: Configurar o SDK do Braze
Importe o SDK da Braze na parte superior do arquivo AppDelegate.swift:
1
import BrazeKit
No método application(_:didFinishLaunchingWithOptions:), substitua a chave de API e o endpoint pelos valores de seu app. Em seguida, crie a instância da Braze usando a configuração e crie uma propriedade estática em AppDelegate para facilitar o acesso:
Nosso exemplo pressupõe uma implementação do RCTAppDelegate, que fornece várias abstrações na configuração do React Native. Se estiver usando uma configuração diferente para seu app, certifique-se de ajustar sua implementação conforme necessário.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
// Setup Braze
let configuration = Braze.Configuration(
apiKey: "{BRAZE_API_KEY}",
endpoint: "{BRAZE_ENDPOINT}")
// Enable logging and customize the configuration here.
configuration.logger.level = .info
let braze = BrazeReactBridge.perform(
#selector(BrazeReactBridge.initBraze(_:)),
with: configuration
).takeUnretainedValue() as! Braze
AppDelegate.braze = braze
/* Other configuration */
return true
}
// MARK: - AppDelegate.braze
static var braze: Braze? = nil
Importe o SDK da Braze na parte superior do arquivo AppDelegate.m:
1
2
#import <BrazeKit/BrazeKit-Swift.h>
#import "BrazeReactBridge.h"
No método application:didFinishLaunchingWithOptions:, substitua a chave de API e o endpoint pelos valores de seu app. Em seguida, crie a instância da Braze usando a configuração e crie uma propriedade estática em AppDelegate para facilitar o acesso:
Nosso exemplo pressupõe uma implementação do RCTAppDelegate, que fornece várias abstrações na configuração do React Native. Se estiver usando uma configuração diferente para seu app, certifique-se de ajustar sua implementação conforme necessário.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Setup Braze
BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:@"{BRAZE_API_KEY}"
endpoint:@"{BRAZE_ENDPOINT}"];
// Enable logging and customize the configuration here.
configuration.logger.level = BRZLoggerLevelInfo;
Braze *braze = [BrazeReactBridge initBraze:configuration];
AppDelegate.braze = braze;
/* Other configuration */
return YES;
}
#pragma mark - AppDelegate.braze
static Braze *_braze = nil;
+ (Braze *)braze {
return _braze;
}
+ (void)setBraze:(Braze *)braze {
_braze = braze;
}
Etapa 3: Importar a biblioteca
Em seguida, import a biblioteca em seu código do React Native. Para obter mais detalhes, confira nosso projeto de amostra.
1
import Braze from "@braze/react-native-sdk";
Etapa 4: Teste a integração (opcional)
Para testar a integração do SDK, inicie uma nova sessão em qualquer plataforma para um usuário chamando o seguinte código em seu app.
1
Braze.changeUser("userId");
Por exemplo, é possível atribuir o ID do usuário na inicialização do app:
1
2
3
4
5
6
7
8
9
10
11
12
13
import React, { useEffect } from "react";
import Braze from "@braze/react-native-sdk";
const App = () => {
useEffect(() => {
Braze.changeUser("some-user-id");
}, []);
return (
<div>
...
</div>
)
No dashboard do Braze, acesse User Search e procure o usuário com o ID correspondente a some-user-id. Aqui, é possível verificar se os dados da sessão e do dispositivo foram registrados.
Integrando o Roku SDK
Etapa 1: Adicionar arquivos
Os arquivos do SDK da Braze podem ser encontrados no diretório sdk_files no repositório Braze Roku SDK.
- Adicione
BrazeSDK.brsao seu app no diretóriosource. - Adicione
BrazeTask.brseBrazeTask.xmlao seu app no diretóriocomponents.
Etapa 2: Adicionar referências
Adicione uma referência a BrazeSDK.brs em sua cena principal usando o seguinte elemento script:
1
<script type="text/brightscript" uri="pkg:/source/BrazeSDK.brs"/>
Etapa 3: Configurar
Dentro de main.brs, defina a configuração da Braze no nó global:
1
2
3
4
5
6
7
8
globalNode = screen.getGlobalNode()
config = {}
config_fields = BrazeConstants().BRAZE_CONFIG_FIELDS
config[config_fields.API_KEY] = {YOUR_API_KEY}
' example endpoint: "https://sdk.iad-01.braze.com/"
config[config_fields.ENDPOINT] = {YOUR_ENDPOINT}
config[config_fields.HEARTBEAT_FREQ_IN_SECONDS] = 5
globalNode.addFields({brazeConfig: config})
Você pode encontrar seu endpoint de SDK e chave de API no dashboard da Braze.
Etapa 4: Inicializar Braze
Inicialize a instância Braze:
1
2
m.BrazeTask = createObject("roSGNode", "BrazeTask")
m.Braze = getBrazeInstance(m.BrazeTask)
Configurações opcionais
Registro
Para depurar sua integração com a Braze, você pode visualizar o console de depuração do Roku para logs da Braze. Consulte Depuração de código dos desenvolvedores do Roku para saber mais.
Sobre o SDK do Unity Braze
Para obter uma lista completa de tipos, funções, variáveis e muito mais, consulte Arquivo de declaração do Unity. Além disso, se você já tiver integrado o Unity manualmente para iOS, poderá mudar para uma integração automatizada.
Integração do SDK da Unity
Pré-requisitos
Antes de começar, verifique se seu ambiente é suportado pela versão mais recente do Braze Unity SDK.
Etapa 1: Escolha seu pacote Braze Unity
O .unitypackage da Braze agrupa associações nativas para as plataformas Android e iOS, juntamente com uma interface C#.
Há vários pacotes do Braze Unity disponíveis para baixar na página de lançamentos do Braze Unity:
Appboy.unitypackage- Esse pacote reúne os SDKs do Braze para Android e iOS e a dependência SDWebImage para o SDK do iOS, que é necessária para a funcionalidade adequada dos recursos de envio de mensagens no app e cartões de conteúdo do Braze no iOS. O framework SDWebImage é usado para baixar e exibir imagens, inclusive GIFs. Se você pretende utilizar toda a funcionalidade da Braze, baixe e importe esse pacote.
Appboy-nodeps.unitypackage- Esse pacote é semelhante a
Appboy.unitypackage, exceto pelo fato de que o framework SDWebImage não está presente. Esse pacote é útil se você não quiser que o framework SDWebImage esteja presente em seu app para iOS.
- Esse pacote é semelhante a
A partir do Unity 2.6.0, o artefato agrupado do Braze Android SDK requer dependências do AndroidX. Se você estava usando um jetified unitypackage, faça a transição com segurança para o unitypackage correspondente.
O .unitypackage da Braze agrupa associações nativas para as plataformas Android e iOS, juntamente com uma interface C#.
O pacote Braze Unity está disponível para download na página de lançamentos do Braze Unity com duas opções de integração:
- Apenas
Appboy.unitypackage- Este pacote inclui os SDKs da Braze para Android e iOS sem nenhuma outra dependência. Com este método de integração, não haverá funcionalidade adequada do envio de mensagens in-app da Braze e dos recursos de Content Cards no iOS. Se você pretende utilizar a funcionalidade completa do Braze sem código personalizado, use a opção abaixo.
- Para usar essa opção de integração, desmarque a opção
Import SDWebImage dependencyna interface do Unity em “Braze Configuration” (Configuração da Braze).
Appboy.unitypackagecomSDWebImage- Essa opção de integração agrupa os SDKs da Braze para Android e iOS e a dependência SDWebImage para o SDK iOS, que é necessária para o funcionamento adequado do envio de mensagens no app da Braze e dos recursos de cartões de conteúdo no iOS. O framework
SDWebImageé usado para baixar e exibir imagens, inclusive GIFs. Se você pretende utilizar toda a funcionalidade da Braze, baixe e importe esse pacote. - Para importar automaticamente
SDWebImage, marque a opçãoImport SDWebImage dependencyna interface do Unity em “Braze Configuration” (Configuração da Braze).
- Essa opção de integração agrupa os SDKs da Braze para Android e iOS e a dependência SDWebImage para o SDK iOS, que é necessária para o funcionamento adequado do envio de mensagens no app da Braze e dos recursos de cartões de conteúdo no iOS. O framework
Para ver se você precisa da dependência SDWebImage para seu projeto iOS, visite a documentação da mensagem no app do iOS.
Etapa 2: Importar o pacote
No Unity Editor, importe o pacote em seu projeto Unity navegando até Assets > Import Package > Custom Package (Ativos > Importar pacote > Pacote personalizado). Em seguida, clique em Importar.
Como alternativa, siga as instruções de importação de pacotes de ativos do Unity para obter mais detalhes sobre a importação de pacotes personalizados do Unity.
Para importar apenas o plug-in para iOS ou Android, desmarque o subdiretório Plugins/Android ou Plugins/iOS ao importar o .unitypackage da Braze.
No Unity Editor, importe o pacote em seu projeto Unity navegando até Assets > Import Package > Custom Package (Ativos > Importar pacote > Pacote personalizado). Em seguida, clique em Importar.
Como alternativa, siga as instruções de importação de pacotes de ativos do Unity para obter mais detalhes sobre a importação de pacotes personalizados do Unity.
Para importar apenas o plug-in para iOS ou Android, desmarque o subdiretório Plugins/Android ou Plugins/iOS ao importar o .unitypackage da Braze.
Etapa 3: Configurar o SDK
Etapa 3.1: Configurar AndroidManifest.xml
To fullo AndroidManifest.xml funcionar. Se o seu app não tiver um AndroidManifest.xml, você poderá usar o seguinte modelo. Caso contrário, se você já tiver um AndroidManifest.xml, confira se falta alguma das seções a seguir e adicione-as ao seu AndroidManifest.xml existente.
- Acesse o diretório
Assets/Plugins/Android/e abra o arquivoAndroidManifest.xml. Esse é o local padrão no Unity Editor. - Em seu site
AndroidManifest.xml, adicione as permissões e atividades necessárias do modelo a seguir. - Quando terminar, o site
AndroidManifest.xmldeverá conter apenas uma Activity com"android.intent.category.LAUNCHER"presente.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="REPLACE_WITH_YOUR_PACKAGE_NAME">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:icon="@drawable/app_icon"
android:label="@string/app_name">
<!-- Calls the necessary Braze methods to ensure that analytics are collected and that push notifications are properly forwarded to the Unity application. -->
<activity android:name="com.braze.unity.BrazeUnityPlayerActivity"
android:theme="@style/UnityThemeSelector"
android:label="@string/app_name"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
android:screenOrientation="sensor">
<meta-data android:name="android.app.lib_name" android:value="unity" />
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- A Braze specific FirebaseMessagingService used to handle push notifications. -->
<service android:name="com.braze.push.BrazeFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
</application>
</manifest>
Todas as classes de atividade registradas no seu arquivo AndroidManifest.xml devem ser totalmente integradas ao Braze Android SDK, caso contrário, a análise de dados não será coletada. Se você adicionar sua própria classe Activity, certifique-se de estender o player do Braze Unity para evitar isso.
Etapa 3.2: Atualize AndroidManifest.xml com o nome do seu pacote
Para encontrar o nome do pacote, clique em File > Build Settings > Player Settings > guia Android (Arquivo > Configurações da versão > Configurações do player > guia Android).

Em seu AndroidManifest.xml, todas as instâncias de REPLACE_WITH_YOUR_PACKAGE_NAME devem ser substituídas pelo Package Name da etapa anterior.
Etapa 3.3: Adicionar dependências do gradle
Para adicionar dependências do Gradle ao seu projeto Unity, primeiro ative a opção “Custom Main Gradle Template” em suas configurações de publicação. Isso criará um arquivo gradle modelo que será usado em seu projeto. Um arquivo gradle lida com as dependências de configuração e outras configurações de projeto durante o desenvolvimento. Para saber mais, consulte o aplicativo de amostra do Braze Unity mainTemplate.gradle.
As seguintes dependências são necessárias:
1
2
3
4
5
6
implementation 'com.google.firebase:firebase-messaging:22.0.0'
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
implementation "androidx.recyclerview:recyclerview:1.2.1"
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.6.0"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1"
implementation 'androidx.core:core:1.6.0'
Você também pode definir essas dependências usando o External Dependency Manager.
Etapa 3.4: Automatize a integração do Unity com o Android
A Braze oferece uma solução nativa do Unity para automatizar a integração do Unity com o Android.
- No Unity Editor, abra as configurações da Braze em Braze > Braze Configuration (Braze > Configuração da Braze).
- Marque a caixa Automate Unity Android Integration (Automatizar a integração do Unity com o Android ).
- No campo Braze API Key (Chave de API do Braze ), insira a chave de API de seu aplicativo encontrada em Manage Settings (Gerenciar configurações) no dashboard do Braze.
Essa integração automática não deve ser usada com um arquivo braze.xml criado manualmente, pois os valores de configuração podem entrar em conflito durante a criação do projeto. Se precisar de um braze.xml manual, desative a integração automática.
Etapa 3.1: Defina sua chave de API
A Braze oferece uma solução nativa do Unity para automatizar a integração do Unity com o iOS. Essa solução modifica o projeto do Xcode usando o PostProcessBuildAttribute e as subclasses UnityAppController do Unity que utilizam a macro IMPL_APP_CONTROLLER_SUBCLASS.
- No Unity Editor, abra as configurações da Braze em Braze > Braze Configuration (Braze > Configuração da Braze).
- Marque a opção Automate Unity iOS Integration (Automatizar a integração do Unity com iOS).
- No campo Braze API Key (Chave da API da Braze), insira a chave de API do seu app que está disponível em Gerenciar configurações.

Se o seu app já estiver usando outra subclasse UnityAppController, será necessário mesclar a implementação da sua subclasse com AppboyAppDelegate.mm.
Personalização do pacote Unity
Etapa 1: Clonar o repositório
Em seu terminal, clone o repositório do Braze Unity SDK no GitHub e, em seguida, navegue até essa pasta:
1
2
git clone [email protected]:braze-inc/braze-unity-sdk.git
cd ~/PATH/TO/DIRECTORY/braze-unity-sdk
1
2
git clone git@github.com:braze-inc/braze-unity-sdk.git
cd C:\PATH\TO\DIRECTORY\braze-unity-sdk
Etapa 2: Exportar pacote do repositório
Primeiro, inicie o Unity e mantenha-o em execução em segundo plano. Em seguida, na raiz do repositório, execute o seguinte comando para exportar o pacote para braze-unity-sdk/unity-package/.
1
/Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -nographics -projectPath "$(pwd)" -executeMethod Appboy.Editor.Build.ExportAllPackages -quit
1
"%UNITY_PATH%" -batchmode -nographics -projectPath "%PROJECT_ROOT%" -executeMethod Appboy.Editor.Build.ExportAllPackages -quit
Se você tiver algum problema após executar esses comandos, consulte Unity: Argumentos de linha de comando.
Etapa 3: Importar pacote para o Unity
- No Unity, importe o pacote desejado para seu projeto Unity navegando até Ativos > Importar pacote > Pacote personalizado.
- Se houver algum arquivo que você não queira importar, desmarque-o agora.
- Personalize o pacote Unity exportado, localizado em
Assets/Editor/Build.cs.
Mudar para uma integração automatizada (somente Swift)
Para aproveitar a integração automatizada do iOS oferecida no SDK do Braze Unity, siga estas etapas para fazer a transição de uma integração manual para uma automatizada.
- Remova todo o código relacionado à Braze da subclasse
UnityAppControllerde seu projeto do Xcode. - Remova as bibliotecas do Braze para iOS de seu projeto Unity ou Xcode (como
Appboy_iOS_SDK.frameworkeSDWebImage.framework). - Importe o pacote Braze Unity em seu projeto novamente. Para obter um passo a passo completo, consulte Etapa 2: Importe o pacote.
- Defina sua chave de API novamente. Para obter um passo a passo completo, consulte Etapa 3.1: Defina sua chave de API.
Configurações opcionais
Registro detalhado
Para ativar o registro detalhado no Unity Editor, faça o seguinte:
- Abra Configurações da Braze navegando até Braze > Configuração da Braze.
- Clique no menu suspenso Show Braze Android Settings (Mostrar configurações do Android Braze ).
- No campo Nível de registro do SDK, insira o valor “0”.
Compatibilidade com o Prime 31
Para usar o plug-in Braze Unity com os plug-ins Prime31, edite o site AndroidManifest.xml de seu projeto para usar as classes Activity compatíveis com o Prime31. Altere todas as referências de
de com.braze.unity.BrazeUnityPlayerActivity para com.braze.unity.prime31compatible.BrazeUnityPlayerActivity
Envio de mensagens para dispositivos da Amazon (ADM)
O Braze oferece suporte à integração do ADM push em apps Unity. Se quiser integrar o ADM push, crie um arquivo chamado api_key.txt contendo sua chave de API do ADM e coloque-o na pasta Plugins/Android/assets/. Para saber mais sobre a integração do ADM com o Braze, acesse nossas instruções de integração push do ADM.
Ampliação do reprodutor Braze Unity (somente Android)
O arquivo de exemplo AndroidManifest.xml fornecido tem uma classe Activity registrada, BrazeUnityPlayerActivity. Essa classe é integrada ao SDK da Braze e estende o site UnityPlayerActivity com manipulação de sessão, registro de mensagens no app, registro de análise de dados de notificação por push e muito mais. Para saber mais sobre como estender a classe UnityPlayerActivity, consulte Unity.
Se estiver criando seu próprio UnityPlayerActivity personalizado em uma biblioteca ou projeto de plug-in, será necessário estender nosso BrazeUnityPlayerActivity para integrar sua funcionalidade personalizada ao Braze. Antes de começar a trabalhar na extensão do site BrazeUnityPlayerActivity, siga nossas instruções para integrar a Braze em seu projeto Unity.
- Adicione o Braze Android SDK como uma dependência de sua biblioteca ou projeto de plug-in, conforme descrito nas instruções de integração do Braze Android SDK.
- Integre nosso Unity
.aar, que contém nossa funcionalidade específica do Unity, ao seu projeto de biblioteca Android que está sendo desenvolvido para o Unity. O siteappboy-unity.aarestá disponível em nosso repositório público. Depois que nossa biblioteca Unity for integrada com sucesso, modifique seu siteUnityPlayerActivitypara estender oBrazeUnityPlayerActivity. - Exporte sua biblioteca ou projeto de plug-in e solte-o em
/<your-project>/Assets/Plugins/Androidnormalmente. Não inclua nenhum código-fonte da Braze em sua biblioteca ou plug-in, pois eles já estarão presentes em/<your-project>/Assets/Plugins/Android. - Edite o site
/<your-project>/Assets/Plugins/Android/AndroidManifest.xmlpara especificar a subclasseBrazeUnityPlayerActivitycomo a atividade principal.
Agora, você poderá empacotar um .apk do Unity IDE totalmente integrado à Braze e que contenha sua funcionalidade personalizada do UnityPlayerActivity.
Solução de problemas
Erro: “O arquivo não pôde ser lido”
Os erros semelhantes aos seguintes podem ser ignorados com segurança. O software da Apple usa uma extensão PNG proprietária chamada CgBI, que a Unity não reconhece. Esses erros não afetarão sua compilação do iOS nem a exibição adequada das imagens associadas no pacote Braze.
1
Could not create texture from Assets/Plugins/iOS/AppboyKit/Appboy.bundle/...png: File could not be read
Sobre o SDK do Unreal Engine Braze
Com o plug-in Braze Unreal SDK, você pode:
- Meça e rastreie sessões em seu app ou jogo
- Rastreamento de compras no aplicativo e eventos personalizados
- Atualizar perfis de usuário com atributos padrão e personalizados
- Enviar notificações por push
- Integre seus apps Unreal com jornadas maiores do Canva
- Envie mensagens entre canais, como e-mail ou SMS, com base no comportamento no app
Integração do Unreal Engine SDK
Etapa 1: Adicionar o plug-in Braze
Em seu terminal, clone o repositório do GitHub do Unreal Engine Braze SDK.
1
git clone [email protected]:braze-inc/braze-unreal-sdk.git
Em seguida, copie o diretório BrazeSample/Plugins/Braze e adicione-o à pasta Plugin de seu app.
Etapa 2: Ativar o plug-in
Ative o plug-in para seu projeto C++ ou Blueprint.
Para projetos C++, configure seu módulo para fazer referência ao módulo Braze. Em seu \*.Build.cs file, adicione "Braze" ao seu PublicDependencyModuleNames.
1
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "Braze" });
Para projetos Blueprint, acesse Settings > Plugins e, ao lado de Braze, marque Ativado.

Etapa 3: Defina sua chave de API e seu ponto de extremidade
Defina a chave de API e o ponto de extremidade no site DefaultEngine.ini. de seu projeto.
1
2
3
4
5
[/Script/Braze.BrazeConfig]
bAutoInitialize=True ; true by default, initialize when the project starts
AndroidApiKey= ; your API key
IOSApiKey= ; your API key
CustomEndpoint= ; your endpoint
Para projetos com direcionamento para o Android SDK 31+, a Unreal gerará compilações que falharão durante a instalação em dispositivos Android 12+ com o erro INSTALL_PARSE_FAILED_MANIFEST_MALFORMED. Para corrigir isso, localize o arquivo de patch git UE4_Engine_AndroidSDK_31_Build_Fix.patch na raiz deste repositório e aplique-o à compilação de código-fonte do Unreal.
Etapa 4: Inicializar manualmente o SDK (opcional)
Por padrão, o SDK é inicializado automaticamente no lançamento. Se desejar ter mais controle sobre a inicialização (como aguardar o consentimento do usuário ou definir o nível de registro), poderá desativar o AutoInitialize no seu DefaultEngine.ini e inicializar manualmente no C++ ou no Blueprint.
Em C++ nativo, acesse o BrazeSubsystem e chame InitializeBraze() passando a ele, opcionalmente, um Config para substituir as configurações de Engine.ini.
1
2
UBrazeSubsystem* const BrazeSubsystem = GEngine->GetEngineSubsystem<UBrazeSubsystem>();
UBraze* const BrazeInstance = BrazeSubsystem->InitializeBraze();
No Blueprint, as mesmas funções podem ser acessadas como nós do Blueprint:
Use o nó GetBrazeSubsystem para chamar seu nó Initialize.
Um objeto BrazeConfig pode ser criado opcionalmente no Blueprint e passado para Initialize

Configurações opcionais
Registro
É possível definir o nível de registro em tempo de execução usando C++ ou em um nó do Blueprint.
Para definir o nível de registro em tempo de execução, chame UBrazeSubsystem::AndroidSetLogLevel.
1
2
3
UBrazeSubsystem* const BrazeSubsystem = GEngine->GetEngineSubsystem<UBrazeSubsystem>();
BrazeSubsystem->AndroidSetLogLevel(EBrazeLogLevel::Verbose);
UBraze* const BrazeInstance = BrazeSubsystem->InitializeBraze();
No Blueprint, você pode usar o nó Android Set Log Level:

Para garantir que o registro seja definido quando o Braze SDK Initialize for chamado, é recomendável chamá-lo antes de InitializeBraze.
Para ativar o nível de registro no site info.plist, vá para Settings > Project Settings e selecione iOS em Platforms. Em Extra PList Data, localize Additional Plist Data e insira seu nível de registro:
1
2
3
4
5
<key>Appboy</key>
<dict>
<key>LogLevel</key>
<string>0</string>
</dict>
O nível de registro padrão é 8, que é o registro mínimo. Leia mais sobre os níveis de registro: Outras personalizações do SDK
Integrating the Xamarin SDK
Integrating the Braze Xamarin SDK will provide you with basic analytics functionality as well as working in-app messages with which you can engage your users.
Prerequisites
Before you can integrate the Xamarin Braze SDK, be sure you meet the following requirements:
- Starting in
version 3.0.0, this SDK requires using .NET 6+ and removes support for projects using the Xamarin framework. - Starting in
version 4.0.0, this SDK dropped support for Xamarin & Xamarin.Forms and added support for .NET MAUI. See Microsoft’s policy around the end of support for Xamarin.
Step 1: Get the Xamarin binding
A Xamarin binding is a way to use native libraries in Xamarin apps. The implementation of a binding consists of building a C# interface to the library, and then using that interface in your application. See the Xamarin documentation. There are two ways to include the Braze SDK binding: using NuGet or compiling from source.
The simplest integration method involves getting the Braze SDK from the NuGet.org central repository. In the Visual Studio sidebar, right click Packages folder and click Add Packages.... Search for ‘Braze’ and install the BrazePlatform.BrazeAndroidBinding package into your project.
The second integration method is to include the binding source. Under appboy-component/src/androidnet6 you will find our binding source code; adding a project reference to the BrazeAndroidBinding.csproj in your Xamarin application will cause the binding to be built with your project and provide you access to the Braze Android SDK.
The iOS bindings for Xamarin SDK version 4.0.0 and later use the Braze Swift SDK, while previous versions use the legacy AppboyKit SDK.
A Xamarin binding is a way to use native libraries in Xamarin apps. The implementation of a binding consists of building a C# interface to the library and then using that interface in your application. There are two ways to include the Braze SDK binding: using NuGet or compiling from source.
The simplest integration method involves getting the Braze SDK from the NuGet.org central repository. In the Visual Studio sidebar, right-click Packages folder and click Add Packages.... Search for ‘Braze’ and install the latest Xamarin iOS NuGet packages: Braze.iOS.BrazeKit, Braze.iOS.BrazeUI, and Braze.iOS.BrazeLocation into your project.
We also provide the compatibility libraries packages: Braze.iOS.BrazeKitCompat and Braze.iOS.BrazeUICompat, to help make your migration to .NET MAUI easier.
The second integration method is to include the binding source. Under appboy-component/src/iosnet6 you will find our binding source code; adding a project reference to the BrazeiOSBinding.csproj in your Xamarin application will cause the binding to be built with your project and provide you access to the Braze iOS SDK. Make sure BrazeiOSBinding.csproj is showing in your project’s “Reference” folder.
Step 2: Configure your Braze instance
Step 2.1: Configure the Braze SDK in Braze.xml
Now that the libraries have been integrated, you have to create an Braze.xml file in your project’s Resources/values folder. The contents of that file should resemble the following code snippet:
Be sure to substitute YOUR_API_KEY with the API key located at Settings > API Keys in the Braze dashboard.
If you are using the older navigation, you can find API keys at Developer Console > API Settings..
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string translatable="false" name="com_braze_api_key">YOUR_API_KEY</string>
<string translatable="false" name="com_braze_custom_endpoint">YOUR_CUSTOM_ENDPOINT_OR_CLUSTER</string>
<string-array name="com_braze_internal_sdk_metadata">
<item>XAMARIN</item>
<item>NUGET</item>
</string-array>
</resources>
If you are including the binding source manually, remove <item>NUGET</item> from your code.
To see an example Braze.xml, check out our Android MAUI sample app.
Step 2.2: Add required permissions to Android manifest
Now that you’ve added your API key, you need to add the following permissions to your AndroidManifest.xml file:
1
<uses-permission android:name="android.permission.INTERNET" />
For an example of your AndroidManifest.xml, see the Android MAUI sample application.
Step 2.3: Track user sessions and registering for in-app messages
To enable user session tracking and register your app for in-app messages, add the following call to the OnCreate() lifecycle method of the Application class in your app:
1
RegisterActivityLifecycleCallbacks(new BrazeActivityLifecycleCallbackListener());
When setting up your Braze instance, add the following snippet to configure your instance:
Be sure to substitute YOUR_API_KEY with the API key located at Settings > API Keys in the Braze dashboard.
If you are using the older navigation, you can find API keys at Developer Console > API Settings..
1
2
3
var configuration = new BRZConfiguration("YOUR_API_KEY", "YOUR_ENDPOINT");
configuration.Api.AddSDKMetadata(new[] { BRZSDKMetadata.Xamarin });
braze = new Braze(configuration);
See the App.xaml.cs file in the iOS MAUI sample application.
Step 3: Test the integration
Now you can launch your application and see sessions being logged to the Braze dashboard (along with device information and other analytics). For a more in-depth discussion of best practices for the basic SDK integration, consult the Android integration instructions.
Now you can launch your application and see sessions being logged to the Braze dashboard. For a more in-depth discussion of best practices for the basic SDK integration, consult the iOS integration instructions.
Our current public Xamarin binding for the iOS SDK does not connect to the iOS Facebook SDK (linking social data) and does not include sending the IDFA to Braze.
Ao realizar o controle de qualidade na integração do SDK, use o depurador do SDK para solucionar problemas sem ativar o registro detalhado do seu aplicativo.
Editar esta página no GitHub