リモートコマンド:Braze
AndroidおよびSwift/iOSにおけるBrazeのTealiumリモートコマンド統合です。
要件
- Braze APIキー
- これらのモバイル ライブラリのうちのいずれか:
- Tealium for Android-Kotlin (1.0.0 以降)
- Tealium for Android-Java (5.9.0 以降 (Braze 1.0.0 以降用) または 5.9.0 以前 (旧バージョン用))
- Tealium for iOS-Swift
- これらのリモート コマンド統合のいずれか:
- Braze Remote Command JSON File (Android-Kotlin 1.0.0 以降または iOS-Swift 2.1.0 以降が必要)
- Brazeリモートコマンドタグ(Tealium iQ Tag Management)
仕組み
Braze 統合は、これらのアイテムを使用します:
- Braze ネイティブ SDK
- Braze メソッドをラップするリモート コマンド モジュール
- イベント トラッキングをネイティブ Braze コールに翻訳する、JSON 構成ファイルまたは Remote Command タグのいずれか
Braze リモート コマンド モジュールをアプリに追加すると、必要な Braze ライブラリが自動的にインストールされ、ビルドされます。この際、ベンダー固有のコードをアプリに追加する必要はありません。依存関係マネージャのインストールを使用している場合、Braze SDKを個別にインストールする必要はありません。
リモート コマンド オプションは、次の 2 つがあります: A JSON 構成ファイル、または、マッピングを構成するための iQ タグ管理の使用。A JSON 構成ファイルは、リモートでホスティングするか、またはアプリ内でローカルでホスティングするかのいずれでも、ベンダー統合の推奨オプションです。iQ タグ管理を使用する場合は、ベンダー統合用のリモート コマンド タグを追加します。ベンダー統合の詳細は、こちらから参照してください。
インストール
依存関係マネージャ
次の依存関係マネージャのいずれかをインストールに使用することをお勧めします。
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/RemoteCommands'
'tealium-swift/TagManagement'
- モジュール
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.x) および TealiumBraze
バージョン 1.x では、 TealiumDelegate
モジュールがインストールに含まれている必要があります。
Mavenを使用してAndroidのBrazeリモートコマンドをインストールするには:
-
Tealium for Android (Kotlin) または Tealium for Android (Java) をインストールして、Tealium Maven URL を、プロジェクトのトップレベル
build.gradle
ファイルに追加します (まだ済んでいない場合)。allprojects { repositories { mavenCentral() maven { url "https://maven.tealiumiq.com/android/releases/" } } }
-
アプリプロジェクトの
build.gradle
ファイルに次の依存関係を追加して、Braze SDKとTealium-Brazeの両方のリモートコマンドをインポートします。
dependencies {
implementation 'com.tealium.remotecommands:braze:1.0.0'
implementation 'com.appboy:android-sdk-ui:10.1.0'
}
手動による手順(iOS)
Braze リモート コマンドを手動でインストールするには、 Tealium for Swift ライブラリがインストールされている必要があります。iOSプロジェクトのBrazeリモートコマンドをインストールするには:
-
Braze SDKをまだインストールしていない場合はインストールします。
-
Tealium iOS Brazeリモートコマンドレポジトリをクローンして、
Sources
フォルダ内のファイルをプロジェクトにドラッグします。 -
remoteAPIEnabled
構成フラッグをtrue
に構成します
初期化
すべてのTealiumライブラリでは、初期化時にBrazeリモートコマンドを登録する必要があります。
Android (Kotlin)
Tealium の Kotlin ライブラリ用の JSON 構成ファイルまたはリモート コマンド タグを用いてリモート コマンドを初期化します。
以下のコードは、ローカル ファイル オプションを使用して、JSON Remote Commands 機能とともに用いるために設計されています。
val config = TealiumConfig(application,
"ACCOUNT",
"PROFILE",
Environment.DEV,
dispatchers = mutableSetOf(Dispatchers.RemoteCommands));
// New code to add the Braze Remote Command
val brazeRemoteCommand = BrazeRemoteCommand(application,
true,
sessionHandlingBlacklist,
true,
inAppMessageBlacklist)
var tealium = Tealium.create(TEALIUM_MAIN, config) {
// Optional: Set config options that may not be supported yet by the Tag in Tealium IQ
// or simply to override settings locally.
brazeRemoteCommand.registerConfigOverride { builder ->
// builder.setIsLocationCollectionEnabled(true);
// builder.setGeofencesEnabled(true);
// builder.setPushDeepLinkBackStackActivityEnabled(true);
// builder.setPushDeepLinkBackStackActivityClass(UserActivity.class);
}
// register the command
remoteCommands?.add(brazeRemoteCommand, filename = "braze.json");
}
以下のコードは、Remote Command タグ機能とともに用いるために設計されています。
val config = TealiumConfig(application,
"ACCOUNT",
"PROFILE",
Environment.DEV,
dispatchers = mutableSetOf(Dispatchers.RemoteCommands, Dispatchers.TagManagement));
// New code to add the Braze Remote Command
val brazeRemoteCommand = BrazeRemoteCommand(application,
true,
sessionHandlingBlacklist,
true,
inAppMessageBlacklist)
var tealium = Tealium.create(TEALIUM_MAIN, config) {
// Optional: Set config options that may not be supported yet by the Tag in Tealium IQ
// or simply to override settings locally.
brazeRemoteCommand.registerConfigOverride { builder ->
// builder.setIsLocationCollectionEnabled(true);
// builder.setGeofencesEnabled(true);
// builder.setPushDeepLinkBackStackActivityEnabled(true);
// builder.setPushDeepLinkBackStackActivityClass(UserActivity.class);
}
// register the command
remoteCommands?.add(brazeRemoteCommand);
}
Android (Java)
Android 向けの JSON Remote Command ファイル機能は、Kotlin SDK でのみ利用できます。
以下のコードは、Remote Command タグ機能とともに用いるために設計されています。
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 (Swift)
Tealium の iOS (Swift) ライブラリ用の JSON 構成ファイルまたはリモート コマンド タグを用いてリモート コマンドを初期化します。
以下のコードは、ローカル ファイル オプションを使用して、JSON Remote Commands 機能とともに用いるために設計されています。
var tealium : Tealium?
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
dataSource: "DATASOURCE",
optionalData: nil)
config.remoteAPIEnabled = true // Required to use Remote Commands
tealium = Tealium(config: config) { _ in
guard let remoteCommands = self.tealium?.remoteCommands else {
return
}
let braze = BrazeRemoteCommand(type: .local(file: "braze"))
remoteCommands.add(braze)
}
以下のコードは、Remote Command タグ機能とともに用いるために設計されています。
var tealium : Tealium?
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
dataSource: "DATASOURCE",
optionalData: nil)
config.remoteAPIEnabled = true // Required to use Remote Commands
tealium = Tealium(config: config) { _ in
guard let remoteCommands = self.tealium?.remoteCommands else {
return
}
let braze = BrazeRemoteCommand()
remoteCommands.add(braze)
}
JSON テンプレート
JSON 構成ファイルを使用してリモート コマンドを構成しようとする場合は、まず、以下のテンプレートを参照します。テンプレートには、標準的な E コマースのインストールに用いられる共通マッピングが含まれます。必要に応じて、マッピングを編集します。
{
"config": {
"api_key": "YOUR_API_KEY",
"session_timeout": 30,
"disable_location": false,
"trigger_interval_seconds": 100
},
"mappings": {
"customer_id": "user_id",
"customer_first_name": "first_name",
"customer_last_name": "last_name",
"customer_gender": "gender",
"customer_language": "language",
"customer_email": "email",
"customer_home_city": "home_city",
"customer_dob": "date_of_birth",
"customer_alias": "user_alias",
"customer_alias_label": "alias_label",
"pet": "set_custom_attribute.pet",
"pet_count": "set_custom_attribute.pet_count",
"pet_count_unset": "unset_custom_attribute.pet_count_unset",
"pet_count_increment": "increment_custom_attribute.pet_count_increment",
"pet_names": "set_custom_array_attribute.pet_names",
"pet_names_append": "append_custom_array_attribute.pet_names_append",
"pet_names_remove": "remove_custom_array_attribute.pet_names_remove",
"facebook_user": "facebook_user",
"number_of_friends": "friends_count",
"list_of_likes": "likes",
"facebook_user_properties": "facebook_user",
"social_media_user_description": "description",
"twitter_id": "twitter_id",
"twitter_name": "twitter_name",
"twitter_user_description": "description",
"profile_image_url": "profile_image_url",
"screen_name": "screen_name",
"number_of_followers": "followers_count",
"number_of_statuses": "statuses_count",
"email_notification": "email_notification",
"push_notification": "push_notification",
"event_name": "event_name",
"current_level": "event.current_level",
"start_date": "event.start_date",
"high_score": "event.high_score",
"product_id": "product_id",
"product_quantity": "quantity",
"product_unit_price": "product_unit_price",
"currency_code": "order_currency",
"rewards_member": "purchase.rewards_member",
"rewards_points_earned": "purchase.rewards_points_earned",
"date_joined_program": "purchase.date_joined_program",
"latitude": "location_latitude",
"longitude": "location_longitude",
"horizontal_accuracy": "location_horizontal_accuracy"
},
"commands": {
"launch": "initialize",
"twitter": "twitteruser",
"facebook": "facebookuser",
"setengagement": "emailnotification,pushnotification",
"log_custom_event": "logcustomevent",
"set_location": "setlastknownlocation",
"custom_attribute": "setcustomattribute",
"unset_custom_attribute": "unsetcustomattribute",
"custom_array_attribute": "appendcustomarrayattribute",
"append_custom_array_attribute": "appendcustomarrayattribute",
"remove_custom_array_attribute": "removecustomarrayattribute",
"increment_custom_attribute": "incrementcustomattribute",
"log_purchase": "logpurchase",
"user_attribute": "userattribute,useridentifier,useralias",
"user_login": "useridentifier,useralias",
"user_alias": "useralias",
}
}
サポートされているメソッド
以下の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 |
最終更新日 :: 2024年April月30日