Braze SDKの統合
Braze SDKをモバイルアプリに統合する方法を学習。各SDKは、独自のGitHub公開リポジトリでホストされており、Brazeの機能をテストしたり、独自のアプリケーションと一緒に実装したりするために使用できる、完全にビルド可能なサンプルアプリが含まれている。詳しくは、参照資料、リポジトリ、サンプルアプリを参照してください。SDK に関する一般的な情報については、[はじめに] を参照してください。統合の概要](/docs/ja/developer_guide/getting_started/integration_overview/)。
Web Braze SDKについて
Web Braze SDKを使用すると、分析を収集し、リッチなアプリ内メッセージ、プッシュ、コンテンツカードメッセージをWebユーザーに表示することができます。詳しくは、Braze JavaScriptリファレンスドキュメントを参照のこと。
このガイドでは、Braze Web SDK 4.0.0+ のコードサンプルを使用します。最新の Web SDK バージョンにアップグレードするには、SDK アップグレードガイドを参照してください。
Web SDKを統合する
以下の方法でWeb Braze SDKを統合することができる。その他のオプションについては、他の統合方法を参照のこと。
- コードベースの統合:お好みのパッケージマネージャーまたはBraze CDNを使用して、Web Braze SDKをコードベースに直接統合する。これにより、SDKの読み込まれ方とコンフィギュレーションを完全にコントロールできるようになる。
- Google タグマネージャー:サイトのコードを変更することなく、Web Braze SDKを統合できるコード不要のソリューション。詳しくは、Google Tag Manager with Braze SDKを参照。
ステップ 1: Brazeライブラリをインストールする
Brazeライブラリは、以下のいずれかの方法でインストールできます。しかし、あなたのWebサイトがContent-Security-Policy 、続ける前にコンテンツセキュリティポリシーを確認する。
ほとんどの広告ブロッカーはBraze Web SDKをブロックしないが、一部の制限の厳しい広告ブロッカーは問題を引き起こすことが知られている。
あなたのサイトがNPMまたはYarnパッケージマネージャを使用している場合、依存関係としてBraze NPMパッケージを追加することができます。
v3.0.0 からタイプスクリプトの定義が含まれるようになりました。2.x から 3.x へのアップグレードに関する注意事項については、changelog を参照してください。
1
2
3
npm install --save @braze/web-sdk
# or, using yarn:
# yarn add @braze/web-sdk
インストール後は、通常の方法でライブラリを import または require できます。
1
2
3
import * as braze from "@braze/web-sdk";
// or, using `require`
const braze = require("@braze/web-sdk");
Braze Web SDKをHTMLに直接追加するには、当社のCDNホストスクリプトを参照し、ライブラリを非同期で読み込みます。
ステップ2:SDK の初期化
Braze Web SDKがWebサイトに追加されたら、Brazeダッシュボード内の設定>アプリ設定にあるAPIキーとSDKエンドポイントURLを使って、ライブラリを初期化する。他のJavaScriptメソッドと共に、braze.initialize() のオプションの完全なリストについては、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();
モバイルデバイスまたは Web デバイスの匿名ユーザーは、MAU にカウントされる場合があります。その結果、これらのユーザーをMAUカウントから除外するために、条件付きでSDKをロードするか、初期化したい場合があります。
前提条件
この統合方法を使う前に、Googleタグマネージャーのアカウントとコンテナを作成する必要がある。
ステップ 1: タグテンプレートギャラリーを開封する
Googleタグマネージャーで、ワークスペースを選択し、テンプレートを選択する。タグテンプレートペインで、ギャラリーを検索を選択する。

ステップ 2:初期化タグのテンプレートを追加する
テンプレートギャラリーで、braze-inc を検索し、Braze Initialization Tagを選択する。

Add to workspace>Addを選択する。

ステップ 3:タグを設定する
テンプレート・セクションから、新しく追加したテンプレートを選択する。

鉛筆のアイコンを選択し、タグ設定のドロップダウンを開封する。

最低限必要な情報を入力する:
| フィールド | 説明 |
|---|---|
| API キー | Brazeダッシュボードの「設定」>「アプリ設定」にあるAPIキー。 |
| API エンドポイント | RESTエンドポイントのURL。エンドポイントは、インスタンスのBraze URLによって異なります。 |
| SDK バージョン | 変更履歴に記載されているWeb Braze SDKの最新のMAJOR.MINOR 。たとえば、最新バージョンが4.1.2 の場合、4.1 と入力します。詳しくは、SDKのバージョン管理についてを参照のこと。 |
追加の初期化設定については、Braze Initialization Optionsを選択し、必要なオプションを選択する。

