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 > Swift Packages > Add Package Dependencyを選択します。
- リポジトリのURLを入力します:
https://github.com/tealium/tealium-swift
- バージョンルールを構成します。通常、
"Up to next major"
が推奨されます。現在のTealium Swiftライブラリのバージョンがリストに表示されない場合は、Swiftパッケージキャッシュをリセットします。 - インストールするモジュールのリストからRemoteCommandsモジュールを選択し、Xcodeプロジェクトの各アプリターゲットに追加します。Frameworks > Libraries & Embedded Contentの下にあります。
SPMによるiOSのインストールについて詳しく学びましょう。
CocoaPods
CocoaPodsでRemoteCommandsモジュールをインストールするには、以下のpodをPodfileに追加します:
pod 'tealium-swift/RemoteCommands'
iOSのCocoaPodsによるインストールについて詳しく学びましょう。
Carthage
CarthageでRemoteCommandsモジュールをインストールするには、以下の手順を実行します:
-
Xcodeでアプリターゲットの一般構成ページに移動します。
-
次のフレームワークをEmbedded Binariesセクションに追加します:
TealiumRemoteCommands.framework
-
RemoteCommands APIとやり取りする必要がある場合は、プロジェクトに次の必要なインポート文を追加します:
import TealiumRemoteCommands
iOSのCarthageによるインストールについて詳しく学びましょう。
リモートコマンドのオプション
リモートコマンドには2つの構成オプションがあります:
- JSONファイル
ベンダーの構成、データマッピング、イベントトリガーを含むJSONファイル。ローカルにロードするか、リモートでホストすることができます。 - リモートコマンドタグ
ベンダーのAPIの構成オプションを提供するiQタグ管理のタグ(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 = 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 = 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 = 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
// code to execute
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
// 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)
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 は404や200などのHTTPレスポンスコードで、body はリクエストからのレスポンスボディです。 |
以下はコールバック関数の例です:
var my_callback = function(code, body) {
// レスポンスボディがJSONオブジェクトであったと仮定すると、これはウェブビューのコンソールにmy_response_variableという変数をログします
console.log(body.my_response_variable);
}
最終更新日 :: 2024年March月29日