リモートコマンド:Braze
要件
- Braze APIキー
- Tealium for AndroidまたはTealium for iOS(アプリ内)
- Brazeリモートコマンドタグ(Tealium iQ Tag Management)
仕組み
Braze統合では、ネイティブBraze SDK、Brazeメソッドをラップするリモートコマンドモジュール、およびイベントトラッキングをネイティブBrazeコールに変換するBrazeリモートコマンドタグを使用します。このソリューションでは、タグ管理の利便性を活用して、アプリにベンダー固有のコードを追加することなくネイティブのBraze実装を構成します。
Brazeリモートコマンドモジュールをアプリに追加すると、必要なBrazeライブラリが自動的にインストールされ、ビルドされます。依存関係マネージャのインストールを使用している場合、Braze SDKを個別にインストールする必要はありません。
インストール
依存関係マネージャ
次の依存関係マネージャのいずれかをインストールに使用することをお勧めします。
Tealium iOS(Objective-C)ライブラリを使用している場合は、手動インストール方法を使用してください。CocoaPodsおよびCarthageオプションは、Tealium iOS(Swift)ライブラリを使用している場合にのみ使用可能です。
CocoaPodsを使用してiOSのBrazeリモートコマンドをインストールするには:
tealium-swift
とpod "Appboy-iOS-SDK"
がPodfileに存在する場合は削除します。tealium-swift
の依存関係はTealiumBraze
フレームワークに既に含まれています。次の依存関係をPodfileに追加します。
pod "TealiumBraze"
TealiumBraze
ポッドには以下のTealiumSwift
依存関係が含まれています。'tealium-swift/Core' 'tealium-swift/TealiumDelegate' 'tealium-swift/TealiumRemoteCommands' 'tealium-swift/TealiumTagManagement'
上記以外に必要なモジュールがある場合は、Podfileに手動で追加します。以下はその例です。
'tealium-swift/TealiumLogger' 'tealium-swift/TealiumLifecycle' 'tealium-swift/TealiumAppData'
iOS向け推奨モジュールの詳細については、こちらを参照してください。
モジュール
TealiumSwift
およびTealiumBraze
を、TealiumHelper
ファイル、Tealium
クラスにアクセスするその他のファイル、またはBrazeリモートコマンドにインポートします。
Carthageを使用してiOSのBrazeリモートコマンドをインストールするには:
tealium-swift
をCartfileから削除します。tealium-swift
の依存関係はTealiumBraze
フレームワークに既に含まれています。以下の行がCartfileに存在する場合は、その行を削除します。
github "Appboy/Appboy-iOS-SDK"
次の依存関係をCartfileに追加します。
github "tealium/tealium-ios-braze-remote-command"
Tealium for Swift SDK(バージョン1.6.5以降)では、TealiumDelegate
モジュールがインストールに含まれている必要があります。
Mavenを使用してAndroidのBrazeリモートコマンドをインストールするには:
TealiumのAndroid SDKをまだインストールしていない場合はインストールします。
アプリプロジェクトの
build.gradle
ファイルに次の依存関係を追加して、Braze SDKとTealium-Brazeの両方のリモートコマンドをインポートします。dependencies { implementation 'com.tealium.remotecommands:braze:0.0.3' implementation 'com.appboy:android-sdk-ui:3.8.0' }
手動による手順(iOS)
Brazeリモートコマンドを手動でインストールするには、次のいずれかのiOSライブラリがインストールされている必要があります。
iOSプロジェクトのBrazeリモートコマンドをインストールするには:
Braze SDKをまだインストールしていない場合はインストールします。
Tealium iOS Brazeリモートコマンドレポジトリをクローンして、
Sources
フォルダ内のファイルをプロジェクトにドラッグします。Tealium SDKを初期化する際には、完了ハンドラーを以下のように更新します。
tealium = Tealium(config: config) { responses in guard let remoteCommands = self.tealium?.remoteCommands() else { return } let brazeTracker = BrazeTracker() let brazeCommand = BrazeCommand(brazeTracker: brazeTracker) let brazeRemoteCommand = brazeCommand.remoteCommand() remoteCommands.add(brazeRemoteCommand) }
SwiftまたはObjective-Cのリモートコマンドを次のように追加します。
リモートコマンドをTealiumHelper.swift
ファイルに次のように追加します。
let brazeTracker = BrazeTracker()
let brazeCommand = BrazeCommand(brazeTracker: brazeTracker)
let brazeRemoteCommand = brazeCommand.remoteCommand()
tealium.addRemoteCommandID("braze",
description: nil,
targetQueue: DispatchQueue.main,
responseBlock: brazeRemoteCommand)
リモートコマンドをTealiumHelper.m
ファイルに次のようにインポートします。
#import "TealiumRemoteCommandObjcApp-Swift.h"
ターゲットのSwiftブリッジヘッダーは、名前の末尾に-Swift.h
が付いており、ターゲットのビルド設定で「モジュール名」をフィルタリングして見つけることができます。
詳しくは、「Apple Developerドキュメント:Importing Swift Into Objective-C」をご覧ください。
リモートコマンドを次のように初期化します。
BrazeTracker *brazeTracker = [[BrazeTracker alloc] init];
BrazeCommand *brazeCommand = [[BrazeCommand alloc] initWithBrazeTracker:brazeTracker];
TEALRemoteCommandResponseBlock brazeRemoteCommand = [brazeCommand remoteCommand];
[[Tealium instanceForKey:@"MY_INSTANCE"] addRemoteCommandID:@"braze"
description:@"Braze Remote Command"
targetQueue:dispatch_get_main_queue()
responseBlock:brazeRemoteCommand];
初期化
すべてのTealiumライブラリでは、初期化時にBrazeリモートコマンドを登録する必要があります。
次のコードは、TealiumのAndroidライブラリで使用するように設計されています。
import com.tealium.remotecommands.BrazeRemoteCommand;
Tealium.Config config = Tealium.Config.create(application, "ACCOUNT", "PROFILE", "ENVIRONMENT");
Tealium teal = Tealium.createInstance(TEALIUM_MAIN, config);
BrazeRemoteCommand braze;
// Initialize with default configuration options.
braze = new BrazeRemoteCommand(config);
// Or alternatively initialize with some additional config options:
Set<Class> sessionHandlingBlacklist = new HashSet<>();
Set<Class> inAppMessageBlacklist = new HashSet<>();
// sessionHandlingBlacklist.add(MainActivity.class);
// inAppMessageBlacklist.add(UserActivity.class);
braze = new BrazeRemoteCommand(config,
true, // sessiongHandlingEnabled
sessionHandlingBlacklist, // sessionHandlingBlacklist
true, // registerInAppMessageManager
inAppMessageBlacklist); // inAppMessageBlackList
// Optional: Set config options that may not be supported yet by the Tag in Tealium IQ
// or simply to override settings locally.
braze.registerConfigOverride(new BrazeRemoteCommand.ConfigOverrider() {
@Override
public void onOverride(AppboyConfig.Builder b) {
b.setPushDeepLinkBackStackActivityEnabled(true);
b.setPushDeepLinkBackStackActivityClass(UserActivity.class);
}
});
// register the command
teal.addRemoteCommand(braze);
次のコードは、iOS向けのTealiumのObjective-Cライブラリで使用するように設計されていますが、Swiftで記述されています。このコードが正しく機能するためには、Xcodeプロジェクトにブリッジヘッダーが必要です。
let config = TEALConfiguration(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
datasource: "DATASOURCE")
let teal = Tealium.newInstance(forKey: "teal", configuration: config)
let brazeTracker = BrazeTracker()
let brazeCommand = BrazeCommand(brazeTracker: brazeTracker)
let brazeRemoteCommand = brazeCommand.remoteCommand()
teal.addRemoteCommandID("braze", description: nil, targetQueue: DispatchQueue.main, responseBlock: brazeRemoteCommand)
次のコードは、TealiumのiOS向けSwiftライブラリで使用するように設計されています。
var teal : Tealium?
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
datasource: "DATASOURCE",
optionalData: nil)
teal = Tealium(config: config) { responses in
guard let remoteCommands = self.tealium?.remoteCommands() else {
return
}
let brazeTracker = BrazeTracker()
let brazeCommand = BrazeCommand(brazeTracker: brazeTracker)
let brazeRemoteCommand = brazeCommand.remoteCommand()
remoteCommands.add(brazeRemoteCommand)
}
サポートされているメソッド
以下のBrazeメソッドは、以下のTealiumコマンドを使用し、Brazeリモートコマンドタグのデータマッピングを使用してトリガーされます。
リモートコマンド | Brazeメソッド |
---|---|
appendcustomarrayattribute |
addToCustomAttributeArrayWithKey() |
emailnotification |
setEmailNotificationSubscriptionType() |
facebookuser |
facebookUser() |
incrementcustomattribute |
incrementCustomUserAttribute() |
initialize |
startWithApiKey() |
logcustomevent |
logCustomEvent() |
logpurchase |
logPurchase() |
pushnotification |
setPushNotificationSubscriptionType() |
removecustomarrayattribute |
removeFromCustomAttributeArrayWithKey() |
setcustomattribute |
setCustomAttributeWithKey() |
setcustomarrayattribute |
setCustomAttributeArrayWithKey() |
setlastknownlocation |
setLastKnownLocationWithLatitude() |
twitteruser |
twitterUser() |
unsetcustomattribute |
unsetCustomAttributeWithKey() |
useralias |
addAlias() |
userattribute |
ABKUser() |
useridentifier |
changeUser() |
Braze SDKはTealium SDKとともにインストールされているため、対応するタグ構成があれば任意のネイティブBraze機能をトリガーしてください。
SDKのセットアップ
初期化
Braze SDKは起動時に自動的に初期化されます。Braze APIキーはタグ構成で設定されます。
リモートコマンド | Brazeメソッド(iOS) | Brazeメソッド(Android) |
---|---|---|
initialize |
startWithApiKey() |
configure() |
起動オプションの設定には、以下のマッピングが使用されます。
パラメータ | 型 | 説明 |
---|---|---|
custom_endpoint |
String |
カスタムAPIエンドポイントを設定します。sdk.api.braze.eu の形式で送信されます |
device_options |
Int |
Braze SDKによって収集されるデバイスフィールドのホワイトリストを指定するキー(デフォルトではすべてのフィールドが収集されます) |
disable_location |
Int |
位置データの自動収集を無効にします(1 または0 ) |
enable_geofences |
Int |
ジオフェンスの自動収集を有効にします(1 または0 ) |
flush_interval |
Double |
データフラッシュ間隔(秒単位)を設定します。値はNSTimeIntervalsに変換され、1.0 より大きくなければなりません |
push_story_identifier |
String |
このキーは、Push Story Notification Content拡張機能のアプリグループ名を表す文字列値に設定されます。 |
request_processing_policy |
Int |
SDKリクエスト処理の可能な値(デフォルトはABKAutomaticRequestProcessing) |
session_timeout |
Int (秒) |
セッションタイムアウト(秒単位。デフォルト:30 秒) |
trigger_interval_seconds |
Int (秒) |
アプリ内メッセージがトリガーされる最小間隔をオーバーライドします(デフォルト:30 秒) |
Android
iOS
- Braze開発者ガイド:SDKの初期セットアップ
- Braze開発者ガイド:ネットワークトラフィックの微調整
- Braze開発者ガイド:ロケーションとジオフェンス
- Braze開発者ガイド:Push Storyのセットアップ
- Braze開発者ガイド:セッションのトラッキング
ユーザートラッキング
ユーザーIDの割り当て
リモートコマンド | Brazeメソッド |
---|---|
useridentifier |
changeUser |
パラメータ | 型 |
---|---|
user_id (required) |
String |
ユーザーのエイリアシング
リモートコマンド | Brazeメソッド |
---|---|
useralias |
addAlias |
パラメータ | 型 |
---|---|
user_alias (required) |
String |
alias_label (required) |
String |
ユーザー属性
標準的な属性
Event | Brazeメソッド |
---|---|
userattribute | ABKUser/AppboyUser オブジェクトのフィールドを設定します |
パラメータ | 型 |
---|---|
first_name |
String |
last_name |
String |
email |
String |
date_of_birth |
String |
country |
String |
language |
String |
home_city |
String |
phone |
String |
avatar_image_url |
String |
gender |
String |
- Braze開発者ガイド:アナリティクス:ユーザー属性
- Braze開発者ガイド:ユーザーデータAPI
カスタム属性の設定
リモートコマンド | Brazeメソッド(iOS) | Brazeメソッド(Android) |
---|---|---|
setcustomattribute |
setCustomAttributeWithKey |
setCustomUserAttribute |
パラメータ | 型 |
---|---|
set_custom_attribute.PROPERTY |
[String: Any] / JSONObject |
カスタム属性の設定解除
リモートコマンド | Brazeメソッド(iOS) | Brazeメソッド(Android) |
---|---|---|
setcustomattribute |
unsetCustomAttributeWithKey |
unsetCustomUserAttribute |
パラメータ | 型 |
---|---|
set_custom_attribute.PROPERTY |
String |
カスタム属性の増分
リモートコマンド | Brazeメソッド |
---|---|
incrementcustomattribute |
incrementCustomUserAttribute |
パラメータ | 型 |
---|---|
increment_custom_attribute.PROPERTY |
String |
カスタム配列属性の設定
リモートコマンド | Brazeメソッド(iOS) | Brazeメソッド(Android) |
---|---|---|
setcustomarrayattribute | setCustomAttributeArrayWithKey |
setCustomAttributeArray |
パラメータ | 型 |
---|---|
set_custom_array_attribute.PROPERTY |
[String: [Any]] / JSONObject |
カスタム配列属性の追加
リモートコマンド | Brazeメソッド(iOS) | Brazeメソッド(Android) |
---|---|---|
appendcustomarrayattribute |
addToCustomAttributeArrayWithKey |
addToCustomAttributeArray |
パラメータ | 型 |
---|---|
append_custom_array_attribute.PROPERTY |
[String: String] / JSONObject |
カスタムarray属性の削除
リモートコマンド | Brazeメソッド(iOS) | Brazeメソッド(Android) |
---|---|---|
removecustomarrayattribute | removeFromCustomAttributeArrayWithKey |
removeFromCustomAttributeArray |
パラメータ | 型 |
---|---|
remove_custom_array_attribute.PROPERTY |
[String: String] / JSONObject |
ソーシャルデータトラッキング
リモートコマンド | Brazeメソッド |
---|---|
facebookuser |
ABKFacebookUser/FacebookUser オブジェクトを初期化します |
パラメータ | 型 |
---|---|
facebook_id |
[String: Any] / String |
friends_count |
Int |
likes |
[Any] / String[] |
リモートコマンド | Brazeメソッド |
---|---|
twitteruser |
ABKTwitterUser/TwitterUser オブジェクトを初期化します |
パラメータ | 型 |
---|---|
description |
String |
twitter_name |
String |
profile_image_url |
String |
screen_name |
String |
followers_count |
Int |
friends_count |
Int |
statuses_count |
Int |
twitter_id |
Int |
カスタムイベントトラッキング
カスタムイベント
リモートコマンド | Brazeメソッド |
---|---|
logcustomevent |
logCustomEvent |
パラメータ | 型 |
---|---|
event_name (required) |
String |
event_properties |
[String: Any] / JSONObject |
通知
Eメール通知
リモートコマンド | Brazeメソッド |
---|---|
emailnotification |
setEmailNotificationSubscriptionType |
パラメータ | 型 | 例 |
---|---|---|
email_notification |
String |
["optedin" , "subscribed" , "unsubscribed" ] |
プッシュ通知
リモートコマンド | Brazeメソッド |
---|---|
pushnotification | setPushNotificationSubscriptionType |
パラメータ | 型 | 例 |
---|---|---|
push_notification |
String |
["optedin" , "subscribed" , "unsubscribed" ] |
購入トラッキング
購入記録
リモートコマンド | Brazeメソッド |
---|---|
logpurchase | logPurchase |
パラメータ | 型 |
---|---|
product_id (required) |
[String] / String[] |
currency (required) |
String / String |
price (required) |
[Double] /Double[] |
quantity |
[Int] / Int[] |
purchase_properties |
[AnyHashable: Any] / JSONObject |
位置追跡
最後に認識されたユーザーの位置を設定
リモートコマンド | Brazeメソッド |
---|---|
setlastknownlocation |
setLastKnownLocationWithLatitude |
パラメータ | 型 |
---|---|
latitude (required) |
Double |
longitude (required) |
Double |
horizontalAccuracy (required) |
Double |
altitude |
Double |
verticalAccuracy |
Double |
データプライバシー
SDKの有効化
リモートコマンド | Brazeメソッド(iOS) | Brazeメソッド(Android) |
---|---|---|
enable_sdk |
enableSDK |
enableSdk/disableSdk |
パラメータ | 型 | 例 |
---|---|---|
enable_sdk |
Boolean |
true / false |
データのワイプ
リモートコマンド | Brazeメソッド |
---|---|
wipe_data |
wipeData |