ステップ 4: すべてのページでトリガーに設定する
初期化タグは、サイトのすべてのページで実行する必要がある。これにより、Braze SDKのメソッドを使用し、Webプッシュ分析を記録することができる。
ステップ 5: 統合を確認する
以下のいずれかのオプションを使用して、統合を検証することができる:
- オプション 1:Googleタグマネージャーのデバッグツールを使って、設定したページやイベントでBraze初期化タグが正しくトリガーされているか確認できる。
- オプション 2:WebページからBrazeへのネットワークリクエストをチェックする。さらに、グローバルな
window.brazeライブラリーを定義する必要がある。
オプション構成
ロギング
ロギングをすばやく有効にするには、?brazeLogging=true をパラメーターとして Web サイト URL に追加します。あるいは、基本ロギングまたはカスタム・ロギングを有効にすることもできます。
基本的なロギング
enableLogging 、SDKが初期化される前にJavaScriptコンソールに基本的なデバッグメッセージを記録する。
1
enableLogging: true
メソッドは次のようになるはずです。
1
2
3
4
5
braze.initialize('API-KEY', {
baseUrl: 'API-ENDPOINT',
enableLogging: true
});
braze.openSession();
SDKが初期化された後、JavaScriptコンソールに基本的なデバッグメッセージを記録するには、braze.toggleLogging() を使用する。メソッドは次のようになるはずです。
1
2
3
4
5
6
braze.initialize('API-KEY', {
baseUrl: 'API-ENDPOINT',
});
braze.openSession();
...
braze.toggleLogging();
基本ログはすべてのユーザーに表示されるため、コードを本番環境にリリースする前に、無効にすることを検討するか、setLogger に切り替えてください。
カスタムロギング
setLogger を使って、カスタムデバッグメッセージをJavaScriptコンソールに記録する。基本ログとは異なり、これらのログはユーザーには見えません。
1
setLogger(loggerFunction: (message: STRING) => void): void
STRING を1つの文字列パラメーターとしてメッセージに置き換えます。メソッドは次のようになるはずです。
1
2
3
4
5
braze.initialize('API-KEY');
braze.setLogger(function(message) {
console.log("Braze Custom Logger: " + message);
});
braze.openSession();
SDKをアップグレードする
このガイドでは、Braze Web SDK 4.0.0+ のコードサンプルを使用します。最新の Web SDK バージョンにアップグレードするには、SDK アップグレードガイドを参照してください。
Braze Web SDKを当社のコンテンツデリバリーネットワーク、例えばhttps://js.appboycdn.com/web-sdk/a.a/braze.min.js (当社のデフォルトの統合手順で推奨されている)から参照すると、ユーザーがサイトを更新したときに、マイナーアップデート(バグフィックスと下位互換機能、上記の例ではバージョンa.a.a ~a.a.z )を自動的に受け取ることができます。
ただし、弊社が大きな変更をリリースする際には、変更点がお客様の統合に影響しないように、Braze Web SDKを手動でアップグレードしていただく必要があります。さらに、当社のSDKをダウンロードして自分でホスティングする場合、バージョン・アップデートを自動的に受け取ることはできないので、最新の機能やバグ修正を受け取るには手動でアップグレードする必要があります。
RSS Reader または任意のサービスを使用して、リリースフィードに従って最新のリリースを取得できます。また、Web SDK のリリース履歴の詳細については、変更ログを参照してください。Braze Web SDKをアップグレードします:
- バージョン番号
https://js.appboycdn.com/web-sdk/[OLD VERSION NUMBER]/braze.min.jsを変更するか、パッケージマネージャーの依存関係で、Braze ライブラリのバージョンを更新します。 - Web プッシュが統合されている場合は、サイトのサービスワーカーファイルを更新します。デフォルトでは、このファイルはサイトのルートディレクトリの
/service-worker.jsにありますが、統合によっては場所がカスタマイズされている場合があります。サービスワーカーファイルをホストするには、ルートディレクトリにアクセスしなければなりません。
適切に機能させるためには、これら2つのファイルを連携させて更新する必要がある。
その他の統合方法
アクセラレイテッド・モバイル・ページ(AMP)
See more
ステップ 1: AMP Web プッシュスクリプトを含める
次の非同期スクリプトタグをヘッドに追加します:
1
<script async custom-element="amp-web-push" src="https://cdn.ampproject.org/v0/amp-web-push-0.1.js"></script>
ステップ 2:サブスクリプション・ウィジェットを追加する
HTMLの本文にウィジェットを追加し、ユーザーがプッシュ配信の登録と配信停止を行えるようにする。
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>
ステップ 3:helper-iframe を追加する。 permission-dialog
AMP Web Pushコンポーネントは、サブスクリプションを処理するためのポップアップを作成するので、この機能をイネーブルメントするためには、プロジェクトに以下のヘルパーファイルを追加する必要がある:
ステップ 4: サービスワーカーファイルを作成する
Webサイトのルート・ディレクトリにservice-worker.js ファイルを作成し、以下のスニペットを追加する:
ステップ 5: AMP Web プッシュ HTML 要素を構成する
以下のamp-web-push HTML要素をHTML本文に追加する。service-worker-URL にクエリーパラメーターとしてapiKey とbaseUrlを追加する必要があることに留意してほしい。
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}"
>
非同期モジュール定義(AMD)
サポートを無効にする
あなたのサイトがRequireJSまたは他のAMDモジュールローダーを使用しているが、このリストの他のオプションのいずれかを使用してBraze Web SDKを読み込むことを好む場合、AMDサポートを含まないバージョンのライブラリを読み込むことができる。このバージョンのライブラリーは、以下のCDNの場所からロードできます:
モジュールローダー
RequireJS または他の AMD モジュールローダーを使用する場合は、ライブラリのコピーをセルフホスティングし、他のリソースと同様に参照することをお勧めします。
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 は公式には Web プッシュ通知をサポートしていません (参照: この GitHub issue)。Brazeがテストしていないオープンソースの回避策を試すこともできます。
Jestフレームワーク
Jestを使用している場合、SyntaxError: Unexpected token 'export' のようなエラーが表示されることがあります。これを修正するには、Braze SDK を無視するように package.json の設定を調整します。
1
2
3
4
5
"jest": {
"transformIgnorePatterns": [
"/node_modules/(?!@braze)"
]
}
SSRフレームワーク
Next.js のようなサーバーサイド・レンダリング(SSR)フレームワークを使用している場合、SDKがブラウザ環境で実行されることを意図しているため、エラーが発生する可能性がある。これらの問題は、SDKを動的にインポートすることで解決できます。
必要な SDK の部分を別のファイルにエクスポートし、そのファイルをコンポーネントに動的にインポートすることで、ツリーシェイクの利点を維持できます。
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();
});
}, []);
あるいは、アプリのバンドルにwebpackを使用している場合、そのマジックコメントを利用して、必要なSDKの部分だけを動的にインポートすることもできます。
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
Tealium iQは、基本的なターンキー Braze 統合を提供します。統合を構成するには、Tealium Tag Management インターフェイスで Braze を検索し、ダッシュボードから Web SDK API キーを指定します。
詳細や詳細なTealium設定サポートについては、統合ドキュメントをご覧になるか、Tealiumアカウントマネージャーにお問い合わせください。
ヴァイト
Viteを使用していて、循環依存関係やUncaught TypeError: Class extends value undefined is not a constructor or null に関する警告が表示される場合は、Braze SDKを依存関係の発見から除外する必要があるかもしれません:
1
2
3
optimizeDeps: {
exclude: ['@braze/web-sdk']
},
その他のタグ・マネージャー
Brazeは、カスタムHTMLタグの中で当社の統合指示に従うことにより、他のタグ管理ソリューションと互換性を持つこともできます。これらのソリューションの評価についてサポートが必要な場合は、Brazeの担当者に連絡すること。
Android SDKを統合する
ステップ 1: build.gradle を更新する
あなたのbuild.gradle 、リポジトリのリストに mavenCentral()をリポジトリのリストに追加する。
1
2
3
repositories {
mavenCentral()
}
次に、Brazeを依存関係に追加する。
Braze UIコンポーネントを使用する予定がない場合は、以下のコードをbuild.gradle に追加する。SDK_VERSION をお使いのAndroid Braze SDKの現在のバージョンに置き換える。全バージョンのリストは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.
}
Braze UIコンポーネントを後で使用する予定がある場合は、次のコードをbuild.gradle に追加する。 SDK_VERSION をお使いのAndroid Braze SDKの現在のバージョンに置き換える。全バージョンのリストは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.
}
ステップ 2:を設定する。 braze.xml
2019 年 12 月をもって、カスタムエンドポイントは提供されなくなりました。既存のカスタムエンドポイントがある場合は、それを引き続き使用できます。詳細については、利用可能なエンドポイントのリストを参照してください。
プロジェクトのres/values フォルダーにbraze.xml ファイルを作成する。特定のデータクラスターを使用している場合、または既存のカスタムエンドポイントがある場合は、braze.xml ファイルでもエンドポイントを指定する必要があります。
ファイルの内容は、次のコードスニペットのようになります。Braze ダッシュボードの [設定の管理] ページにある識別子で YOUR_APP_IDENTIFIER_API_KEY を置き換えてください。dashboard.braze.comにログインして、クラスターアドレスを見つけてください。
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>
ステップ 3:権限を追加する AndroidManifest.xml
次に、AndroidManifest.xml に以下の権限を追加する:
1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Android M のリリースにより、Android はインストール時権限モデルから実行時権限モデルに切り替わりました。ただし、これらの権限はどちらも通常の権限であり、アプリのマニフェストにリストされている場合は自動的に付与されます。詳細については、Android の権限に関するドキュメントを参照してください。
ステップ 4: 遅延初期化をイネーブルメントする(オプション)
遅延初期化を使用するには、Braze SDKの最小バージョンが必要である:
遅延初期化がイネーブルメントになっている間は、すべてのネットワーク接続がキャンセルされ、SDKがBrazeサーバーにデータを送信できなくなる。
ステップ4.1:braze.xml を更新する
遅延初期化はデフォルトで無効になっている。イネーブルメントを有効にするには、以下のいずれかのオプションを使用する:
プロジェクトのbraze.xml ファイルで、com_braze_enable_delayed_initialization をtrue に設定する。
1
<bool name="com_braze_enable_delayed_initialization">true</bool>
実行時に遅延初期化をイネーブルメントするには、以下のメソッドを使用する。
1
Braze.enableDelayedInitialization(context);
1
Braze.enableDelayedInitialization(context)
ステップ4.2:プッシュ分析を設定する(オプション)
遅延初期化をイネーブルメントにすると、プッシュ分析はデフォルトでキューに入れられる。しかし、その代わりにプッシュ分析を明示的にキューに入れたり、ドロップしたりすることもできる。
明示的にキューに入れる
プッシュ分析を明示的にキューに入れるには、以下のオプションのいずれかを選択する:
braze.xml ファイルで、com_braze_delayed_initialization_analytics_behavior をQUEUE に設定する:
1
<string name="com_braze_delayed_initialization_analytics_behavior">QUEUE</string>
QUEUE を追加する。 Braze.enableDelayedInitialization()メソッドを追加する:
1
Braze.enableDelayedInitialization(context, DelayedInitializationAnalyticsBehavior.QUEUE);
1
Braze.enableDelayedInitialization(context, DelayedInitializationAnalyticsBehavior.QUEUE)
ドロップ
プッシュ分析を中止するには、以下のオプションのいずれかを選択する:
braze.xml ファイルで、com_braze_delayed_initialization_analytics_behavior をDROP に設定する:
1
<string name="com_braze_delayed_initialization_analytics_behavior">DROP</string>
DROP を追加する。 Braze.enableDelayedInitialization()メソッドに追加する:
1
Braze.enableDelayedInitialization(context, DelayedInitializationAnalyticsBehavior.DROP);
1
Braze.enableDelayedInitialization(context, DelayedInitializationAnalyticsBehavior.DROP)
ステップ4.3:SDKを手動で初期化する。
選択した遅延時間が経過したら Braze.disableDelayedInitialization()メソッドを使用して、SDKを手動で初期化する。
1
Braze.disableDelayedInitialization(context);
1
Braze.disableDelayedInitialization(context)
ステップ 5: ユーザーセッションのトラッキングをイネーブルにする
ユーザーセッション追跡をイネーブルメントにすると、openSession() 、closeSession() 、ensureSubscribedToInAppMessageEvents()およびInAppMessageManager 登録の呼び出しを自動的に処理することができる。
アクティビティのライフサイクル・コールバックを登録するには、Application クラスのonCreate() メソッドに以下のコードを追加する。
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())
}
}
使用可能なパラメータのリストについては BrazeActivityLifecycleCallbackListener.
セッショントラッキングをテストする
SDKデバッガーを使ってSDKの問題を診断することもできる。
テスト中に問題が発生した場合は、冗長ロギングをイネーブルメントにし、logcatを使用してアクティビティ内のopenSession 、closeSession 。
- Brazeの「Overview」でアプリを選択し、「Display Data For」のドロップダウンで「Today」を選択する。

