VisitorServiceモジュール
VisitorServiceから更新された訪問プロファイルを取得します。
使用法
VisitorServiceモジュールは、Tealium Customer Data HubのData Layer Enrichment機能を実装しています。
このモジュールの使用は、Tealium AudienceStreamのライセンスを持っており、訪問プロファイルを使用してモバイルアプリケーションのユーザーエクスペリエンスを向上させたい場合に推奨されます。AudienceStreamのライセンスを持っていない場合、訪問プロファイルが返されないため、このモジュールの使用は推奨されません。
以下のプラットフォームがサポートされています:
- iOS
- tvOS
- watchOS
- macOS
インストール
Swift Package Manager、CocoaPods、またはCarthageを使用してVisitorServiceモジュールをインストールします。
Swift Package Manager(推奨)
バージョン1.9.0+でサポートされているSwift Package Managerは、Tealium Swiftライブラリをインストールする最も簡単で推奨される方法です:
- Xcodeプロジェクトで、File > Add Package Dependenciesを選択します。
- リポジトリURLを入力します:
https://github.com/tealium/tealium-swift
- バージョンルールを構成します。通常、
"Up to next major"
が推奨されます。現在のTealium Swiftライブラリバージョンがリストに表示されない場合は、Swiftパッケージキャッシュをリセットします。 - インストールするモジュールのリストから
VisitorService
、Core
、Collect
またはTagManagement
モジュールを選択し、Xcodeプロジェクトの各アプリターゲットに追加します。Frameworks and Librariesの下にあります。
CocoaPods
CocoaPodsでVisitorServiceモジュールをインストールするには、以下のPodをPodfileに追加します:
pod 'tealium-swift/Core'
pod 'tealium-swift/Collect' //or 'tealium-swift/TagManagement'
pod 'tealium-swift/VisitorService'
iOS向けのCocoaPodsインストールについて詳しくはこちらをご覧ください。
Carthage
CarthageでVisitorServiceモジュールをインストールするには、以下の手順を実行します:
-
Xcodeでアプリターゲットの一般構成ページに移動します。
-
次のフレームワークをEmbedded Binariesセクションに追加します:
TealiumVisitorService.framework
-
VisitorServiceモジュールを構成するために、以下の必要なインポート文をプロジェクトに追加します:
import TealiumCore import TealiumCollect //or import TealiumTagManagement import TealiumVisitorService
iOS向けのCarthageインストールについて詳しくはこちらをご覧ください。
初期化
モジュールを初期化するには、TealiumConfig
の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 |
All attributes for current visit visitorProfile. The current visit profile does not contain Audiences or 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に基づいてオーディエンスのメンバーであるかどうかに応じてtrue/falseを返します。 | 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"] |
訪問がバッジを割り当てられているかどうかに応じてtrue/falseを返します。 | 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.### |
###に応じて所望の属性を返します。上記のすべてのメソッドが適用されますが、オーディエンスとバッジは訪問の属性であり、訪問には適用されません。 | 変わります | 変わります |
使用例:
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 |
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()
VisitorServiceに現在の訪問プロファイルを取得するための即時リクエストをトリガーします。プロファイルが最後のフェッチ以降に更新されていた場合、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年August月28日