VisitorServiceモジュール
ビジターサービスから更新されたビジタープロファイルを取得します。
使用法
VisitorServiceモジュールは、Tealium Customer Data Hubのデータレイヤーエンリッチメント機能を実装しています。
このモジュールの使用は、Tealium AudienceStreamのライセンスを持っており、モバイルアプリケーションでユーザーエクスペリエンスを向上させるためにビジタープロファイルを使用したい場合に推奨されます。AudienceStreamのライセンスを持っていない場合、このモジュールの使用は推奨されません。
以下のプラットフォームがサポートされています。
- iOS
- tvOS
- watchOS
- macOS
インストール
VisitorServiceモジュールをSwift Package Manager、CocoaPods、またはCarthageでインストールします。
Swift Package Manager(推奨)
バージョン1.9.0以上でサポートされているSwift Package Managerは、Tealium Swiftライブラリをインストールするための推奨される最も簡単な方法です。
- Xcodeプロジェクトで、「ファイル」>「Swiftパッケージ」>「パッケージの依存関係を追加」を選択します。
- リポジトリのURL
https://github.com/tealium/tealium-swift
を入力します。 - バージョンルールを構成します。通常は、「次のメジャーバージョンまで」が推奨されます。現在のTealium Swiftライブラリのバージョンがリストに表示されない場合は、Swiftパッケージキャッシュをリセットしてください。
- リストから
VisitorService
、Core
、およびCollect
またはTagManagement
モジュールを選択し、Xcodeプロジェクトの各アプリターゲットに追加します。「フレームワーク」>「ライブラリと埋め込みコンテンツ」の下にあります。
CocoaPods
CocoaPodsを使用してVisitorServiceモジュールをインストールするには、次のポッドをPodfileに追加します。
pod 'tealium-swift/Core'
pod 'tealium-swift/Collect' //または 'tealium-swift/TagManagement'
pod 'tealium-swift/VisitorService'
iOS用のCocoaPodsのインストールについて詳しくはこちらをご覧ください。
Carthage
Carthageを使用してVisitorServiceモジュールをインストールするには、次の手順に従います。
-
Xcodeのアプリターゲットの一般構成ページに移動します。
-
次のフレームワークを「埋め込みバイナリ」セクションに追加します。
TealiumVisitorService.framework
-
VisitorServiceモジュールを構成するには、次の必須のインポートステートメントをプロジェクトに追加します。
import TealiumCore import TealiumCollect //またはimport TealiumTagManagement import TealiumVisitorService
iOS用のCarthageのインストールについて詳しくはこちらをご覧ください。
初期化
モジュールを初期化するには、TealiumConfig
のcollectors
collectors
プロパティに指定されていることを確認します。
config.collectors = [Collectors.VisitorService]
ビジターデータオブジェクト
ビジタープロファイルは、各属性のフレンドリーな名前を含むオブジェクトです。currentVisit
プロパティがあり、ビジター/ビジット属性タイプを区別することができます。属性の値は、IDを使用してサブスクリプトを使用してアクセスします。属性が存在しない場合は、nil
が返されます。以下のリストを参照してください。
属性のタイプ
パラメーター | プロパティ | 値 |
---|---|---|
arraysOfBooleans |
id: String, value: [Bool] | id: "5129", value: [true,false,true,true] |
arraysOfNumbers |
id: String, value: [Double] | id: "57", value: [4.82125, 16.8, 0.5714285714285714] |
arraysOfStrings |
id: String, value: [String] | id: "5213", value: ["green shirts", "green shirts", "blue shirts"] |
audiences |
id: String, value: String | id: "tealiummobile\_demo\_103", value: "iOS Users" |
badges |
id: String, value: Bool | id: "2815", value: true |
booleans |
id: String, value: Bool | id: "4868", value: true |
currentVisit |
現在のビジットのビジタープロファイルのすべての属性。現在のビジットプロファイルには、AudiencesまたはBadgesは含まれません。 | TealiumCurrentVisitProfile(dates: ["5376": 1567536668080, "10": 1567536668000], booleans: ["4530": true], numbers: ["32": 3.8]) |
dates |
id: String, value: Int | id: "22", value: 1567120112000 |
numbers |
id: String, value: Double | id: "5728", value: 4.82125 |
setOfStrings |
id: String, value: Set |
id: "5211", value: ["green shirts", "red shirts", "blue shirts"] |
strings |
id: String, value: String | id: "5380", value: "green shirts" |
tallies |
id: String, value: [String:Double] | "57": [["category 1": 2.0], "category 2": 1.0]] |
tallyValue |
id: String, value: Double | ["category 1": 2.0] |
AudienceまたはBadgeが割り当てられていない場合、nil
が返されます。
arraysOfBooleans
使用法 | 説明 | タイプ | 例 |
---|---|---|---|
visitorProfile.arraysOfBooleans |
ビジタープロファイルのすべてのブール配列を返します。 | [String: [Bool]] |
["2333": [true,false], "1123": [true,true]] |
visitorProfile.arraysOfBooleans["2815"] |
IDによってブール配列を返します。 | [Bool] |
[true,true] |
使用例:
func didUpdate(visitorProfile: TealiumVisitorProfile) {
// ブール配列の値を返す
if let arraysOfBooleans = visitorProfile.arraysOfBooleans?["5279"] {
let numberOfPositiveBools = arraysOfBooleans.filter { $0 == true }.count
print(numberOfPositiveBools)
}
}
arraysOfNumbers
使用法 | 説明 | タイプ | 例 |
---|---|---|---|
visitorProfile.arraysOfNumbers |
ビジタープロファイルのすべての数値配列を返します。 | [String: [Double]] |
["2333": [2.0, 1.0], "1123": [4.82125, 3.0]] |
visitorProfile.arraysOfNumbers["2815"] |
IDによって数値配列を返します。 | [Double] |
[4.82125, 3.0] |
使用例:
func didUpdate(visitorProfile: TealiumVisitorProfile) {
// 数値配列の値を返す
if let arraysOfNumbers = visitorProfile.arraysOfNumbers?["5279"] {
arraysOfNumbers.forEach { number in
if number > 3.0 {
// ... アクションを実行
}
}
}
}
arraysOfStrings
使用法 | 説明 | タイプ | 例 |
---|---|---|---|
visitorProfile.arraysOfStrings |
ビジタープロファイルのすべての文字列配列を返します。 | [String: [String]] |
["1033": ["Foundation", "Perfume"], "3390": ["Bootleg Jeans", "Dresses"]] |
visitorProfile.arraysOfStrings["3390"] |
IDによって文字列配列を返します。 | [String] |
["Bootleg Jeans", "Dresses"] |
使用例:
func didUpdate(visitorProfile: TealiumVisitorProfile) {
// 文字列配列の値を返す
if let arraysOfStrings = visitorProfile.arraysOfStrings?["3390"] {
arraysOfStrings.forEach { string in
if string.lowercased().contains("Jeans") {
// ... アクションを実行
}
}
}
}
audiences
使用法 | 説明 | タイプ | 例 |
---|---|---|---|
visitorProfile.audiences |
ビジターが所属するすべてのオーディエンスを返します。 | [String: String] |
["tealiummobile\_demo\_103": "iOS Users", "tealiummobile\_demo\_110": "Visitors - Known"] |
visitorProfile.audiences["103"] |
IDに基づいてビジターがオーディエンスのメンバーであるかどうかを返します。 | Bool |
true |
オーディエンスが割り当てられていない場合、nil
が返されます。
使用例:
func didUpdate(visitorProfile: TealiumVisitorProfile) {
// ユーザーが割り当てられている現在のオーディエンスを返す
if let audiences = visitorProfile.audiences {
print("Visitor audiences: \(audiences)")
// IDでユーザーがオーディエンスに割り当てられているかどうかを確認する
if audiences["account_profile_106"] != nil {
print("Visitor is a member of audience id 106")
// ... このオーディエンスのメンバーである場合、適切なアクションを実行
}
}
}
badges
使用法 | 説明 | タイプ | 例 |
---|---|---|---|
visitorProfile.badges |
ビジタープロファイルのすべてのバッジを返します。 | [String: Bool] |
["2815": true, "2813": true] |
visitorProfile.badges["2815"] |
IDによってバッジを返します。 | Bool |
true |
使用例:
func didUpdate(visitorProfile: TealiumVisitorProfile) {
// バッジの値を返す
if let badgeAssigned = visitorProfile.badges?["5279"] {
print(badgeAssigned ? "Badge id 5279 is assigned" : "Badge id 5945 is not assigned")
}
}
バッジが割り当てられていない場合、nil
が返されます。
booleans
使用法 | 説明 | タイプ | 例 |
---|---|---|---|
visitorProfile.booleans |
ビジタープロファイルのすべてのブール値を返します。 | [String: Bool] |
["5784": true, "1453": false] |
visitorProfile.booleans["4692"] |
IDによってブール値を返します。 | Bool |
true |
使用例:
func didUpdate(visitorProfile: TealiumVisitorProfile) {
// ブール値を返す
if let booleanValue = visitorProfile.booleans?["4479"] {
if booleanValue {
// ... アクションを実行
}
}
}
currentVisit
ビジットの属性にアクセスするための属性。ビジタープロファイルのライフタイム属性ではなく、現在のビジットの属性です。
使用法 | 説明 | タイプ | 例 |
---|---|---|---|
visitorProfile.currentVisit |
現在のビジットのスコープ属性を返します。 | TealiumCurrentVisitProfile |
TealiumCurrentVisitProfile(dates: ["5376": 1567536668080, "10": 1567536668000], booleans: ["4530": true], numbers: ["32": 3.8]) |
visitorProfile.currentVisit.### |
###に応じて必要な属性を返します。AudiencesとBadges以外のすべての同じメソッドが適用されます。これらは専用のビジター属性であり、ビジットには適用されません。 | 異なるタイプ | 異なる値 |
使用例:
func didUpdate(visitorProfile: TealiumVisitorProfile) {
// 現在のビジットの文字列属性を返す
if let currentVisit = visitorProfile.currentVisit,
let string = currentVisit.strings?["34"] {
print(string)
// ... アクションを実行
}
}
dates
使用法 | 説明 | タイプ | 例 |
---|---|---|---|
visitorProfile.dates |
ビジタープロファイルのすべての日付を返します。 | [String: Int] |
["25": 1567120112000, "13": 1567120145666] |
visitorProfile.dates["4692"] |
IDによって日付を返します。 | Int |
1567120112000 |
使用例:
func didUpdate(visitorProfile: TealiumVisitorProfile) {
// 日付の値を返す
if let date = visitorProfile.dates?["33"] {
print(date)
// .. アクションを実行
}
}
numbers
使用法 | 説明 | タイプ | 例 |
---|---|---|---|
visitorProfile.numbers |
ビジタープロファイルのすべての数値を返します。 | [String: Double] |
["83": 0.5714285714285714, "1399": 2.0] |
visitorProfile.numbers["1399"] |
IDによって数値を返します。 | Double |
4.82125 |
使用例:
func didUpdate(visitorProfile: TealiumVisitorProfile) {
// 数値の値を返す
if let number = visitorProfile.numbers?["1399"] {
if number > 3.0 {
// ... アクションを実行
}
}
}
setsOfStrings
使用法 | 説明 | タイプ | 例 |
---|---|---|---|
visitorProfile.setsOfStrings |
ビジタープロファイルのすべての文字列セットを返します。 | [String: Set<String>] |
["9938": ["shirts"], "2300": ["Luxury Couch 1", "Luxury Couch 2"]] |
visitorProfile.setsOfStrings["2300"] |
IDによって文字列セットを返します。 | Set<String> |
["Luxury Couch 1", "Luxury Couch 2"] |
使用例:
func didUpdate(visitorProfile: TealiumVisitorProfile) {
// 文字列セットの値を返す
if let setOfStrings = visitorProfile.setsOfStrings?["5279"] {
if setOfStrings.contains("toys") {
// ... アクションを実行
}
}
}
strings
使用法 | 説明 | タイプ | 例 |
---|---|---|---|
visitorProfile.strings |
ビジタープロファイルのすべての文字列を返します。 | String |
"83": "Toy Truck", "5699": "Toy Tea Set"] |
visitorProfile.strings["5699"] |
IDによって文字列を返します。 | String |
"Toy Tea Set" |
使用例:
func didUpdate(visitorProfile: TealiumVisitorProfile) {
// 文字列の値を返す
if let string = visitorProfile.strings?["5699"] {
print(string)
// ... アクションを実行
}
}
tallies
使用法 | 説明 | タイプ | 例 |
---|---|---|---|
visitorProfile.tallies |
ビジタープロファイルのすべての集計を返します。 | [String: [String: Double]] |
["2983": ["red shirts category": 4.0, "green shirts category": 2.0], "5643": ["girls": 3.0, "womens": 1.0]] ] |
visitorProfile.tallies["1399"] |
IDによって集計を返します。 | [String: Double] |
["girls": 3.0, "womens": 1.0] |
visitorProfile.tallies["1399"]["womens"] |
IDによって集計を返します。 | Double |
3.0 |
使用例:
func didUpdate(visitorProfile: TealiumVisitorProfile) {
// 集計全体を返す
if let tally = visitorProfile.tallies?["1399"] {
print("Tally id 5377: \(tally)")
}
// 集計IDと値のキーを使用して集計値を返す
if let tally = visitorProfile.tallies?["5381"], let tallyValue = tally["red shirts"] {
print("Tally value for id 5381 and key 'red shirts': \(tallyValue)")
}
}
APIリファレンス
クラス Tealium
以下は、VisitorServiceモジュールの一般的に使用されるメソッドとプロパティをまとめたものです。
メソッド/プロパティ | 説明 |
---|---|
cachedProfile |
最新のビジタープロファイルを永続保存から取得し、新しいリクエストをトリガーしません |
requestVisitorProfile() |
ビジターサービスに即時リクエストを送信して、現在のビジタープロファイルを取得します |
visitorService |
VisitorServiceモジュールのプロパティ |
cachedProfile
最新のビジタープロファイルを永続保存から取得し、新しいリクエストをトリガーしません。インターネット接続がない場合でも、以前の成功したリクエストがある場合に使用します。
使用例:
let profile = self.tealium?.visitorService?.cachedProfile
guard let json = try? JSONEncoder().encode(profile),
let cachedProfileString = String(data: json, encoding: .utf8) else {
return
}
print(cachedProfileString)
requestVisitorProfile()
ビジターサービスに即時リクエストを送信して、現在のビジタープロファイルを取得します。プロファイルが最後の取得以降に更新されている場合、didUpdate()
デリゲートメソッドが呼び出されます。
このメソッドは、トラッキングリクエストが送信されるたびに自動的に呼び出されます(ビジタープロファイルの更新間隔が0
に構成されている場合)。更新間隔の値がより高い場合は、次のスケジュールされた更新を待たずにプロファイルを即座に取得するためにこのメソッドを呼び出すことができます。
self.tealium?.visitorService?.requestVisitorProfile()
使用例:
func track(title: String, data: [String: Any]?) {
let tealEvent = TealiumEvent(title, dataLayer: data)
tealium?.track(tealEvent)
tealium?.visitorService?.requestVisitorProfile()
}
visitorService
VisitorServiceモジュール。
self.tealium?.visitorService?.####
####
は、visitorService
オブジェクトの任意の公開APIメソッドです。以下は、完全な使用例です。
class MyHelperClass {
var tealium: Tealium?
public init () {
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
datasource: "DATASOURCE",
optionalData: nil)
config.visitorServiceDelegate = self
config.visitorServiceRefresh = .every(10, .minutes)
self.tealium = Tealium(config) {
// 注意: これは初期化の完了ブロック内部にあります
// self.tealiumは初期化の完了ブロック内部で初期化されることが保証されています
self.tealium?.visitorService?.####
}
}
}
クラス: VisitorServiceDelegate
以下は、VisitorServiceモジュールの一般的に使用されるメソッドとプロパティをまとめたものです。
メソッド/プロパティ | 説明 |
---|---|
didUpdate() |
プロファイルが更新されたときに更新されたビジタープロファイルを返すコールバックメソッド。 |
didUpdate()
プロファイルが更新されたときに更新されたビジタープロファイルを返すコールバックメソッドです。または、requestVisitorProfile()
メソッドが呼び出された場合です。これは、更新間隔の構成値に依存します。デフォルトでは、5分ごとに更新されます。
func didUpdate(visitorProfile: TealiumVisitorProfile) {
// プロファイルの属性に対してアクションを実行する
print(visitorProfile.audiences)
//...
}
パラメーター | 説明 | 例 |
---|---|---|
TealiumVisitorProfile |
Tealiumビジタープロファイル | visitorProfile |
クラス: TealiumConfig
以下は、VisitorServiceモジュールの一般的に使用されるメソッドとプロパティをまとめたものです。
メソッド/プロパティ | 説明 |
---|---|
visitorServiceDelegate |
didUpdate デリゲートメソッドを使用するためにデリゲートを構成します |
visitorServiceOverrideProfile |
ビジタープロファイルを取得するためのプロファイルをオーバーライドします |
visitorServiceOverrideURL |
ビジタープロファイルを取得するためのベースURLをオーバーライドします |
visitorServiceRefresh |
ビジタープロファイルの取得頻度を構成します |
visitorServiceDelegate
didUpdate
デリゲートメソッドを使用するためにデリゲートを構成します。
config.visitorServiceDelegate = self
タイプ | 説明 | 例 |
---|---|---|
Class |
プロファイルの更新を担当するクラス(デリゲート) | AnalyticsManager , TealiumHelper |
使用例:
func start() {
let config = TealiumConfig(account: "ACCOUNT",
profile: "NAME",
environment: "ENVIRONMENT",
datasource: "DATASOURCE",
optionalData: nil)
// Tealium VisitorServiceモジュールの構成メソッド
config.visitorServiceDelegate = self
}
extension TealiumHelper: VisitorServiceDelegate {
func didUpdate(visitorProfile: TealiumVisitorProfile) {
if let json = try? JSONEncoder().encode(visitorProfile),
let string = String(data: json, encoding: .utf8) {
print(string)
}
}
}
visitorServiceOverrideProfile
ビジタープロファイルを取得するためのプロファイルをオーバーライドします。Collectモジュールで使用するプロファイルと一致させてください。
config.visitorServiceOverrideProfile = "PROFILE"
タイプ | 説明 | 例 |
---|---|---|
String |
ビジタープロファイルを取得するためのAudience Streamプロファイルを構成します | "main" |
使用例:
func start() {
let config = TealiumConfig(account: "ACCOUNT",
profile: "NAME",
environment: "ENVIRONMENT",
datasource: "DATASOURCE",
optionalData: nil)
// Tealium Visitor Serviceモジュールの構成メソッド
config.visitorServiceOverrideProfile = "main"
}
visitorServiceOverrideURL
ビジタープロファイルを取得するためのベースURLをオーバーライドします。ACCOUNT、PROFILE、およびビジターIDは自動的にURLに追加されます。
config.visitorServiceOverrideURL = "https://overridden-subdomain.yourdomain.com/"
タイプ | 説明 | 例 |
---|---|---|
String |
ビジタープロファイルを取得するためのURLを構成します | "https://overridden-subdomain.yourdomain.com/" |
使用例:
func start() {
let config = TealiumConfig(account: "ACCOUNT",
profile: "NAME",
environment: "ENVIRONMENT",
datasource: "DATASOURCE",
optionalData: nil)
// Tealium Visitor Serviceモジュールの構成メソッド
config.visitorServiceOverrideURL = "https://overridden-subdomain.yourdomain.com/"
}
visitorServiceRefresh
ビジタープロファイルの取得頻度を調整するためにこのプロパティを使用します。デフォルト値は5分です。requestVisitorProfile()
メソッドをすべてのトラッキング呼び出しに追加しても、この値が0
に構成されていない限り、プロファイルは毎回取得されません。
let config = TealiumConfig(...)
config.visitorServiceRefresh = .every(3, .seconds)
RefreshInterval
のオプション: seconds
、minutes
、またはhours
パラメーター | 説明 | 例 |
---|---|---|
.every(Int, RefreshInterval) |
ビジタープロファイルを取得する頻度。 (デフォルト: .every(5, .minutes) ) |
.every(15, .seconds) |
使用例:
func start() {
let config = TealiumConfig(account: "ACCOUNT",
profile: "NAME",
environment: "ENVIRONMENT",
datasource: "DATASOURCE",
optionalData: nil)
// Tealium Visitor Serviceモジュールの構成メソッド
config.visitorServiceRefresh = .every(3, .seconds)
}
リリースノート
2.0.0
主な変更点
- TealiumVisitorProfileをより高速にするために更新しました
- シンプルさのためにマルチキャストデリゲート機能を削除しました
- キャッシュされたプロファイルメソッドからの完了を削除しました
低い影響の変更点
- 更新間隔のオプションを追加しました
- 一貫性のためにクラス名を更新しました
- デリゲートメソッドのシグネチャを改善しました
- テストを改善しました
1.8.0
- 初回リリース
最終更新日 :: 2024年March月29日