- アプリを開封し、Brazeダッシュボードを更新する。メトリクスが1増加したことを確認する。
- アプリをナビゲートし、Brazeにログインしたセッションが1つだけであることを確認する。
- アプリを少なくとも10秒間バックグラウンドにし、その後フォアグラウンドにする。新しいセッションが記録されたことを確認する。
オプション構成
ランタイム構成
Brazeのオプションをbraze.xml ファイルではなくコードで設定するには、ランタイム設定を使う。両方の場所に値が存在する場合は、ランタイムの値が代わりに使われる。必要な設定がすべて実行時に提供された後、braze.xml ファイルを削除することができる。
以下の例では、ビルダー・オブジェクトが作成され、次のように渡される。 Braze.configure().利用可能なランタイムオプションの一部しか表示されていないことに注意してほしい。
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)
他の例をお探しだろうか?Hello Brazeのサンプルアプリをチェックしよう。
Google 広告 ID
Google Advertising ID (GAID)は、Google Play サービスにより提供される、ユーザー固有の、匿名かつ一意の、再設定可能な広告用オプション ID である。GAID によりユーザーは、自分の識別子をリセットし、Google Play アプリ内の興味・関心に基づく広告をオプトアウトできます。また、開発者は、アプリの収益化を継続するためのシンプルな標準システムを入手できます。
Google 広告 ID は Braze SDK によって自動的に収集されないため、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()
}
}
}
Google では、非 UI スレッドで広告 ID を収集する必要があります。
位置情報の追跡
Brazeロケーションコレクションをイネーブルメントにするには、braze.xml ファイルでcom_braze_enable_location_collection をtrue に設定する:
1
<bool name="com_braze_enable_location_collection">true</bool>
Braze Android SDK バージョン3.6.0 以降、Braze の位置情報収集機能はデフォルトで無効になっています。
ロギング
デフォルトでは、Braze Android SDK のログレベルは INFO に設定されています。これらのログを抑制したり、別のログレベルを設定 (VERBOSE、DEBUG、または WARN など) したりすることができます。
ログをイネーブルメントにする
アプリの問題のトラブルシューティングや、Braze サポートでの所要時間の短縮に役立つように、SDK の詳細ログを有効にします。Brazeサポートに冗長ログを送信する場合は、アプリケーションを起動したらすぐにログを開始し、問題が発生してからずっと後にログを終了するようにする。
詳細なログは開発環境のみを対象としているため、アプリをリリースする前に無効にする必要があります。
Application.onCreate() で他の呼び出しを行う前に詳細ログを有効にして、ログが可能な限り完全になるようにします。
アプリで直接ログを有効にするには、他のメソッドの前に、以下をアプリケーションの onCreate() メソッドに追加します。
1
BrazeLogger.setLogLevel(Log.MIN_LOG_LEVEL);
1
BrazeLogger.logLevel = Log.MIN_LOG_LEVEL
MIN_LOG_LEVEL を、最小ログレベルとして設定するログレベルの定数に置き換えます。設定したMIN_LOG_LEVEL のレベル>= のログはすべて、Androidのデフォルトの Logメソッドに転送される。設定した MIN_LOG_LEVEL 未満の (<) すべてのログは破棄されます。
| コンスタント | 値 | 説明 |
|---|---|---|
VERBOSE |
2 | デバッグや開発のために最も詳細なメッセージをログに記録する。 |
DEBUG |
3 | デバッグや開発のために、説明的なメッセージをログに記録する。 |
INFO |
4 | 一般的なハイライトのための情報メッセージを記録する。 |
WARN |
5 | 潜在的に有害な状況を特定するための警告メッセージをログに記録する。 |
ERROR |
6 | アプリケーションの失敗や深刻な問題を示すエラーメッセージを記録する。 |
ASSERT |
7 | 開発中に条件が偽の場合にアサーションメッセージをログに記録する。 |
たとえば、以下のコードはログレベル2、3、4、5、6、7を Log メソッドに転送します。
1
BrazeLogger.setLogLevel(Log.VERBOSE);
1
BrazeLogger.logLevel = Log.VERBOSE
braze.xml でログを有効にするには、ファイルに以下を追加する:
1
<integer name="com_braze_logger_initial_log_level">MIN_LOG_LEVEL</integer>
MIN_LOG_LEVEL を、最小ログレベルとして設定するログレベルの値に置き換えます。設定したMIN_LOG_LEVEL のレベル>= のログはすべて、Androidのデフォルトの Logメソッドに転送される。設定した MIN_LOG_LEVEL 未満の (<) すべてのログは破棄されます。
| コンスタント | 値 | 説明 |
|---|---|---|
VERBOSE |
2 | デバッグや開発のために最も詳細なメッセージをログに記録する。 |
DEBUG |
3 | デバッグや開発のために、説明的なメッセージをログに記録する。 |
INFO |
4 | 一般的なハイライトのための情報メッセージを記録する。 |
WARN |
5 | 潜在的に有害な状況を特定するための警告メッセージをログに記録する。 |
ERROR |
6 | アプリケーションの失敗や深刻な問題を示すエラーメッセージを記録する。 |
ASSERT |
7 | 開発中に条件が偽の場合にアサーションメッセージをログに記録する。 |
たとえば、以下のコードはログレベル2、3、4、5、6、7を Log メソッドに転送します。
1
<integer name="com_braze_logger_initial_log_level">2</integer>
冗長ログを検証する
ログが VERBOSE に設定されていることを確認するには、V/Braze がログのどこかで発生するかどうかを確認します。もしそうなら、冗長ログは正常に有効になっている。以下に例を示します。
1
2077-11-19 16:22:49.591 ? V/Braze v9.0.01 .bo.app.d3: Request started
ログの抑制
Braze Android SDKのすべてのログを抑制するには、アプリケーションのonCreate() メソッドで、他のメソッドの_前に_ログレベルをBrazeLogger.SUPPRESS に設定する。
1
BrazeLogger.setLogLevel(BrazeLogger.SUPPRESS);
1
BrazeLogger.setLogLevel(BrazeLogger.SUPPRESS)
複数の API キー
複数の API キーの最も一般的なユースケースは、デバッグおよびリリースビルドバリアントの API キーを分離することです。
ビルド内の複数の API キーを簡単に切り替えられるように、関連するビルドバリアントごとに個別の braze.xml ファイルを作成することをお勧めします。ビルドバリアントは、ビルドタイプと製品フレーバーの組み合わせです。デフォルトでは、新しいAndroidプロジェクトはdebug とrelease ビルドタイプで構成され、プロダクトフレーバーはない。
関連するバリアントごとに、src/<build variant name>/res/values/ ディレクトリに新しいbraze.xml を作成する。ビルドバリアントがコンパイルされると、新しい 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>
コード内でAPIキーを設定する方法については、ランタイム設定を参照のこと。
アプリ内限定メッセージ TalkBack
Androidアクセシビリティガイドラインに従い、Braze Android SDKはデフォルトでAndroid Talkbackを提供する。アプリ内メッセージの内容だけを、アプリのタイトルバーやナビゲーションなど他の画面要素を含めずに読み上げるようにするには、TalkBackの排他モードを有効にする。
アプリ内メッセージの排他モードをイネーブルメントにする:
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とプロガード
コード圧縮設定は、Braze 統合に自動的に含まれます。
Braze コードを難読化するクライアントアプリでは、Braze がスタックトレースを解釈するためのリリースマッピングファイルを保存する必要があります。すべての Braze コードを引き続き保持する場合は、ProGuard ファイルに以下を追加します。
1
2
-keep class bo.app.** { *; }
-keep class com.braze.** { *; }
Swift SDKを統合する
Swiftパッケージマネージャー(SPM)、CocoaPods、または手動の統合方法を使用して、Braze Swift SDKを統合し、カスタマイズすることができる。様々なSDKシンボルの詳細については、Braze Swiftリファレンスドキュメントを参照のこと。
前提条件
開始する前に、お使いの環境が最新のBraze Swift SDKバージョンでサポートされていることを確認する。
ステップ 1: Braze Swift SDKをインストールする。
Swift Package Manager(SwiftPM)またはCocoaPodsを使用して、Braze Swift SDKをインストールすることを推奨する。あるいは、SDKを手動でインストールすることもできる。
ステップ1.1:SDK バージョンのインポート
プロジェクトを開き、プロジェクトの設定に移動します。[Swift パッケージ] タブを選択し、パッケージリストの下にある [追加] ボタンをクリックします。

バージョン7.4.0から、Braze SWIFT SDKには、静的XCFrameworksおよびダイナミックなXCFrameworksとしての追加の配布チャネルがあります。これらの形式のいずれかを使用したい場合は、それぞれのリポジトリのインストール手順に従ってください。
iOS Swift SDK リポジトリーのURL https://github.com/braze-inc/braze-swift-sdk をテキストフィールドに入力します。依存関係ルールセクションで、SDKバージョンを選択します。最後に、パッケージを追加をクリックします。

ステップ1.2:パッケージを選択する
Braze Swift SDK は、開発者がどの機能をプロジェクトにインポートするかをより詳細に制御できるように、機能をスタンドアロンライブラリーに分離しています。
| パッケージ | 詳細 |
|---|---|
BrazeKit |
分析とプッシュ通知をサポートする主な SDK ライブラリー |
BrazeLocation |
位置情報ライブラリーは、位置情報分析とジオフェンス監視をサポートします。 |
BrazeUI |
アプリ内メッセージ、コンテンツカード、バナー用のBraze提供のユーザーインターフェイスライブラリー。デフォルトのUIコンポーネントを使用する場合は、このライブラリーをインポートする。 |
エクステンション・ライブラリーについて
BrazeNotificationService と BrazePushStory は追加機能を提供する拡張モジュールであり、メインアプリケーションターゲットに直接追加しないでください。代わりにリンクされたガイドに従って、それぞれをそれぞれのターゲット拡張機能に個別に統合してください。
| パッケージ | 詳細 |
|---|---|
BrazeNotificationService |
リッチプッシュ通知をサポートする通知サービス拡張ライブラリー。 |
BrazePushStory |
プッシュストーリーをサポートする通知コンテンツ拡張ライブラリーを提供します。 |
ご自身のニーズに最も適したパッケージを選択し、パッケージを追加をクリックしてください。必ず最低でもBrazeKitを選択してください。

ステップ1.1:CocoaPods をインストールする
完全なウォークスルーは、CocoaPodsの入門ガイドを参照のこと。そうでなければ、以下のコマンドを実行すればすぐに始められる:
1
$ sudo gem install cocoapods
行き詰まったら、CocoaPodsのトラブルシューティングガイドをチェックしよう。
ステップ1.2:ポッドファイルの構築
次に、Xcodeプロジェクトのディレクトリに、Podfile という名前のファイルを作成する。
バージョン7.4.0から、Braze SWIFT SDKには、静的XCFrameworksおよびダイナミックなXCFrameworksとしての追加の配布チャネルがあります。これらの形式のいずれかを使用したい場合は、それぞれのリポジトリのインストール手順に従ってください。
次の行を Podfile に追加します。
1
2
3
target 'YourAppTarget' do
pod 'BrazeKit'
end
BrazeKit にはメイン SDK ライブラリーが含まれており、分析とプッシュ通知のサポートが提供されています。
ポッドの更新がマイナー バージョンの更新よりも小さいものを自動的に取得するように、Braze をバージョン管理することをお勧めします。これは pod 'BrazeKit' ~> Major.Minor.Build のように見えます。大きな変更があっても、Braze SDK の最新バージョンを自動的に統合したい場合は、Podfile で pod 'BrazeKit' を使用できます。
追加ライブラリーについて
Braze Swift SDK は、開発者がどの機能をプロジェクトにインポートするかをより詳細に制御できるように、機能をスタンドアロンライブラリーに分離しています。BrazeKit に加えて、以下のライブラリーを Podfile に追加できます。
| 図書館 | 詳細 |
|---|---|
pod 'BrazeLocation' |
位置情報ライブラリーは、位置情報分析とジオフェンス監視をサポートします。 |
pod 'BrazeUI' |
アプリ内メッセージ、コンテンツカード、バナー用のBraze提供のユーザーインターフェイスライブラリー。デフォルトのUIコンポーネントを使用する場合は、このライブラリーをインポートする。 |
拡張ライブラリ
BrazeNotificationService と BrazePushStory は、追加機能を提供するエクステンションモジュールであり、メインアプリケーションターゲットに直接追加すべきではありません。その代わりに、これらのモジュールごとに個別の拡張ターゲットを作成し、対応するターゲットにBrazeモジュールをインポートする必要がある。
| 図書館 | 詳細 |
|---|---|
pod 'BrazeNotificationService' |
リッチプッシュ通知をサポートする通知サービス拡張ライブラリー。 |
pod 'BrazePushStory' |
プッシュストーリーをサポートする通知コンテンツ拡張ライブラリーを提供します。 |
ステップ1.3:SDK をインストール
Braze SDK CocoaPod をインストールするには、ターミナル内で Xcode アプリプロジェクトのディレクトリに移動し、次のコマンドを実行します。
1
pod install
この時点で、CocoaPods によって作成された新しい Xcode プロジェクトワークスペースを開くことができるはずです。Xcode プロジェクトの代わりに、必ずこの Xcode ワークスペースを使用してください。

CocoaPodsを使用してSDKを更新する
CocoaPod を更新するには、プロジェクトディレクトリ内で以下のコマンドを実行するだけです。
1
pod update
ステップ1.1:Braze SDKをダウンロード
GitHubのBraze SDKリリースページに移動し、braze-swift-sdk-prebuilt.zipをダウンロードします。

