イベントとビジターの関数V2
この記事では、V2ランタイムを使用するイベントとビジターの関数についての情報を提供します。
既存のイベントとビジターの関数は、非推奨となっているV2ランタイムを使用しています。新しい関数はデフォルトでV3ランタイムを使用します。V3ランタイムを使用する関数とV2関数をV3に変換する方法については、イベントとビジターの関数V3とV2関数をV3ランタイムに移行するを参照してください。
名前付きエクスポート
Tealiumモジュールは、イベントとビジターの関数に対してauth
、event
、visitor
、store
、tealium
の5つの名前付きエクスポートを提供します。関数は次のようにこれらの名前付きエクスポートをインポートします。
import { auth, visitor, event, store, tealium } from "tealium";
イベントオブジェクト
event
オブジェクトは、関数がイベントフィードによってトリガされたときに利用可能であり、イベントデータを含んでいます。
プロパティ | データ型 | 説明 |
---|---|---|
event.id |
string | TealiumイベントID。 |
event.visitor_id |
string | TealiumビジターID。 |
event.account |
string | Tealiumアカウント。 |
event.profile |
string | Tealiumプロファイル。 |
event.data |
object | event.data.udo.page_category やevent.data.udo.order_id などのイベント属性データを含むオブジェクト。 |
イベントオブジェクトの例
以下は、イベントオブジェクトデータの例です。
{
"account": "your-account",
"profile": "main",
"event_id": "run-test-event-id",
"visitor_id": "run-test-visitor-id",
"data": {
"dom": {
"viewport_height": 766,
"referrer": "",
"viewport_width": 1440,
"domain": "www.example.com",
"title": "Home Page",
"query_string": "q=help",
"hash": "",
"url": "https://www.example.com/?q=help",
"pathname": "/"
},
"udo": {
"tealium_event": "page_view",
"ut.account": "your-account",
"ut.visitor_id": "0176cb4f3482110a5ba4702e147b0006d005a065104f2",
"page_name": "Home Page",
"ut.event": "view",
"search_keyword": "help",
"ut.domain": "example.com",
"tealium_profile": "main",
"ut.version": "ut4.46.202006020705",
"tealium_session_id": "1609910608323",
"tealium_account": "your-account",
"ut.profile": "main",
},
"firstparty_tealium_cookies": {
"utag_main__sn": "12",
"utag_main_dc_visit": "12",
"utag_main_ses_id": "1609910610822",
"utag_main_dc_region": "us-east-1",
"utag_main__st": "1609913306118",
"utag_main_v_id": "0176cb4f3482110a5ba4702e147b0006d005a065104f2",
"utag_main__se": "66",
"utag_main__ss": "0",
"utag_main_dc_event": "60",
"utag_main__pn": "5"
}
},
"env": "prod",
"post_time": 1537305808000
}
イベントデータは、次のように関数内でアクセスできます。
const data = {};
// DOM変数はevent.domに格納されます
data.current_url = event?.dom?.url;
// 標準のUDOイベント変数はevent.data.udoに格納されます
data.session_id = event?.data?.udo?.tealium_session_id;
// ファーストパーティのクッキーはevent.firstparty_tealium_cookiesに格納されます
data.trace_id = event?.firstparty_tealium_cookies?.trace_id;
// メタ変数はevent.metaに格納されます
data.meta_description = event?.meta?.description;
data.tealium_event = event?.data?.udo?.tealium_event;
data.tealium_account = event?.data?.udo?.tealium_account;
data.tealium_profile = event?.data?.udo?.tealium_profile;
ビジターオブジェクト
visitor
オブジェクトは、関数がオーディエンスフィードによってトリガされたときに利用可能であり、ビジターデータを含んでいます。
プロパティ | データ型 | 説明 |
---|---|---|
visitor.metrics |
Record<string, number> | ビジターメトリクス。 |
visitor.metrics_sets |
Tally<string, number> | |
visitor.dates |
Record<string, number> | ビジターの日付。 |
visitor.audiences_joined_at |
Record<string, number> | ビジターがオーディエンスに参加したタイムスタンプ。 |
visitor.properties |
Record<string, any> | ビジタープロパティ。 |
visitor.properties.account |
string | Tealiumアカウント。 |
visitor.properties.profile |
string | Tealiumプロファイル。 |
visitor.properties.visitor_id |
string | TealiumビジターID。 |
visitor.property_sets |
Set<string, any> | |
visitor.audiences |
string[] | 参加したオーディエンスのリスト。 |
visitor.badges |
string[] | バッジのリスト。 |
visitor.creation_ts |
number | ビジターの作成タイムスタンプ。 |
visitor.flags |
Map<string, Boolean> | |
visitor.current_visit |
Record<string, any> | 現在の訪問オブジェクト。 |
visitor.current_visit.metrics |
Record<string, number> | 現在の訪問のメトリクス。 |
visitor.current_visit.metrics_sets |
Tally<string, number> | |
visitor.current_visit.dates |
Record<string, number> | 現在の訪問の日付。 |
visitor.current_visit.properties |
Record<string, any> | 現在の訪問のプロパティ。 |
visitor.current_visit.flags |
Map<string, Boolean> | 現在の訪問のフラグ。 |
visitor.current_visit.property_sets |
Set<string, any> | 現在の訪問のプロパティセット。 |
visitor.current_visit.creation_ts |
number | 現在の訪問の作成タイムスタンプ。 |
visitor.current_visit.total_event_count |
number | 現在の訪問のイベント総数。 |
visitor.current_visit.events_compressed |
boolean | 現在の訪問のイベントが圧縮されているかどうか。 |
ビジターオブジェクトの例
以下は、ビジターオブジェクトデータの例です。
{
"metrics": {
"Metric 1": 1,
"Metric 2": 2
},
"dates": {
"Date 1": 1603373790000,
"Date 2": 1603373522000,
},
"properties": {
"profile": "username",
"visitor_id": "017560818b67001bc185a07f1cd703078003405000b7e",
"account": "user-account",
},
"audiences": [
"Audience 1",
"Audience 2"
],
"badges": [
"Badge 1",
"Badge 2"
],
"creation_ts": 1603373522000,
"current_visit": {
"metrics": {
"Metric 1": 1.3,
"Metric 2": 6,
},
"dates": {
"Date 1": 1603373868000,
"Date 2": 1603373790000,
},
"properties": {
"Property 1": "Chrome",
"Property 2": "https://URL-for-website ",
},
"flags": {
"Flag 1": true,
"Flag 2": false
},
"property_sets": {
"Property Set 1": [
"Mac desktop"
],
"Property Set 2": [
"Chrome"
]
},
"creation_ts": 1603373790000,
"total_event_count": 2,
"events_compressed": false
},
"audiences_joined_at": {
"Audience 1": 1603363523014,
"Audience 2": 1603363523014
}
}
Authオブジェクト: auth.get()
関数は、FacebookやGoogleなどの一部のサービスプロバイダにアクセスするために認証が必要です。詳細については、関数に認証を追加するを参照してください。認証を追加すると、アクセストークンが返されます。
auth.get()
メソッドは、認証トークンの一意の自動生成IDを含む文字列を返します。関数がこのトークンIDを使用してHTTPリクエストを行うと、リクエストが送信される前に自動的にトークンに置き換えられます。
パラメータ | データ型 | 説明 |
---|---|---|
authName | string | 関数に認証が追加されたときに入力した認証の名前を指定します。 |
以下の例は、auth.get()
を使用してトークンIDを取得する方法を示しています。
console.log(auth.get("TEST_AUTH"));
Tealiumオブジェクト: sendCollectEvent()
sendCollectEvent()
メソッドは、イベントをTealium Collect HTTP APIに送信し、文字列を返します。
パラメータ | データ型 | 説明 |
---|---|---|
event | EventsClientEventObject | Tealium Collect HTTP APIに送信するイベントオブジェクト。 |
account | string | オプション。指定された場合、event.tealium_accountの値を置き換えます。 |
profile | string | オプション。指定された場合、event.tealium_profileの値を置き換えます。 |
dataSourceId | string | オプション。指定された場合、event.tealium_datasourceの値を置き換えます。 |
Tealium Collect HTTP APIのResponse
インターフェースは、リクエストへの応答を表します。Response
モデルはfetch
APIと同じですが、URLはコレクトクライアントの結果には含まれません。
Tealium Collectにイベントを送信する
以下の例は、Tealium Collect HTTP APIにイベントを送信する方法を示しています。
import {event, tealium} from 'tealium';
var newEvent = {‘key’: ‘value’};
tealium.sendCollectEvent(newEvent, 'newAccount', 'newProfile', 'datasourceId')
.then(response => {
if (!response.ok) {
throw new Error(`Network response was not ok. Status code: ${response.status}.`);
}
console.log('Status code:', response.status);
return response.text();
})
.then(data => console.log('Result:', data))
.catch(error => console.error('Error:', error.message));
Storeオブジェクト: store.get()
store
オブジェクトには、グローバル変数として指定されるキー/値のペアが含まれており、複数の関数で使用できる変数や定数を指定します。グローバル変数は、関数のコードエディタのCodeタブから追加、編集、削除することができます。関数はグローバル変数の値を取得することができますが、変更することはできません。
関数は、store.get()
メソッドを呼び出してキーの値を取得することができます。グローバル変数の追加と編集の詳細については、グローバル変数の管理を参照してください。
パラメータ | データ型 | 説明 |
---|---|---|
globalParameterKey | string | 取得するグローバル変数のキーを指定します。 |
たとえば、キーがdate
という名前のグローバル変数を作成した場合、関数は次のようにしてdate
の値を取得します。
store.get('date')
属性IDによる属性名または属性値の取得
属性名は変更される可能性があり、コードが属性名を参照している場合に問題が発生することがあります。属性名の変更による問題を回避するために、属性をIDで参照することができます。イベントオブジェクトとビジターオブジェクトには、属性のIDに基づいて属性名を取得するためにgetAttributeNameById()
メソッドを使用することができます。また、getAttributeValueById()
メソッドを使用して属性の値を取得することもできます。以下の例は、これがどのように機能するかを示しています。
コードエディタに次のように入力すると、開き括弧を入力すると、属性と関連するIDのリストが表示されます:
リストをフィルタリングするために属性名の一部を入力することもできます。属性を選択すると、そのIDが括弧の後にコードに追加されます。属性のリストは、getAttributeValueById()
でも同様に機能します。
fetch() APIを使用してHTTPリクエストを行う
関数は、以下の例に示すようにfetch APIを使用してHTTPリクエストを行うことができます。詳細については、Fetchを参照してください。
fetch('https://restcountries.eu/rest/v2/name/usa')
.then(response => {
if (!response.ok) {
throw new Error(`Network response was not ok. Status code: ${response.status}.`);
}
return response.json();
})
.then(data => console.log('Capital:', data[0].capital))
.catch(error => console.log('Error:', error.message));
以下の例は、ネットワークからリソースを取得し、応答が利用可能になったときに解決されるプロミスを返す方法を示しています。
const fetchResponsePromise = fetch(resource [, init])
Fetch APIのRequestインターフェースは、リソースリクエストを表し、次のように定義されています。
const myRequest = new Request(input[, init]);
関数は、Fetch APIのHeadersインターフェースを使用してHTTPリクエストとレスポンスのヘッダーに対してさまざまな操作を実行することができます。Headers()は次のように定義されています。
const myHeaders = new Headers(init);
Fetch APIのResponseインターフェースは、リクエストへの応答を表し、次のように定義されています。
const myResponse = new Response(body, init);
次のブラウザ固有の機能はサポートされていません。
- キャッシュ
- 認証情報
- リファラ
- リファラポリシー
- シグナル
- keepalive
- リダイレクト
- モード
URLSearchParamsメソッドを使用してURLクエリ文字列を構築する
URLSearchParamsインターフェースは、URLのクエリ文字列を操作するためのユーティリティメソッドを定義します。この例では、URLSearchParamsを使用してURLのクエリ文字列を構築する方法を示しています。
function jsonToURLSearchParams(data) { const params = new URLSearchParams(); buildURLSearchParams(params, data); return params;}function buildURLSearchParams(params, data, parentKey) {
if (data && typeof data === 'object' && !(data instanceof Date)) {
Object.keys(data).forEach(key => {
buildURLSearchParams(params, data[key], parentKey ? `${parentKey}[${key}]` : key);
});
} else {
const value = data == null ? '' : data;
params.append(parentKey, value);
}
}
最終更新日 :: 2024年March月29日