RemoteCommandsモジュール
リモートコマンドの詳細については、こちらを参照してください。
要件
- Tealium iQ Tag Managementモジュール。コンパイル時の依存関係ではありませんが、リモートコマンドはモジュールからのみトリガーされます。
サポートされているプラットフォーム
- iOS
インストール
RemoteCommandsモジュールをCocoaPodsまたはCarthageによってインストールします。
CocoaPods
RemoteCommandsモジュールをCocoaPodsによってインストールするには、Podfileに以下のポッドを追加します。
pod 'tealium-swift/TealiumRemoteCommands'
フレームワークは自動でインスタンス化され、TealiumCore
ポッドに依存しています。iOS向けCocoaPodsのインストールの詳細については、こちらを参照してください。
Carthage
RemoteCommandsモジュールをCarthageによってインストールするには、以下の手順に従います。
Xcodeで対象アプリの[General]構成ページに移動します。
以下のフレームワークを[Embedded Binaries]セクションに追加します。
TealiumRemoteCommands.framework
RemoteCommands APIを対話的に操作する必要がある場合は、次の必須のインポートステートメントをプロジェクトに追加します。
import TealiumRemoteCommands
フレームワークは自動でインスタンス化され、TealiumCore
に依存しています。追加のインポートステートメントは必要ありません。iOS向けCarthageのインストールの詳細については、こちらを参照してください。
例
Tealium IQでリモートコマンドタグが設定され、モジュールがアプリにインストールされたら、次の例に示すように、次の行を初期化に追加します。
class TealiumHelper {
var tealium: Tealium?
// ...
private func initTealium() {
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
datasource: "DATASOURCE")
guard let remoteCommands = self?.tealium?.remoteCommands() else {
return
}
let brazeCommand = BrazeCommand(brazeTracker: BrazeTracker())
let brazeRemoteCommand = brazeCommand.remoteCommand()
remoteCommands.add(brazeRemoteCommand)
// ...
}
}
データレイヤー
このモジュールによって導入される追加の変数はありません。
APIリファレンス
init()
add
コマンドに渡すことができる新しいリモートコマンドオブジェクトを作成します。
パラメータ | 説明 | 例 |
---|---|---|
commandId |
リモートコマンドに必要な文字列識別子 | "logger" |
description |
リモートコマンドのオプションの文字列説明 | "Log Response object to console" |
queue |
コードブロックをトリガーするキュー | DispatchQueue.main |
completion |
トリガーするコードのブロック |
以下は使用例です。
let customCommand = TealiumRemoteCommand(commandId: "logger",
description: "Log Response object to console",
queue: DispatchQueue.main)
{ (response) in
// code to execute
print("Custom command response: (response)")
})
add()
1.6.5の時点では、TealiumConfig
のaddRemoteCommand()
メソッドを使用してリモートコマンドを追加することを推奨します。
後でトリガーするために、指定したリモートコマンドをTealiumに登録します。新しいリモートコマンドを追加する前に、Tealiumを初期化しておく必要があります。
add(remoteCommand: TealiumRemoteCommand)
以下は使用例です。
var tealium: Tealium?
let customCommand = TealiumRemoteCommand(commandId: "logger",
description: nil,
queue: DispatchQueue.main)
{ response in
// code to execute
print("Custom command response: (response)")
})
if let remoteCommands = self.tealium?.remoteCommands() {
remoteCommands.add(customCommand)
} else {
print("Remote commands not available")
}
remove()
以前に登録したリモートコマンドを削除して、再度トリガーされないようにします。
remove(commandWithId: String)
// assumes "tealium" previously instantiated
tealium?.remoteCommands()?.remove(commandWithId: "logger")
disableRemoteCommands()
RemoteCommandsモジュールを無効にします。
disableRemoteCommands()
以下は使用例です。
// assumes "tealium" previously instantiated
tealium?.remoteCommands()?.disableRemoteCommands()
enableRemoteCommands()
RemoteCommandsモジュールを有効にします(以前に無効にした場合のみ必要、デフォルトでは有効)。
enabledRemoteCommands()
以下は使用例です。
// assumes "tealium" previously instantiated
tealium?.remoteCommands()?.enableRemoteCommands()
disableRemoteHTTPCommand()
ビルトインリモートHTTPコマンドを無効にしますが、他のコマンド用にRemoteCommandsモジュールは有効のままにします。
disableRemoteHTTPCommand()
以下は使用例です。
// assumes "tealium" previously instantiated
tealium?.remoteCommands()?.disableRemoteHTTPCommand()
enableRemoteHTTPCommand()
ビルトインリモートHTTPコマンドを有効にします(以前に無効にした場合のみ必要、デフォルトでは有効)。
enableRemoteHTTPCommand()`
以下は使用例です。
// assumes "tealium" previously instantiated
tealium?.remoteCommands()?.enableRemoteHTTPCommand()
リモートHTTPコマンド
これは識別子_http
を持つ予約済み内部コマンドであり、ネイティブコードからのHTTPリクエストをトリガーし、その応答をTealium iQウェブビューに返します。これは、ウェブブラウザで適用される場合があるCORS制限をバイパスするために、状況に応じて使用されます。このコマンドを使用するには、特定のマッピング名を使用する必要があります。
Mapping Name | 説明 |
---|---|
url |
(必須)トリガーするリクエストのURL。 |
method |
(必須)呼び出すHTTPメソッド。現在サポートされているメソッドは、PUT、GET、POSTのみです。 |
headers |
(オプション)リクエストとともに渡すヘッダーのキーと値のペアを含むJavaScriptオブジェクト(JSON)。例:{"Content-Type": "application/json"} )。 |
callback_function |
(オプション)コマンドの完了時に呼び出すJavaScript関数。このコールバック関数には、2つのパラメータが渡されます。HTTP応答コード(404、200など)であるcode と、リクエストからの応答本体であるbody です。 |
コールバック関数の例を示します。
var my_callback = function(code, body) {
// assuming the response body was a JSON object, this logs a variable called my_response_variable to the console in the web view
console.log(body.my_response_variable);
}
実際の例については、Adobe Analyticsによるアプリダウンロードのトラッキングに関する記事を参照してください。