ステップ1.2:フレームワークを選択してください
Braze SWIFT SDK には、さまざまなスタンドアロンの XCFramework が含まれており、すべてを統合する必要はなく、必要な機能を自由に統合できます。次の表を参照して、XCFrameworksを選択してください:
| パッケージ | 必要か | 説明 |
|---|---|---|
BrazeKit |
はい | メインSDKライブラリーは、分析とプッシュ通知をサポートします。 |
BrazeLocation |
いいえ | 位置情報ライブラリーは、位置情報分析とジオフェンス監視をサポートします。 |
BrazeUI |
いいえ | アプリ内メッセージ、コンテンツカード、バナー用のBraze提供のユーザーインターフェイスライブラリー。デフォルトのUIコンポーネントを使用する場合は、このライブラリーをインポートする。 |
BrazeNotificationService |
いいえ | リッチプッシュ通知をサポートする通知サービス拡張ライブラリー。このライブラリーを直接メインアプリケーションターゲットに追加しないでください。代わりにこのBrazeNotificationServiceライブラリーを別々に追加してください。 |
BrazePushStory |
いいえ | 通知コンテンツ拡張ライブラリーは、プッシュストーリーをサポートします。このライブラリーを直接メインアプリケーションターゲットに追加しないでください。代わりにこのBrazePushStoryライブラリーを別々に追加してください。 |
BrazeKitCompat |
いいえ | Appboy-iOS-SDK バージョン 4.X.X で使用可能だったすべての Appboy および ABK* クラスとメソッドを含む互換性ライブラリ。使用の詳細については、移行ガイドの最小限の移行シナリオを参照してください。 |
BrazeUICompat |
いいえ | Appboy-iOS-SDK バージョン4.X.Xの AppboyUIライブラリで使用可能だったすべてのABK* クラスとメソッドを含む互換性ライブラリ。使用の詳細については、移行ガイドの最小限の移行シナリオを参照してください。 |
SDWebImage |
いいえ | 最小限の移行シナリオで BrazeUICompat によってのみ使用される依存関係。 |
ステップ1.3:ファイルを準備してください
静的 XCFrameworks または動的 XCFrameworks のどちらを使用するかを決定してから、ファイルを準備します。
- XCFrameworks 用の一時ディレクトリーを作成します。
braze-swift-sdk-prebuiltで、dynamicディレクトリを開き、BrazeKit.xcframeworkを自分のディレクトリに移動します。あなたのディレクトリは次のようになります:1 2
temp_dir └── BrazeKit.xcframework
- 選択した各 XCFramework を一時ディレクトリに移動します。あなたのディレクトリは次のようになります:
1 2 3 4 5
temp_dir ├── BrazeKit.xcframework ├── BrazeKitCompat.xcframework ├── BrazeLocation.xcframework └── SDWebImage.xcframework
ステップ1.4:フレームワークを統合する
次に、以前に準備した動的な XCFrameworks または静的な XCFrameworks を統合します。
Xcodeプロジェクトでビルドターゲットを選択し、次に一般を選択します。フレームワーク、ライブラリ、および埋め込みコンテンツの下に、以前に準備したファイルをドラッグ&ドロップします。

