RemoteCommandsモジュール
リモート コマンドの詳細は、こちらから参照してください。
要件
webview
リモート コマンドを使用する場合は、 TagManagement モジュール が必要です。local
またはremote
JSON リモート コマンドを使用する場合は、 Collect モジュール が必要です。
コンパイル時の依存関係ではありませんが、リモート コマンドはモジュールからのみトリガーされます。
サポートされているプラットフォーム
- iOS
- macOS (JSON のみ)
- tvOS (JSON のみ)
- watchOS (JSON のみ)
インストール
RemoteCommands モジュールを Swift Package Manager、CocoaPods、または Carthage によってインストールします。
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 モジュールを選択し、 [Frameworks] > [Libraries & Embedded Content] で、Xcode プロジェクトの各アプリ ターゲットにこれを追加します
iOS 向け SPM のインストールの詳細は、こちらから参照してください。
CocoaPods
RemoteCommandsモジュールをCocoaPodsによってインストールするには、Podfileに以下のポッドを追加します。
pod 'tealium-swift/RemoteCommands'
iOS 向け CocoaPods のインストールの詳細は、こちらから参照してください。
Carthage
RemoteCommandsモジュールをCarthageによってインストールするには、以下の手順に従います。
Xcodeで対象アプリの[General]構成ページに移動します。
以下のフレームワークを[Embedded Binaries]セクションに追加します。
TealiumRemoteCommands.framework
RemoteCommands APIを対話的に操作する必要がある場合は、次の必須のインポートステートメントをプロジェクトに追加します。
import TealiumRemoteCommands
iOS 向け Carthage のインストールの詳細は、こちらから参照してください。
リモート コマンド オプション
リモートコマンドに関する 2 つのリモート構成オプションがあります。
- JSON ファイル ローカルに読み込んだ、またはリモートでホスティングされる JSON ファイルで、ベンダー設定、データ マッピング、イベント トリガーを含むもの。
- リモート コマンド タグ ベンダーの API に関する構成オプションを提供する iQ タグ管理のタグ (タグ管理モジュールとともに用いる場合)。
リモート コマンド ベンダー統合のリストを参照してください。
例
Remote Command (リモート コマンド) タグは、アプリ内の JSON ファイル、またはリモート サーバー上の JSON ファイルを通じて、Tealium iQ Tag タグ管理で構成可能です。リモート コマンドが設定され、モジュールがアプリにインストールされたら、次の行を初期化に追加します。
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 |
リモート コマンドのタイプ (ウェブビュー (デフォルト)、ローカル、または、リモート 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)
// assumes "tealium" previously instantiated
tealium?.remoteCommands?.remove(commandWithId: "logger")
tealium?.remoteCommands?.remove(jsonCommand: "logger")
remoteHTTPCommandDisabled
true
であるときには、ビルトイン リモート HTTP コマンドを無効にしますが、他のコマンド用にリモート コマンド モジュールは有効のままにします。デフォルトは、 false
になっています。 - そうでなければ、 Remote HTTP Command が有効になっています
remoteHTTPCommandDisabled
以下は使用例です。
// assumes "config" previously instantiated (`TealiumConfig()`)
config.remoteHTTPCommandDisabled = false
リモート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によるアプリダウンロードのトラッキングに関する記事を参照してください。
このページはお役にたちましたでしょうか?
最終更新日 :: 2022年August月29日