RemoteCommandsモジュール
Tealium iQタグ管理のイベントからネイティブコードブロックをトリガーすることを可能にし、拡張機能とロードルールによって制御されます。
リモートコマンドについてもっと学びましょう。
要件
webview
リモートコマンドを使用する場合、TagManagementモジュールが必要です。
コンパイル時の依存関係ではありませんが、リモートコマンドはモジュールからトリガーされます。
対応プラットフォーム
- iOS
- macOS(JSONのみ)
- tvOS(JSONのみ)
- watchOS(JSONのみ)
インストール
Swift Package Manager、CocoaPods、またはCarthageでRemoteCommandsモジュールをインストールします。
Swift Package Manager(推奨)
バージョン1.9.0以降でサポートされているSwift Package Manager(SMP)は、Tealium Swiftライブラリをインストールするための推奨される最も簡単な方法です:
- XcodeプロジェクトでFile > Add Package Dependenciesを選択します。
- リポジトリURLを入力します:
https://github.com/tealium/tealium-swift
- バージョンルールを構成します。通常、
"Up to next major"
が推奨されます。現在のTealium Swiftライブラリバージョンがリストに表示されない場合は、Swiftパッケージキャッシュをリセットしてください。 - インストールするモジュールのリストからRemoteCommandsモジュールを選択し、XcodeプロジェクトのアプリターゲットのFrameworks and Librariesに追加します。
iOSのSPMインストールについてもっと学びましょう。
CocoaPods
CocoaPodsでRemoteCommandsモジュールをインストールするには、Podfileに次のpodを追加します:
pod 'tealium-swift/RemoteCommands'
iOSのCocoaPodsインストールについてもっと学びましょう。
Carthage
CarthageでRemoteCommandsモジュールをインストールするには、次の手順に従います:
-
XcodeでアプリターゲットのGeneral構成ページに移動します。
-
Embedded Binariesセクションに次のフレームワークを追加します:
TealiumRemoteCommands.framework
-
RemoteCommands APIとやり取りする必要がある場合は、プロジェクトに次の必要なインポートステートメントを追加します:
import TealiumRemoteCommands
iOSのCarthageインストールについてもっと学びましょう。
リモートコマンドのオプション
リモートコマンドには2つの構成オプションがあります:
- JSONファイル
ベンダー構成、データマッピング、イベントトリガーを含む、ローカルまたはリモートでホストされたJSONファイル。 - リモートコマンドタグ
iQタグ管理のタグで、ベンダーのAPIの構成オプションを提供します(Tag Managementモジュールと使用する場合)。
リモートコマンドベンダー統合のリストを参照してください。
例
リモートコマンドタグはTealium iQタグ管理で構成可能であり、アプリ内のJSONファイルまたはリモートサーバー上のJSONファイルを介して構成できます。リモートコマンドが構成され、モジュールがアプリにインストールされたら、初期化に次の行を追加します:
var tealium: Tealium?
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
dataSource: "DATASOURCE")
tealium = Tealium(config: config) { [weak self] _ in
guard let remoteCommands = self?.tealium?.remoteCommands else {
return
}
let remoteCommand = RemoteCommand(commandId: "display", description: "Display Prompt") { response in
guard let payload = response.payload else {
return
}
print("Use response payload: \(payload)")
}
remoteCommands.add(remoteCommand)
}
var tealium: Tealium?
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
dataSource: "DATASOURCE")
tealium = Tealium(config: config) { [weak self] _ in
guard let remoteCommands = self?.tealium?.remoteCommands else {
return
}
let remoteCommand = RemoteCommand(commandId: "display", description: "Display Prompt", type: .local(file: "FILENAME")) { response in
guard let payload is response.payload else {
return
}
print("Use response payload: \(payload)")
}
remoteCommands.add(remoteCommand)
}
var tealium: Tealium?
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
dataSource: "DATASOURCE")
tealium = Tealium(config: config) { [weak self] response in
guard let remoteCommands is self?.tealium?.remoteCommands else {
return
}
let remoteCommand = RemoteCommand(commandId: "display", description: "Display Prompt", type: .remote(url: "https://tags.tiqcdn.com/dle/ACCOUNT/PROFILE/FILENAME.json")) { response in
guard let payload is response.payload else {
return
}
print("Use response payload: \(payload)")
}
remoteCommands.add(remoteCommand)
}
JSONファイルが構成され、アプリに追加されたかサーバー上でホストされた後、さまざまなJSONロードオプションについて学びましょう。
データレイヤー
このモジュールによって追加される変数はありません。
APIリファレンス
init()
新しいリモートコマンドオブジェクトを作成し、add
コマンドに渡す準備をします。
パラメータ | 説明 | 例 |
---|---|---|
commandId |
リモートコマンドのための必須の文字列識別子 | "logger" |
description |
リモートコマンドのオプションの文字列説明 | "Log Response object to console" |
type |
リモートコマンドのタイプ(デフォルトはwebview、ローカルまたはリモートのJSON) | .local(file: "logger") |
completion |
トリガーするコードブロック |
使用例は以下の通りです:
let customCommand = TealiumRemoteCommand(commandId: "logger",
description: "Log Response object to console",
type: .local(file: "logger"))
{ (response) in
// 実行するコード
print("Custom command response: \(response)")
})
add()
バージョン1.6.5以降、TealiumConfig
のaddRemoteCommand()
メソッドを使用してリモートコマンドを追加することをお勧めします
指定されたリモートコマンドをTealiumに登録し、後でトリガーするために準備します。新しいリモートコマンドを追加する前にTealiumが初期化されている必要があります。
add(_ remoteCommand: TealiumRemoteCommandProtocol)
使用例は以下の通りです:
var tealium: Tealium?
let customCommand = RemoteCommand(commandId: "logger",
description: nil)
{ response in
// 実行するコード
print("Custom command response: \(response)")
}
if let remoteCommands = self.tealium?.remoteCommands {
remoteCommands.add(customCommand)
} else {
print("Remote commands not available")
}
remove()
以前に登録されたリモートコマンドを削除し、再度トリガーされるのを防ぎます。
remove(commandWithId: String)
remove(jsonCommand: String)
// "tealium"が以前にインスタンス化されていると仮定
tealium?.remoteCommands?.remove(commandWithId: "logger")
tealium?.remoteCommands?.remove(jsonCommand: "logger")
remoteHTTPCommandDisabled
true
の場合、組み込みのリモートHTTPコマンドを無効にしますが、他のコマンド用にリモートコマンドモジュールは有効のままです。デフォルトはfalse
- つまりリモートHTTPコマンドが有効です。
remoteHTTPCommandDisabled
以下は使用例です:
// "config"が以前にインスタンス化されたと仮定 (`TealiumConfig()`)
config.remoteHTTPCommandDisabled = false
リモートHTTPコマンド
これは、内部で予約されたコマンドで、識別子は_http
です。このコマンドはネイティブコードからHTTPリクエストをトリガーし、そのレスポンスをTealium iQのウェブビューに返します。これは、ウェブブラウザで遭遇する可能性のあるCORS制限を回避するためにいくつかの場合に使用されます。このコマンドを使用するには、特定のマッピング名を使用する必要があります:
マッピング名 | 説明 |
---|---|
url |
(必須) トリガーしたいリクエストのURL。 |
method |
(必須) 呼び出したいHTTPメソッド。現在サポートされているのはPUT、GET、POSTのみです。 |
headers |
(オプション) リクエストと共に渡すヘッダーのキーと値のペアを含むJavaScriptオブジェクト(JSON)。例:{"Content-Type": "application/json"} 。 |
callback_function |
(オプション) コマンドが完了したときに呼び出されるJavaScript関数。コールバック関数には2つのパラメータが渡されます:code はHTTPレスポンスコード(例:404や200)、body はリクエストからのレスポンスボディです。 |
以下はコールバック関数の例です:
var my_callback = function(code, body) {
// レスポンスボディがJSONオブジェクトだったと仮定すると、これはウェブビューのコンソールにmy_response_variableという変数をログに記録します
console.log(body.my_response_variable);
}
最終更新日 :: 2025年September月11日