Swift SDK 12.0.0から、スタティックとダイナミックなバリアントの両方で、常にBraze XCFrameworksのEmbed& Signを選択する必要がある。これにより、フレームワークのリソースがアプリバンドルに適切に埋め込まれるようになる。
GIFサポートをイネーブルメントにするには、braze-swift-sdk-prebuilt/static またはbraze-swift-sdk-prebuilt/dynamic のいずれかにSDWebImage.xcframework を追加する。
Objective-Cプロジェクトの一般的なエラー
XcodeプロジェクトにOBJECTIVE-Cファイルのみが含まれている場合、プロジェクトのビルドを試みると「シンボルが見つかりません」というエラーが発生することがあります。これらのエラーを修正するには、プロジェクトを開封し、ファイルツリーに空のSWIFTファイルを追加します。これにより、ビルドツールチェーンがSWIFTランタイムを埋め込み、ビルド時に適切なフレームワークにリンクするようになります。
1
FILE_NAME.swift
任意のスペースのない文字列でFILE_NAMEを置き換えます。ファイルは次のようになります。
1
empty_swift_file.swift
ステップ 2:遅延初期化の設定(オプション)
アプリがSDKを開始する前に設定を読み込んだり、ユーザーの同意を待つ必要がある場合に便利な、Braze Swift SDKが初期化されるタイミングを遅らせるように選択できる。遅延初期化により、SDKの準備が整うまでBrazeプッシュ通知はキューに入れられる。
これを可能にするには、Braze.prepareForDelayedInitialization() にできるだけ早く、できればapplication(_:didFinishLaunchingWithOptions:) の内部かその前に電話すること。
Brazeからのプッシュ通知にのみ適用される。その他のプッシュ通知は、システムデリゲートによって通常通り処理される。
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:) オプションでpushAutomation 。nil に設定すると、起動時にプッシュ認証を要求する以外は、すべてのプッシュオートメーション機能がイネーブルメントになる。
ステップ 3:アプリデリゲートを更新する
以下は、すでにプロジェクトにAppDelegate (デフォルトでは生成されない)を追加していることを前提としている。使用する予定がない場合は、アプリの起動時など、できるだけ早い段階でBraze SDKを初期化しておくこと。
AppDelegate.swift ファイルに以下のコード行を追加して Braze Swift SDK に含まれる機能をインポートします。
1
import BrazeKit
次に、AppDelegate クラスに static プロパティを追加し、アプリケーションの有効期間を通して Braze インスタンスへの強い参照を保持します。
1
2
3
class AppDelegate: UIResponder, UIApplicationDelegate {
static var braze: Braze? = nil
}
最後に、AppDelegate.swift で、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
アプリの設定ページから、YOUR-APP-IDENTIFIER-API-KEY とYOUR-BRAZE-ENDPOINT を正しい値に更新する。アプリ識別子のAPIキーがどこにあるかについては、API識別子の種類をチェックしてほしい。
次のコード行を AppDelegate.m ファイルに追加します。
1
@import BrazeKit;
次に、AppDelegate.m ファイルに静的変数を追加して、アプリケーションのライフタイムを通してBrazeインスタンスへの参照を保持する:
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
最後に、AppDelegate.m ファイル内で、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;
Manage Settingsページから、YOUR-APP-IDENTIFIER-API-KEY とYOUR-BRAZE-ENDPOINT を正しい値で更新する。アプリ識別子の API キーの場所について詳しくは、API ドキュメントをご覧ください。
オプション構成
ロギング
ログレベル
Braze Swift SDKのデフォルトのログレベルは、.error。これは、ログがイネーブルメントの場合にサポートされる最小レベルでもある。以上がログレベルの全リストである:
| Swift | Objective-C | 説明 |
|---|---|---|
.debug |
BRZLoggerLevelDebug |
デバッグ情報のログ +.info +.error. |
.info |
BRZLoggerLevelInfo |
一般的なSDK情報(ユーザーの変更など)を記録する +.error 。 |
.error |
BRZLoggerLevelError |
エラーをロギングする。 |
.disabled |
BRZLoggerLevelDisabled |
ロギングは行われない。 |
ログレベルの設定
Braze.Configuration 、実行時にログレベルを割り当てることができる。完全な使用法の詳細については、以下を参照のこと。 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];
Cordova SDKを統合する
前提条件
開始する前に、お使いの環境が最新のBraze Cordova SDKバージョンに対応していることを確認する。
ステップ 1: SDK をプロジェクトに追加する
以下の方法でBraze Cordova SDKのみを追加する。セキュリティ侵害につながる可能性があるため、他の方法でインストールを試みないこと。
Cordova 6 以降では、GitHub から直接 SDK を追加できます。または、GitHub リポジトリの ZIP をダウンロードして、SDK を手動で追加することもできます。
ロケーションコレクションとジオフェンスを使用する予定がない場合は、GitHub の master ブランチを使用してください。
1
cordova plugin add https://github.com/braze-inc/braze-cordova-sdk#master
位置情報の収集とジオフェンスの使用を計画している場合は、GitHub の を使用します geofence-branch 。
1
cordova plugin add https://github.com/braze-inc/braze-cordova-sdk#geofence-branch
このステップを繰り返すことで、いつでもmaster とgeofence-branch を切り替えることができる。
ステップ 2:プロジェクトを構成する
次に、プロジェクトの config.xml ファイル内の platform 要素に次の環境設定を追加します。
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" />
次のように置き換えます。
| 値 | 説明 |
|---|---|
BRAZE_API_KEY |
あなたのBraze REST APIキー。 |
CUSTOM_API_ENDPOINT |
カスタムAPIエンドポイント。このエンドポイントは、Brazeダッシュボードの正しいアプリグループにBrazeインスタンスデータをルーティングするために使用されます。 |
config.xml ファイルの platform 要素は次のようになります。
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>
プラットフォーム固有の構文
以下のセクションでは、iOSやAndroidでCordovaを使用する際のプラットフォーム固有の構文について説明する。
整数
整数の設定は、次の例のように文字列表現として読み取られます。
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>
Cordova 8.0.0 以降のフレームワークによる設定の処理方法に従って、整数のみの設定 (送信者 ID など) は、次の例のように先頭に str_ が付加された文字列に設定する必要があります。
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>
ブール値
ブール値の設定は、次の例のように、YES および NO キーワードを文字列表現として使用して SDK によって読み取られます。
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>
ブール値の設定は、次の例のように、true および false キーワードを文字列表現として使用して SDK によって読み取られます。
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>
オプション構成
次の設定をプロジェクトの config.xml ファイルの platform 要素に追加できます。
| メソッド | |
|---|---|
|ios_api_key |
アプリケーションのAPIキーを設定する。 |
|ios_api_endpoint |
アプリケーションのSDKエンドポイントを設定する。 |
|ios_disable_automatic_push_registration |
自動プッシュ登録を無効にするかどうかを設定する。 |
|ios_disable_automatic_push_handling |
自動プッシュ処理を無効にするかどうかを設定する。 |
|ios_enable_idfa_automatic_collection |
Braze SDKが自動的にIDFA情報を収集するかどうかを設定する。詳しくは、Braze IDFAメソッドのドキュメントを参照のこと。 |
|enable_location_collection |
自動ロケーション収集をイネーブルメントにするかどうかを設定する(ユーザーが許可した場合)。Thegeofence-branch |
|geofences_enabled |
ジオフェンスをイネーブルメントにするかどうかを設定する。 |
|ios_session_timeout |
アプリケーションのBrazeセッションタイムアウトを秒単位で設定する。デフォルトは10秒である。 |
|sdk_authentication_enabled |
SDK認証機能を有効にするかどうかを設定する。 |
|display_foreground_push_notifications |
アプリケーションがフォアグラウンドの間、プッシュ通知を表示するかどうかを設定する。 |
|ios_disable_un_authorization_option_provisional |
UNAuthorizationOptionProvisional を無効にするかどうかを設定する。 |
|trigger_action_minimum_time_interval_seconds |トリガー間の最小時間間隔を秒単位で設定する。デフォルトは30秒である。 |
|
|ios_push_app_group |
iOSプッシュ拡張のアプリグループIDを設定する。 |
|ios_forward_universal_links |
SDKが自動的にユニバーサルリンクを認識し、システムメソッドに転送するかどうかを設定する。 |
|ios_log_level |
Braze.Configuration.Logger の最小ログレベルを設定する。 |
|ios_use_uuid_as_device_id |
ランダムに生成されたUUIDをデバイスIDとして使用するかどうかを設定する。 |
|ios_flush_interval_seconds |自動データフラッシュの間隔を秒単位で設定する。デフォルトは10秒である。 |
|
|ios_use_automatic_request_policy |
Braze.Configuration.Api のリクエストポリシーを自動にするか手動にするかを設定する。 |
|should_opt_in_when_push_authorized |
プッシュ権限が許可されたときに、ユーザーのサブスクリプション状態を自動的にoptedIn に設定するかどうかを設定する。 |
詳細については、GitHub:Braze iOS Cordova プラグインを参照してください。
| メソッド | |
|---|---|
|android_api_key |
アプリケーションのAPIキーを設定する。 |
|android_api_endpoint |
アプリケーションのSDKエンドポイントを設定する。 |
|android_small_notification_icon |
通知小アイコンを設定する。 |
|android_large_notification_icon |通知の大きなアイコンを設定する。 |
|
|android_notification_accent_color |
通知アクセントカラーを16進数で設定する。 |
|android_default_session_timeout |
アプリケーションのBrazeセッションタイムアウトを秒単位で設定する。デフォルトは10秒である。 |
|android_handle_push_deep_links_automatically |
Braze SDKが自動的にプッシュディープリンクを処理するかどうかを設定する。 |
|android_log_level アプリケーションのログレベルを設定する。デフォルトのログレベルは 4 で、最小限の情報をロギングします。デバッグのために冗長ロギングを有効にするには、ログレベル2を使う。 |
|
|firebase_cloud_messaging_registration_enabled |
Firebase Cloud Messagingをプッシュ通知に使用するかどうかを設定する。 |
|android_fcm_sender_id |
Firebase Cloud Messaging の送信者 ID を設定する。 |
|enable_location_collection |
位置情報の自動収集をイネーブルメントにするかどうかを設定する(ユーザーが許可した場合)。 |
|geofences_enabled |
ジオフェンスをイネーブルメントにするかどうかを設定する。 |
|android_disable_auto_session_tracking |
Cordovaプラグインが自動的にセッションをトラッキングするのを無効にする。詳しくは、自動セッション追跡を無効にする|を参照のこと。 |
|sdk_authentication_enabled |
SDK認証機能を有効にするかどうかを設定する。 |
|trigger_action_minimum_time_interval_seconds |トリガー間の最小時間間隔を秒単位で設定する。デフォルトは30秒である。 |
|
|is_session_start_based_timeout_enabled |
セッションタイムアウトの動作を、セッション開始イベントとセッション終了イベントのどちらに基づいて行うかを設定する。 |
|default_notification_channel_name |
BrazeのデフォルトNotificationChannel に対して、NotificationChannel.getName 経由で見られるユーザー向けの名前を設定する。 |
|default_notification_channel_description |
BrazeのデフォルトNotificationChannel に対して、NotificationChannel.getDescription を介して見られるユーザー向けの説明を設定する。 |
|does_push_story_dismiss_on_click |プッシュストーリーをクリックしたときに自動的に解除するかどうかを設定する。 |
|
|is_fallback_firebase_messaging_service_enabled |
フォールバック Firebase Cloud Messaging Service の使用をイネーブルメントするかどうかを設定する。 |
|fallback_firebase_messaging_service_classpath |
フォールバック Firebase Cloud Messaging Service のクラスパスを設定する。 |
|is_content_cards_unread_visual_indicator_enabled |
コンテンツカード未読視覚表示バーをイネーブルメントにするかどうかを設定する。 |
|is_firebase_messaging_service_on_new_token_registration_enabled |
Braze SDKが自動的にトークンをcom.google.firebase.messaging.FirebaseMessagingService.onNewToken に登録するかどうかを設定する。 |
|is_push_deep_link_back_stack_activity_enabled |
ディープリンクを自動的にたどってプッシュする際に、Brazeがアクティビティをバックスタックに追加するかどうかを設定する。 |
|push_deep_link_back_stack_activity_class_name |
ディープリンクを自動的にたどってプッシュする際に、Brazeがバックスタックに追加するアクティビティを設定する。 |
|should_opt_in_when_push_authorized |
プッシュが許可されたときに、Brazeが自動的にユーザーをオプトインするかどうかを設定する。 |
詳細については、GitHub:Braze Android Cordova プラグインを参照してください。
以下は、追加構成を含む config.xml ファイルの例です。
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>
自動セッション追跡を無効にする(Androidのみ)
デフォルトでは、Android Cordova プラグインは自動的にセッションを追跡します。自動セッショントラッキングを無効にするには、プロジェクトの config.xml ファイル内の platform 要素に次の設定を追加します。
1
2
3
<platform name="android">
<preference name="com.braze.android_disable_auto_session_tracking" value="true" />
</platform>
トラッキングセッションを再開するには、BrazePlugin.startSessionTracking() を呼び出します。次回の Activity.onStart() 以降に開始されたセッションのみが追跡されることに注意してください。
Braze SDKについて
AndroidとiOSでBraze Flutter SDKを統合すると、Dartで書かれたFlutterアプリ内でBraze APIを使えるようになる。このプラグインには、基本的な分析機能が用意されており、iOS と Android 両方のアプリ内メッセージとコンテンツカードを1つのコードベースで統合できます。
Flutter SDKを統合する
前提条件
Braze Flutter SDKを統合する前に、以下を完了する必要がある:
| 前提条件 | 説明 |
|---|---|
| Braze APIアプリ識別子 | アプリの識別子を見つけるには、設定>APIと識別子>アプリ識別子と進む。詳細はAPI識別子タイプを参照のこと。 |
| Braze RESTエンドポイント | REST エンドポイントのURL。エンドポイントはインスタンスの Braze URL に応じて異なります。 |
| Flutter SDK | 公式Flutter SDKをインストールし、Braze Flutter SDKの最小サポートバージョンを満たしていることを確認する。 |
ステップ1:Braze ライブラリーを統合する
コマンドラインから Braze Flutter SDK パッケージを追加します。これにより、適切な行がpubspec.yaml に追加されます。
1
flutter pub add braze_plugin
ステップ 2:完全なネイティブSDKのセットアップ
Braze サーバーに接続するには、プロジェクトの android/res/values フォルダで braze.xml ファイルを作成します。以下のコードを貼り付けて、API 識別子キーとエンドポイントを値で置き換えます。
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>
必要な権限をファイル AndroidManifest.xml に追加します。
1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
AppDelegate.swift ファイルの先頭にBraze SDK インポートを追加します。
1
2
import BrazeKit
import braze_plugin
同じファイルで、application(_:didFinishLaunchingWithOptions:) メソッドで Braze 構成オブジェクトを作成し、API キーとエンドポイントをアプリの値に置き換えます。次に、構成を使用して Braze インスタンスを作成し、簡単にアクセスできるよう AppDelegate で静的プロパティを作成します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
static var braze: Braze? = nil
override 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
}
AppDelegate.m ファイルの先頭に BrazeKit をインポートします。
1
@import BrazeKit;
同じファイルで、application:didFinishLaunchingWithOptions: メソッドで Braze 構成オブジェクトを作成し、API キーとエンドポイントをアプリの値に置き換えます。次に、構成を使用して Braze インスタンスを作成し、簡単にアクセスできるよう AppDelegate で静的プロパティを作成します。
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;
}
ステップ 3:プラグインを設定する
Dart コードにプラグインをインポートするには、以下を使用します。
1
import 'package:braze_plugin/braze_plugin.dart';
次に、サンプルアプリのように new BrazePlugin() を呼び出して、Braze プラグインのインスタンスを初期化します。
未定義の動作を避けるため、DartコードではBrazePlugin のインスタンスを1つだけ割り当てて使用する。
統合をテストする
SDKが統合されているかどうかは、ダッシュボードのセッション統計をチェックすることで確認できる。いずれかのプラットフォームでアプリケーションを実行すると、ダッシュボード ([概要] セクション) に新しいセッションが表示されます。
アプリ内で以下のコードを呼び出して、特定のユーザーのセッションを開封する。
1
2
BrazePlugin braze = BrazePlugin();
braze.changeUser("{some-user-id}");
ダッシュボードのAudience>Search Usersで {some-user-id} 、ユーザーを検索する。そこで、セッションとデバイスデータがロギングされていることを確認できます。
React Native Braze SDKについて
React Native Braze SDKを統合することで、基本的な分析機能を提供し、1つのコードベースだけでiOSとAndroidの両方のアプリ内メッセージとコンテンツカードを統合できる。
新アーキテクチャーの互換性
以下の最小SDKバージョンは、React Nativeの新アーキテクチャを使用するすべてのアプリと互換性がある:
SDKバージョン6.0.0から、BrazeはReact Native Turbo Moduleを使用しており、New Architectureとレガシーブリッジアーキテクチャの両方に対応している。
あなたのiOSアプリがRCTAppDelegate に準拠し、前回のAppDelegate のセットアップに従っている場合は、Turboモジュールのイベントをサブスクライバーする際にクラッシュが発生しないように、Complete native setupのサンプルを見直すこと。
React Native SDKを統合する
前提条件
SDKを統合するには、React Nativeバージョン0.71以降が必要である。サポートされているバージョンの完全なリストについては、 React Native SDK GitHub リポジトリを参照してください。
ステップ 1: Braze ライブラリーの統合
1
npm install @braze/react-native-sdk
1
yarn add @braze/react-native-sdk
ステップ 2:セットアップオプションを選択する
Braze SDKは、Braze Expoプラグインまたはネイティブレイヤーのいずれかを使用して管理できる。Expoプラグインを使えば、ネイティブレイヤーにコードを書くことなく、特定のSDK機能を設定できる。アプリのニーズに最も適したオプションを選択しよう。
ステップ2.1: Braze Expo プラグインのインストール
Braze React Native SDK のバージョンが1.37.0以降であることを確認してください。サポートされているバージョンの全リストは、Braze React Nativeリポジトリをチェックしてほしい。
Braze Expoプラグインをインストールするには、以下のコマンドを実行する:
1
npx expo install @braze/expo-plugin
ステップ 2.2:app.json にプラグインを追加する
app.json で、Braze Expo プラグインを追加します。次の構成オプションを指定できます。
| 方法 | タイプ | 説明 |
|---|---|---|
androidApiKey |
ストリング | 必須です。Braze ダッシュボードの [設定の管理] にある Android アプリケーションの API キー。 |
iosApiKey |
ストリング | 必須です。Braze ダッシュボードの [設定の管理] にある iOS アプリケーションの API キー。 |
baseUrl |
ストリング | 必須です。Braze ダッシュボードの [設定の管理] にあるアプリケーションの SDK エンドポイント。 |
enableBrazeIosPush |
ブーリアン | iOSのみ。iOS でのプッシュ通知の処理に Braze を使用するかどうか。React Native SDK v1.38.0とExpo Plugin v0.4.0で導入された。 |
enableFirebaseCloudMessaging |
ブーリアン | Android のみ。プッシュ通知に Firebase Cloud Messaging を使用するかどうか。React Native SDK v1.38.0とExpo Plugin v0.4.0で導入された。 |
firebaseCloudMessagingSenderId |
ストリング | Android のみ。Firebase Cloud Messaging の送信者 ID。React Native SDK v1.38.0とExpo Plugin v0.4.0で導入された。 |
sessionTimeout |
整数 | アプリケーションの Braze セッションタイムアウト (秒単位)。 |
enableSdkAuthentication |
ブーリアン | SDK認証機能を有効にするかどうか。 |
logLevel |
整数 | アプリケーションのログレベル。デフォルトのログレベルは8で、最小限の情報をロギングします。デバッグのために冗長ロギングを有効にするには、ログレベル0を使う。 |
minimumTriggerIntervalInSeconds |
整数 | トリガー間の最小時間間隔 (秒単位)。デフォルトは30秒です。 |
enableAutomaticLocationCollection |
ブーリアン | 自動位置情報収集が有効かどうか(ユーザーが許可した場合)。 |
enableGeofence |
ブーリアン | ジオフェンスを有効にするかどうか。 |
enableAutomaticGeofenceRequests |
ブーリアン | ジオフェンスリクエストを自動で行うかどうか。 |
dismissModalOnOutsideTap |
ブーリアン | iOSのみ。ユーザーがアプリ内メッセージの外側をクリックしたときに、モーダルアプリ内メッセージが閉じられるかどうか。 |
androidHandlePushDeepLinksAutomatically |
ブーリアン | Android のみ。Braze SDKが自動的にプッシュディープリンクを処理するかどうか。 |
androidPushNotificationHtmlRenderingEnabled |
ブーリアン | Android のみ。android.text.Html.fromHtml を使って、プッシュ通知のテキストコンテンツをHTMLとして解釈し、レンダリングするかどうかを設定する。 |
androidNotificationAccentColor |
ストリング | Android のみ。Android通知のアクセントカラーを設定する。 |
androidNotificationLargeIcon |
ストリング | Android のみ。Androidの通知アイコンを大きく設定する。 |
androidNotificationSmallIcon |
ストリング | Android のみ。Androidの通知小アイコンを設定する。 |
iosRequestPushPermissionsAutomatically |
ブーリアン | iOSのみ。アプリの起動時にユーザーにプッシュ許可を自動的に求めるかどうか。 |
enableBrazeIosRichPush |
ブーリアン | iOSのみ。iOSのリッチプッシュ機能を有効にするかどうか。 |
enableBrazeIosPushStories |
ブーリアン | iOSのみ。iOSのBraze Push Storiesを有効にするかどうか。 |
iosPushStoryAppGroup |
ストリング | iOSのみ。iOSのプッシュストーリーズに使われているアプリ群だ。 |
iosUseUUIDAsDeviceId |
ブーリアン | iOSのみ。デバイスIDにランダムに生成されたUUIDを使用するかどうか。 |
構成例:
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"
}
],
]
}
}
ステップ 2.3:アプリケーションのビルドおよび実行
アプリケーションを事前にビルドすることで、Braze Expoプラグインが動作するために必要なネイティブファイルが生成される。
1
npx expo prebuild
Expo ドキュメントの指定に従い、アプリケーションを実行します。コンフィギュレーション・オプションに変更を加えると、アプリケーションのプリビルドと再実行が必要になることを覚えておいてほしい。
ステップ2.1: リポジトリの追加
最上位プロジェクト build.gradle で、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")
}
}
これにより、Kotlin がプロジェクトに追加されます。
ステップ2.2: Braze SDK の構成
Braze サーバーに接続するには、プロジェクトの res/values フォルダで braze.xml ファイルを作成します。次のコードを貼り付け、API キーおよびエンドポイントを実際の値に置き換えます。
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>
必要な権限をファイル AndroidManifest.xml に追加します。
1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Braze SDK バージョン12.2.0 以降では、importBrazeLocationLibrary=true をgradle.properties ファイルに設定することで、android-sdk-location ライブラリを自動的にプルインできます。
ステップ2.3: ユーザーセッショントラッキングの実装
openSession() および closeSession() への呼び出しは自動的に処理されます。
MainApplication クラスの onCreate() メソッドに次のコードを追加します。
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())
}
ステップ2.4: インテント更新の処理
MainActivity で android:launchMode が singleTask に設定されている場合は、次のコードを 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)
}
ステップ2.1: (オプション) ダイナミック XCFramework に関する Podfile の構成
BrazeUI などの特定の Braze ライブラリーを Objective-C++ ファイルにインポートするには、#import 構文を使用する必要があります。Braze Swift SDKのバージョン7.4.0以降、バイナリにはこの構文と互換性のあるダイナミック XCFramework としてのオプションの配布チャネルがあります。
この配布チャネルを使用する場合は、Podfile で CocoaPods のソースの場所を手動で上書きします。以下のサンプルを参照し、インポートする関連バージョンで {your-version} を置き換えてください。
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'
ステップ 2.2:ポッドのインストール
React Native ではライブラリーがネイティブプラットフォームに自動でリンクされるため、CocoaPods を使用して SDK をインストールできます。
プロジェクトのルートフォルダから:
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
ステップ 2.3:Braze SDK の構成
AppDelegate.swift ファイルの先頭にある Braze SDK をインポートします。
1
import BrazeKit
application(_:didFinishLaunchingWithOptions:) メソッドで、API キーおよびエンドポイントをアプリの値に置き換えます。次に、構成を使用して Braze インスタンスを作成し、簡単にアクセスできるよう AppDelegate で静的プロパティを作成します。
この例では、React Native 設定で多くの抽象化を提供する RCTAppDelegate の実装を前提としています。アプリに別の設定を使用している場合は、必要に応じて実装を調整してください。
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
AppDelegate.m ファイルの先頭にある Braze SDK をインポートします。
1
2
#import <BrazeKit/BrazeKit-Swift.h>
#import "BrazeReactBridge.h"
application:didFinishLaunchingWithOptions: メソッドで、API キーおよびエンドポイントをアプリの値に置き換えます。次に、構成を使用して Braze インスタンスを作成し、簡単にアクセスできるよう AppDelegate で静的プロパティを作成します。
この例では、React Native 設定で多くの抽象化を提供する RCTAppDelegate の実装を前提としています。アプリに別の設定を使用している場合は、必要に応じて実装を調整してください。
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;
}
ステップ 3:ライブラリーをインポートする
次に、React Nativeのコードでライブラリをimport 。詳しくはサンプル・プロジェクトをご覧いただきたい。
1
import Braze from "@braze/react-native-sdk";
ステップ 4: 統合をテストする(オプション)
SDKの統合をテストするには、アプリで以下のコードを呼び出して、どちらのプラットフォームでもユーザーの新しいセッションを開始する。
1
Braze.changeUser("userId");
たとえば、アプリの起動時にユーザー ID を割り当てることができます。
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>
)
Brazeのダッシュボードで、ユーザー検索に行き、some-user-id に一致するIDを持つユーザーを探す。ここで、セッションデータとデバイスデータが記録されたことを確認できる。
六SDKの統合
ステップ 1: ファイルの追加
Braze SDK ファイルは、Braze Roku SDK リポジトリ の sdk_files ディレクトリにあります。
sourceディレクトリで、アプリにBrazeSDK.brsを追加します。componentsディレクトリで、アプリにBrazeTask.brsとBrazeTask.xmlを追加します。
ステップ 2:参照の追加
次の script 要素を使用して、メインシーンに BrazeSDK.brs への参照を追加します。
1
<script type="text/brightscript" uri="pkg:/source/BrazeSDK.brs"/>
ステップ3:構成
main.brs 内で、グローバルノードにBrazeのコンフィギュレーションを設定する:
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})
SDK エンドポイントと API キーは、Braze ダッシュボード内にあります。
ステップ4: Braze の初期化
Braze インスタンスを初期化します。
1
2
m.BrazeTask = createObject("roSGNode", "BrazeTask")
m.Braze = getBrazeInstance(m.BrazeTask)
オプション構成
ロギング
Braze 統合をデバッグするため、Braze ログの Roku デバッグコンソールを表示できます。詳細については、Roku Developers の Debugging code を参照してください。
Unity Braze SDKについて
型、関数、変数などの完全なリストについては、Unity宣言ファイルを参照のこと。さらに、すでにUnityをiOS用に手動で統合している場合は、代わりに自動統合に切り替えることができる。
Unity SDKを統合する
前提条件
開始する前に、お使いの環境が最新のBraze Unity SDKバージョンでサポートされていることを確認する。
ステップ 1: Braze Unity パッケージの選択
Braze .unitypackage は、Android プラットフォームと iOS プラットフォーム向けのネイティブバインディングを C# インターフェイスとともにバンドルします。
Braze Unity リリースページでいくつかの Braze Unity パッケージをダウンロードできます。
Appboy.unitypackage- このパッケージは、Braze Android および iOS SDK と、iOS SDK の SDWebImage 依存関係をバンドルします。これは、Braze アプリ内メッセージングと、iOS 上のコンテンツカード機能を適切に機能させるために必要です。SDWebImage フレームワークは、GIF を含む画像のダウンロードと表示に使用されます。完全なBraze機能を使用する場合は、このパッケージを読み込むしてインポートします。
Appboy-nodeps.unitypackage- このパッケージは
Appboy.unitypackageに似ていますが、SDWebImage フレームワークが存在しない点が異なります。このパッケージは、iOS アプリに SDWebImage フレームワークが存在しないようにする場合に便利です。
- このパッケージは
Unity 2.6.0 以降、バンドルされた Braze Android SDK アーティファクトには AndroidX 依存関係が必要です。以前にjetified unitypackage を使用していた場合は、対応するunitypackage に安全に移行できます。
Braze .unitypackage は、Android プラットフォームと iOS プラットフォーム向けのネイティブバインディングを C# インターフェイスとともにバンドルします。
Braze Unity パッケージは、次の2種類の統合オプションを使用して、Braze Unity リリースページでダウンロードできます。
Appboy.unitypackageのみ- このパッケージは、Braze Android と iOS SDK を追加の依存関係なしでバンドルします。この統合方法では、Braze アプリ内メッセージングと、iOS 上のコンテンツカード機能が適切に機能しません。カスタムコードなしで完全なBraze機能を使用する場合は、代わりに以下のオプションを使用してください。
- この統合オプションを使用する場合は、[Braze 構成] の下にある Unity UI で
Import SDWebImage dependencyの横にあるボックスにチェックマークが入れられていないことを確認してください。
SDWebImageを含むAppboy.unitypackage- この統合オプションは、Braze Android および iOS SDK と、iOS SDK の SDWebImage 依存関係をバンドルします。これは、Braze アプリ内メッセージングと、iOS 上のコンテンツカード機能を適切に機能させるために必要です。
SDWebImageフレームワークは、GIF を含む画像のダウンロードと表示に使用されます。完全なBraze機能を使用する場合は、このパッケージを読み込むしてインポートします。 SDWebImageを自動的にインポートするには、[Braze 構成] の下にある Unity UIでImport SDWebImage dependencyの横にあるボックスにチェックマークが入れられていることを確認してください。
- この統合オプションは、Braze Android および iOS SDK と、iOS SDK の SDWebImage 依存関係をバンドルします。これは、Braze アプリ内メッセージングと、iOS 上のコンテンツカード機能を適切に機能させるために必要です。
iOSプロジェクトにSDWebImage依存性が必要かどうかを確認するには、[iOSアプリ内メッセージドキュメント]](/docs/ja/developer_guide/platform_integration_guides/swift/in-app_messaging/overview/) を参照すること。
ステップ 2:パッケージをインポートする
Unity エディターで Unity プロジェクトにパッケージをインポートするには、[アセット] > [パッケージをインポート] > [カスタムパッケージ] の順に移動します。次に、Importをクリックします。
または、カスタム Unity パッケージのインポートに関して詳しくは、Unity アセットパッケージのインポートの説明を参照してください。
iOS またはAndroid プラグインのみをインポートする場合は、Braze.unitypackage をインポートするときにPlugins/Android またはPlugins/iOS サブディレクトリの選択を解除します。
Unity エディターで Unity プロジェクトにパッケージをインポートするには、[アセット] > [パッケージをインポート] > [カスタムパッケージ] の順に移動します。次に、Importをクリックします。
または、カスタム Unity パッケージのインポートに関して詳しくは、Unity アセットパッケージのインポートの説明を参照してください。
iOS またはAndroid プラグインのみをインポートする場合は、Braze.unitypackage をインポートするときにPlugins/Android またはPlugins/iOS サブディレクトリの選択を解除します。
ステップ 3:SDKを設定する
ステップ 3.1:設定する AndroidManifest.xml
機能する AndroidManifest.xmlを機能させる。アプリにAndroidManifest.xml がない場合は、以下をテンプレートとして使用できます。それ以外の場合、すでにAndroidManifest.xml がある場合は、次のいずれかの欠落セクションが既存のAndroidManifest.xml に追加されていることを確認します。
Assets/Plugins/Android/ディレクトリに移動し、AndroidManifest.xmlファイルを開封する。これはUnityエディタのデフォルトの場所である。AndroidManifest.xmlに、以下のテンプレートにある必要な権限とアクティビティを追加する。- 終了後、
AndroidManifest.xmlには、"android.intent.category.LAUNCHER"が存在するアクティビティが1つだけ含まれているはずだ。
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>
AndroidManifest.xml ファイルに登録されているすべてのアクティビティクラスは、Braze Android SDKと完全に統合されている必要があり、そうでなければ分析は収集されない。独自のActivityクラスを追加する場合は、必ずBraze Unityプレーヤーを拡張して、これを防げるようにすること。
ステップ 3.2:AndroidManifest.xml をパッケージ名で更新する。
パッケージ名を確認するには、[ファイル] > [ビルド設定] > [プレーヤー設定] > [Android タブ]を選択します。

AndroidManifest.xml では、REPLACE_WITH_YOUR_PACKAGE_NAME のすべてのインスタンスを前のステップの Package Name に置き換える必要があります。
ステップ3.3:gradleの依存関係を追加する
Unity プロジェクトに gradle の依存関係を追加するには、まず公開設定で [Custom Main Gradle テンプレート] を有効にします。これにより、プロジェクトで使用するテンプレートグラドルファイルが作成されます。gradle ファイルは、依存関係の設定やその他のビルド時のプロジェクト設定を処理します。詳細については、Braze Unity サンプルアプリのmainTemplate.gradle を参照してください。
次の依存関係が必要です。
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'
これらの依存関係は、External Dependency Managerを使用して設定することもできます。
ステップ 3.4:UnityのAndroidインテグレーションを自動化する
Braze は、Unity Android 統合を自動化するためのネイティブ Unity ソリューションを提供しています。
- Unity エディターで [Braze] > [Braze 構成] の順に移動して、[Braze 構成設定] を開きます。
- [Unity Android 統合の自動化] ボックスにチェックマークを入れます。
- Braze API キーフィールドで、設定の管理にあるアプリアプリケーションのAPI キーをBraze ダッシュボードから入力します。
手動で作成した braze.xml ファイルでは、プロジェクトのビルド中に設定値が競合する可能性があるため、この自動統合は使用しないでください。手動のbraze.xml が必要な場合は、自動統合を無効にします。
ステップ 3.1:API キーの設定
Braze は、Unity iOS 統合を自動化するためのネイティブ Unity ソリューションを提供しています。このソリューションは、Unity の PostProcessBuildAttribute を使用してビルドされた Xcode プロジェクトを変更し、IMPL_APP_CONTROLLER_SUBCLASS マクロを使用して UnityAppController をサブクラス化します。
- Unity エディターで [Braze] > [Braze 構成] の順に移動して、[Braze 構成設定] を開きます。
- [Unity iOS 統合の自動化] ボックスにチェックマークを入れます。
- Braze API キー フィールドで、設定の管理 にあるアプリアプリケーションのAPI キーを入力します。

アプリですでに別の UnityAppController サブクラスが使用されている場合、サブクラスの実装を AppboyAppDelegate.mm とマージする必要があります。
Unityパッケージをカスタマイズする
ステップ 1: リポジトリを複製する
ターミナルで、Braze Unity SDK GitHubリポジトリを複製し、そのフォルダに移動する:
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
ステップ 2:リポジトリからパッケージをエクスポートする
まずUnityを起動し、バックグラウンドで起動しておく。次に、リポジトリのルートで以下のコマンドを実行して、パッケージを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
これらのコマンドを実行した後に何らかの問題が発生した場合は、Unityを参照のこと:コマンドライン引数.
ステップ 3:Unityにパッケージをインポートする
- Unityで、Assets>Import Package>Custom Packageと進み、目的のパッケージをUnityプロジェクトにインポートする。
- インポートしたくないファイルがあれば、今すぐ選択を解除する。
Assets/Editor/Build.csにあるエクスポートされたUnityパッケージをカスタマイズする。
自動統合に切り替える(Swiftのみ)
Braze Unity SDKで提供される自動化されたiOSインテグレーションを利用するには、手動から自動化されたインテグレーションに移行するための以下のステップに従う。
- Xcodeプロジェクトの
UnityAppControllerサブクラスから、Braze関連のコードをすべて削除する。 - UnityまたはXcodeプロジェクトからBraze iOSライブラリを削除する(
Appboy_iOS_SDK.frameworkやSDWebImage.frameworkなど)。 - Braze Unityパッケージをプロジェクトに再度インポートする。完全なウォークスルーは、ステップ2を参照のこと: パッケージをインポートする。
- APIキーを再度設定する。完全なウォークスルーは、ステップ3.1を参照のこと:APIキーを設定する.
オプション構成
詳細なログ記録
Unityエディターで冗長ロギングを有効にするには、以下のようにする:
- [Braze] > [Braze 構成] の順に移動して、[Braze 構成設定] を開きます。
- [Braze Android 設定を表示する] ドロップダウンをクリックします。
- [SDK ログレベル] フィールドに値「0」を入力します。
Prime 31 の互換性
Prime31 プラグインで Braze Unity プラグインを使用するには、Prime31 互換の Activity クラスを使用するようにプロジェクトの AndroidManifest.xml を編集します。の参照をすべて変更する。
com.braze.unity.BrazeUnityPlayerActivity から com.braze.unity.prime31compatible.BrazeUnityPlayerActivity
アマゾン・デバイス・メッセージング(ADM)
Brazeは、UnityアプリへのADMプッシュの統合をサポートしている。ADMプッシュを統合したい場合は、ADM APIキーを含むapi_key.txt というファイルを作成し、Plugins/Android/assets/ フォルダに置く。 ADMとBrazeの統合の詳細については、ADMプッシュ統合手順を参照。
Braze Unityプレーヤーの拡張(Androidのみ)
提供されている AndroidManifest.xml ファイルの例では、1つの Activity クラス BrazeUnityPlayerActivity が登録されています。このクラスは Braze SDK と統合され、セッション処理、アプリ内メッセージ登録、プッシュ通知分析ログなどを使用して UnityPlayerActivity を拡張します。UnityPlayerActivity クラスの拡張の詳細については、「Unity」を参照してください。
ライブラリやプラグインプロジェクトで独自のカスタムUnityPlayerActivity を作成する場合は、カスタム機能をBrazeと統合するために、当社のBrazeUnityPlayerActivity を拡張する必要がある。BrazeUnityPlayerActivity を拡張する作業を始める前に、Unity プロジェクトに Braze を統合するための手順に従ってください。
- Braze Android SDK統合の説明に従って、Braze Android SDK をライブラリまたはプラグインプロジェクトに依存関係として追加します。
- Unity 固有の機能を含む Unity
.aarを、Unity 用に構築している Android ライブラリプロジェクトに統合します。appboy-unity.aarは、公開リポジトリから入手できます。Unity ライブラリがうまく統合されたら、BrazeUnityPlayerActivityを拡張するようにUnityPlayerActivityを変更します。 - ライブラリまたはプラグインプロジェクトをエクスポートし、通常どおり
/<your-project>/Assets/Plugins/Androidにドロップします。ライブラリやプラグインにBrazeのソースコードを含めないこと。それらはすでに/<your-project>/Assets/Plugins/Androidに存在するからである。 /<your-project>/Assets/Plugins/Android/AndroidManifest.xmlを編集し、BrazeUnityPlayerActivityのサブクラスをメイン・アクティビティとして指定する。
これでUnity IDEから、Brazeと完全に統合され、カスタムUnityPlayerActivity 機能を含む.apk をパッケージできるようになるはずだ。
トラブルシューティング
エラー:「ファイルが読み込めなかった
以下のようなエラーは無視して問題ありません。アップルのソフトウェアはCgBIと呼ばれる独自のPNG拡張子を使用しているが、Unityはこれを認識しない。これらのエラーは、iOSのビルドやBrazeバンドルの関連画像の適切な表示には影響しない。
1
Could not create texture from Assets/Plugins/iOS/AppboyKit/Appboy.bundle/...png: File could not be read
.NET MAUI SDKを統合する
Braze .NET MAUI(旧Xamarin)SDKを統合することで、基本的な分析機能だけでなく、ユーザーをエンゲージメントできるアプリ内メッセージも利用できるようになる。
前提条件
.NET MAUI Braze SDKを統合する前に、以下の要件を満たしていることを確認すること:
version 3.0.0以降、この SDK では、NET 6以降を使用する必要があり、Xamarin フレームワークを使用するプロジェクトのサポートが削除されます。version 4.0.0以降、このSDKはXamarin& Xamarin.Forms のサポートを停止し、.NET MAUIのサポートを追加した。Xamarinのサポート終了前後のMicrosoftのポリシーを参照してください。
ステップ 1: .NET MAUIバインディングを取得する
.NET MAUIバインディングは、.NET MAUIアプリでネイティブ・ライブラリを使用する方法である。バインディングの実装は、ライブラリに対して C# インターフェイスを構築し、アプリケーションでそのインターフェイスを使用することから構成されます。 .NET MAUIドキュメントを参照のこと。Braze SDK バインディングを含めるには、NuGet を使用する方法と、ソースからコンパイルする方法の2つがあります。
最も単純な統合方式では、NuGet.org中央リポジトリーからBraze SDKを取得します。Visual Studio サイドバーで、Packages フォルダを右クリックし、Add Packages... をクリックします。 ‘Braze’ を検索し、BrazePlatform.BrazeAndroidBinding パッケージをプロジェクトにインストールします。
2 番目の統合方法は、バインディングソース を含めることです。その下に appboy-component/src/androidnet6あなたの.NET MAUIアプリケーションのBrazeAndroidBinding.csproj にプロジェクト参照を追加すると、バインディングがあなたのプロジェクトと一緒にビルドされ、Braze Android SDKにアクセスできるようになる。
.NET MAUI SDKバージョン4.0.0以降のiOSバインディングはBraze Swift SDKを使用し、以前のバージョンは従来のAppboyKit SDKを使用する。
.NET MAUIバインディングは、.NET MAUIアプリでネイティブ・ライブラリを使用する方法である。バインディングの実装は、ライブラリに対して C# インターフェイスを構築し、アプリケーションでそのインターフェイスを使用することから構成されます。Braze SDK バインディングを含めるには、NuGet を使用する方法と、ソースからコンパイルする方法の2つがあります。
最も単純な統合方式では、NuGet.org中央リポジトリーからBraze SDKを取得します。Visual Studio サイドバーで、Packages フォルダを右クリックし、Add Packages... をクリックします。 Braze」を検索し、最新の.NET MAUI iOS NuGetパッケージをインストールする: Braze.iOS.BrazeKit, Braze.iOS.BrazeUIそして Braze.iOS.BrazeLocationをプロジェクトにインストールする。
.NET MAUI への移行を容易にするために、互換性ライブラリパッケージ Braze.iOS.BrazeKitCompat および Braze.iOS.BrazeUICompat も提供しています。
2 番目の統合方法は、バインディングソース を含めることです。その下に appboy-component/src/iosnet6あなたの.NET MAUIアプリケーションのBrazeiOSBinding.csproj にプロジェクト参照を追加すると、バインディングがあなたのプロジェクトと一緒にビルドされ、Braze iOS SDKにアクセスできるようになる。プロジェクトの「リファレンス」フォルダに BrazeiOSBinding.csproj が表示されていることを確認します。
ステップ2:Brazeインスタンスの設定
ステップ 2.1: Braze.xmlでBraze SDKを構成する
ライブラリが統合されたので、プロジェクトのResources/values フォルダにBraze.xml ファイルを作成する必要があります。ファイルの内容は、次のコードスニペットのようになります。
Braze ダッシュボードのSettings> API キーsにあるAPI キーでYOUR_API_KEYを必ず置き換えてください。
古いナビゲーション を使用している場合は、デベロッパコンソール> API 設定.にAPI キーがあります。
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>
バインディングソースを手動で含める場合は、コードから <item>NUGET</item> を削除します。
Braze.xml の例については、Android MAUI サンプルアプリを参照してください。
ステップ 2.2:Androidマニフェストに必要な権限を追加する
API キーを追加したので、次の権限を AndroidManifest.xml ファイルに追加する必要があります。
1
<uses-permission android:name="android.permission.INTERNET" />
AndroidManifest.xml の例については、Android MAUI サンプルアプリケーションを参照してください。
ステップ 2.3:ユーザー セッションs の追跡とアプリ内メッセージs の登録
ユーザーセッショントラッキングを有効にし、アプリ内メッセージ用にアプリを登録するには、アプリの Application クラスの OnCreate() ライフサイクルメソッドに次の呼び出しを追加します。
1
RegisterActivityLifecycleCallbacks(new BrazeActivityLifecycleCallbackListener());
Braze インスタンスを設定したら、次のスニペットを追加して、インスタンスを設定します。
Braze ダッシュボードのSettings> API キーsにあるAPI キーでYOUR_API_KEYを必ず置き換えてください。
古いナビゲーション を使用している場合は、デベロッパコンソール> API 設定.にAPI キーがあります。
1
2
3
var configuration = new BRZConfiguration("YOUR_API_KEY", "YOUR_ENDPOINT");
configuration.Api.AddSDKMetadata(new[] { BRZSDKMetadata.Xamarin });
braze = new Braze(configuration);
iOS MAUIサンプルアプリライケーションのApp.xaml.csファイルを参照してください。
ステップ3: 統合をテストする
これで、アプリケーションを起動して、セッションが Braze ダッシュボードに (デバイス情報やその他の分析と共に) 記録されているのを確認できます。基本的なSDKインテグレーションのベストプラクティスの詳細については、Androidインテグレーション命令を参照してください。
これで、アプリケーションを起動して、セッションが Braze ダッシュボードに記録されているのを確認できます。基本的なSDKインテグレーションのベストプラクティスの詳細については、iOSインテグレーションの手順を参照してください。
私たちが現在公開しているiOS SDK用の.NET MAUIバインディングは、iOS Facebook SDK(ソーシャルデータのリンク)には接続できず、IDFAをBrazeに送信することも含まれていない。
Braze Vega SDKについて
Braze Vega SDKを使用すると、ユーザーに対して分析を収集したり、リッチなアプリ内メッセージを表示したりすることができる。Braze Vega SDKのほとんどのメソッドは非同期で、待機または解決すべき約束を返す。
Braze Vega SDKの統合
ステップ 1: Brazeライブラリをインストールする
お好みのパッケージマネージャーを使用してBraze Vega SDKをインストールする。
プロジェクトでNPMを使用している場合は、Braze Vega SDKを依存関係として追加できる。
1
npm install @braze/vega-sdk --save
インストール後、必要なメソッドをインポートすることができる:
1
import { initialize, changeUser, openSession } from "@braze/vega-sdk";
プロジェクトがYarnを使用している場合、Braze Vega SDKを依存関係として追加できる。
1
yarn add @braze/vega-sdk
インストール後、必要なメソッドをインポートすることができる:
1
import { initialize, changeUser, openSession } from "@braze/vega-sdk";
ステップ2:SDK の初期化
プロジェクトにBraze Vega SDKを追加したら、Brazeダッシュボード内の設定 >アプリ設定にあるAPIキーとSDKエンドポイントURLを使って、ライブラリを初期化する。
他のBrazeメソッドを呼び出す前に、changeUser プロミスを待ち受けるか解決しなければならない。さもないと、イベントやアトリビューションが正しくないユーザーに設定される可能性がある。
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
34
35
36
37
38
39
import { useEffect } from "react-native";
import {
initialize,
changeUser,
logCustomEvent,
openSession,
setCustomUserAttribute,
setUserCountry
} from "@braze/vega-sdk";
const App = () => {
useEffect(() => {
const initBraze = async () => {
// Initialize the SDK
await initialize("YOUR-API-KEY", "YOUR-SDK-ENDPOINT", {
sessionTimeoutInSeconds: 60,
appVersionNumber: "1.2.3.4",
enableLogging: true, // set to `true` for debugging
});
// Change user
await changeUser("user-id-123");
// Start a session
await openSession();
// Log custom events and set user attributes
logCustomEvent("visited-page", { pageName: "home" });
setCustomUserAttribute("my-attribute", "my-attribute-value");
setUserCountry("USA");
};
initBraze();
}, []);
return (
// Your app components
);
};
匿名ユーザーはMAUにカウントされる可能性がある。その結果、これらのユーザーをMAUカウントから除外するために、条件付きでSDKをロードするか、初期化したい場合があります。
オプション構成
ロギング
SDKロギングをイネーブルメントにすることで、デバッグやトラブルシューティングに役立てることができる。ロギングをイネーブルメントにする方法は複数ある。
初期化中のロギングをイネーブルメントにする
デバッグ・メッセージをコンソールに記録するには、initialize() にenableLogging: true を渡す:
1
2
3
initialize("YOUR-API-KEY", "YOUR-SDK-ENDPOINT", {
enableLogging: true
});
基本的なログはすべてのユーザーが見ることができるので、コードを本番環境にリリースする前に、ロギングを無効にすることを検討しよう。
初期化後のロギングをイネーブルメントにする
初期化後にSDKロギングをイネーブルまたはディスエーブルにするには、toggleLogging() を使用する:
1
2
3
4
import { toggleLogging } from "@braze/vega-sdk";
// Enable logging
toggleLogging();
カスタムロギング
setLogger() 、SDKログの処理方法をよりコントロールするためのカスタムロガー関数を提供する:
1
2
3
4
5
6
import { setLogger } from "@braze/vega-sdk";
setLogger((message) => {
console.log("Braze Custom Logger: " + message);
// Add your custom logging logic here
});
設定オプション
SDKの行動をカスタマイズするために、initialize() に追加のコンフィギュレーション・オプションを渡すことができる:
1
2
3
4
5
await initialize("YOUR-API-KEY", "YOUR-SDK-ENDPOINT", {
sessionTimeoutInSeconds: 60, // Configure session timeout (default is 30 seconds)
appVersionNumber: "1.2.3.4", // Set your app version
enableLogging: true, // Enable SDK logging
});
SDKをアップグレードする
NPMまたはYarnからBraze Vega SDKを参照する場合、パッケージ依存関係を更新することで最新バージョンにアップグレードできる:
1
2
3
npm update @braze/vega-sdk
# or, using yarn:
yarn upgrade @braze/vega-sdk
統合をテストする
SDKインテグレーションが正しく機能していることを確認する:
- コンソールでデバッグメッセージを見るために、
enableLogging: trueで SDK を初期化する。 - 他のSDKメソッドを呼び出す前に、
await changeUser()。 await openSession()、セッションを開始する。- Brazeダッシュボードの「概要」を確認し、セッションデータが記録されていることを確認する。
- カスタムイベントのログをテストし、ダッシュボードに表示されることを確認する。
SDKインテグレーションのQAを行う際、SDKデバッガーを使用すれば、アプリの冗長ロギングをオンにすることなく、問題のトラブルシューティングを行うことができる。
GitHub でこのページを編集