エンドポイント仕様
この記事では、HTTP API for eventsを使用してTealium Customer Data Hubにデータを送信する方法について説明します。
この記事では、HTTPリクエストを送信する任意のアプリケーションで使用される直接HTTPエンドポイントの仕様について説明します。
Tealium Collect URL
Tealium Collectは以下のルートURLに位置しています:
https://collect.tealiumiq.com/event
レート制限
Tealium Collect APIは、最大レート制限として100リクエスト/秒をサポートしています。
ビジネスの要件がより高いコール制限を必要とする場合は、Tealiumのアカウントマネージャーに連絡してください。
標準パラメータ
Tealium Collectは、各リクエストで以下の標準パラメータをサポートしています:
tealium_account
: あなたのTealiumアカウントの名前。tealium_profile
: あなたのTealiumプロファイルの名前。デフォルトはmainです。tealium_datasource
: (オプション)Customer Data Hubからのデータソースキー。詳細については、データソースについてを参照してください。tealium_event
: (推奨)トラッキング目的のイベント名。tealium_visitor_id
: (AudienceStreamに必要)イベントに関連する訪問の一意の識別子(訪問識別子セクションを参照)。この識別子は、訪問が使用しているデバイスに関連付けられた匿名のGUID(グローバル一意識別子)であるか、訪問の既知のユーザー識別子に基づいている場合があります。tealium_trace_id
: (オプション)Traceの使用に。
リクエストの形式は、使用されるHTTPメソッドによって異なります。以下の例では、プレースホルダーの値は次の形式で表されます:{VALUE}
。
カスタムイベントパラメータ
追加のイベント属性は、トラッキングのニーズに応じてカスタムパラメータとして送信されます。これらのパラメータは、Customer Data Hubのイベント属性としても定義する必要があります。イベント属性についての詳細は、属性についてを参照してください。
訪問識別子
AudienceStreamは、以下の組み合わせを使用して訪問を追跡します:
- 匿名ID: 通常、訪問を匿名で追跡するために使用されるID(例えば、デバイスやブラウザから)。既知の訪問の場合、ユーザー識別子に基づく値を使用できます。
- ユーザー識別子: 訪問が既知の場合に送信されます。特定のデバイスではなく、ユーザーを識別する値に基づいています。
匿名ID
匿名IDは、AudienceStreamがイベントと訪問の間で訪問を関連付けるために使用する匿名識別子です。この値はGUIDであることと、訪問に対して一貫性があることを確認してください。この値は、各サーバーサイドプロファイルに対しても一意である必要があります。
匿名IDのキー名はtealium_visitor_id
です。
ビジネスケースに応じて、匿名の値または既知のユーザー識別子に基づく値を使用できます。
匿名の値
AudienceStream | EventStream |
---|---|
必須 | N/A |
Tealium iQ Tag Managementを使用し、APIコールをサーバー間で送信して匿名の訪問プロファイルをエンリッチする場合、tealium_visitor_id
の値はutag_main_v_id
クッキーの値と一致する必要があります。utag.jsからの組み込み変数についての詳細は、JavaScript (Web) > Data Layerを参照してください。
Adobe LaunchまたはGoogle Tag Managerを使用している場合、値はTEALクッキーのv
部分と一致する必要があります。
既知の訪問サーバー間
AudienceStream | EventStream |
---|---|
必須 | 推奨 |
既知の訪問のデータを送信する場合(email_address
などの訪問ID属性の値が存在する場合)、以下のものを連結して含めます:
-
アカウント
-
プロファイル
プロファイル名を含めることで、tealium_visitor_id
が各サーバーサイドプロファイルに一意になり、同じ訪問プロファイルが一つの地域内の複数のサーバーサイドプロファイルに送信される場合に必要となります。 -
訪問ID属性IDと値
訪問ID属性IDは、属性リストの属性名の隣や、詳細を展開した中にあります。詳細については、属性についてを参照してください。
-
tealium_visitor_id
パラメータの値
例えば、以下の値の場合:
- アカウント名:
my-account
- プロファイル:
main
- 訪問ID属性ID:
7688
- 伝えたい顧客番号の値:
45653454
これらの値を以下のように連結します:
tealium_visitor_id":"__my-account_main__7688_45653454__"
tealium_visitor_id
が正しくフォーマットされていることを確認してから進めてください。フォーマットが正しくないパラメータはAudienceStreamでエラーを引き起こし、正しく追跡されない可能性があります。
JSONの例:
{
"tealium_account" : "my-account",
"tealium_profile" : "main",
"tealium_event" : "user_login",
"email_address" : "user@example.com",
"customer_number" : "45653454",
"tealium_visitor_id" : "__my-account_main__7688_45653454__"
}
匿名の訪問を使用するか既知の訪問を使用するかに関わらず、APIコールに一貫したtealium_visitor_id
が含まれていない場合、各イベントは新しい訪問を生成し、訪問のスティッチングは不可能になります。
ユーザー識別子
AudienceStreamを使用する場合、トラッキングコールで既知のユーザー識別子を渡すことができます。例えば、email_address
やlogin_id
などです。
ユーザー識別子は、EventStreamを使用していてベンダーコネクタにIDを提供する必要がある場合にも必要です。
AudienceStreamでは、これらのユーザー識別子は、訪問ID属性をエンリッチするために使用されます。
訪問の切り替え
ファーストパーティクッキーが利用できない場合、サーバーサイドは以下の優先順位で訪問のIDを決定するための入力データを使用します:
TAPID
クッキー、別名tealium_thirdparty_visitor_id
tealium_visitor_id
utag_main v_id
、別名tealium_firstparty_visitor_id
AudienceStreamは、TAPID
のIDを他のIDよりも優先して訪問プロファイルを使用するため、これは同一デバイス上の複数のユーザーの追跡に問題を引き起こす可能性があります。
例えば、ユーザーがログインし、そのIDがTAPID
に追加されると、そのデバイス上のすべての匿名ユーザーからのトラフィックがそのユーザーに記録されます。そして、2人目のユーザーがそのデバイスにログインすると、匿名クッキーがクリアされないと仮定すると、AudienceStreamは引き続き最初のユーザーにアクティビティを記録します。訪問が共有のスマートテレビや公共のキオスクを使用している場合、これは訪問のプロファイルのデータ汚染を引き起こす可能性があります。
以下のパラメータを使用して、エンドポイントがイベント内のtealium_visitor_id
とtealium_thirdparty_visitor_id
の値をどのように処理するかを制御します:
パラメータ | タイプ | 説明 |
---|---|---|
tealium_override_tapid |
文字列 | この値でtealium_visitor_id とtealium_thirdparty_visitor_id を上書きします。 |
tealium_skip_3rd_party_vid_cookies |
ブール値 | TAPID サードパーティクッキーの収集をスキップするには、true に構成します。 |
tealium_delete_3rd_party_vid_cookies |
ブール値 | TAPID サードパーティクッキーを削除するには、true に構成します。 |
tealium_override_tapid
の値は、tealium_delete_3rd_party_vid_cookies
パラメータがクッキーを削除するのを防ぎます。- TAPIDから
account/profile
情報を削除するとそのクッキーが空になる場合、set-cookie maxAge=0
がクライアントからそのクッキーを削除するために返されます。
メソッド
ブラウザからCollect APIトラフィックを送信する際、GETメソッドはリクエストのHTTPリファラURLに基づいてページURLを構成しますが、これは現在のページのホスト名のみになります。GETメソッドを使用すると、現在のページのクエリパラメータやパス名は含まれません。この情報を含めるには、POSTメソッドを使用してください。
GET
GETメソッドは、指定したリソースからデータをリクエストするために使用されます。エンドポイントのクエリ文字列内のキー-値ペアを使用してデータを渡し、HTMLベースの実装と互換性を持たせるために1x1の透明なGIFを返します。
curlを使用した例:
curl -i -X GET "https://collect.tealiumiq.com/event?tealium_account={ACCOUNT}&tealium_profile={PROFILE}&tealium_event=user_login&email_address=user@example.com"
POST
POSTメソッドは、サーバーにデータを送信してリソースを作成/更新するために使用されます。リクエストヘッダーをContent-Type: application/json
に構成し、ペイロードを有効なJSON文字列としてフォーマットする必要があります。
user_login
イベントの例:
{
"tealium_account" : "ACCOUNT",
"tealium_profile" : "PROFILE",
"tealium_event" : "EVENT_NAME",
"email_address" : "EMAIL_ADDRESS"
}
curlを使用した例:
curl -X POST -H 'Content-type: application/json'
--data '{"tealium_account":"{ACCOUNT}","tealium_profile":"{PROFILE}","tealium_event":"user_login","email_address":"user@example.com"}'
https://collect.tealiumiq.com/event
ステータスコード
以下の表は、TealiumのHTTPレスポンスステータスコードをまとめたものです:
ステータスコード | 説明 |
---|---|
200 Status OK |
リクエストが成功しました |
400 Bad Request |
サーバーがリクエストを理解できません |
400 Bad Request
ステータスコードは、以下のいずれかが真である場合に発生します:
- JSONキーにピリオドが含まれている、無効である、または1MBを超えている。
- ファイルタイプパラメータに
json
またはjavascript
以外の値が含まれている。 account
、profile
、datalayer_id
の組み合わせが250文字を超えている、または制限された文字が含まれている。tealium_account
またはtealium_profile
が欠落している、またはタイプミスが含まれている。- リクエストボディが空である。
以下は、必要なtealium_account
またはtealium_profile
パラメータ値が欠落している場合の400 Bad Request
レスポンスの例で、X-Error
ヘッダーに表示されます:
> GET /event?tealium_account=jentest-as&tealium_profile=&tealium_visitor_id=sendgeteventhttps@testing.com&tealium_datasource=utc2cj&customer_city=Honolulu&customer_state=Hawaii&Flag=true&Number=45&String=ascent&String_Array=[hello,howareyou,whatsup,yoyoyo]&Number_Array=[2.222,3.000,19.12,28.3]&Flag_Array=[true,false,false,true]&Combo_Array=[1,salutations,2324,world,22jjfssl]&Array_of_Array=[[1,2,3],heyworld]&myvariable=unicorns HTTP/1.1
> Host: qa21-collect.tealiumiq.com
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 400 Bad Request
< Cache-Control: no-transform,private,no-cache,no-store,max-age=0,s-maxage=0
< Content-Type: application/json
< Date: Wed, 23 Oct 2019 17:10:51 GMT
< Expires: Wed, 23 Oct 2019 17:10:51 GMT
< P3P: policyref="/w3c/p3p.xml", CP="NOI DSP COR NID CUR ADM DEV OUR BUS"
< Pragma: no-cache
< Vary: Origin
< X-Error: Missing required tealium_account or tealium_profile param value
< X-Region: us-east-1
< X-ServerID: uconnect_i-9a157d19
< X-ULVer: 1.0.331-SNAPSHOT
< X-UUID: d4fc78d1-8204-412c-a6cb-57869d2370a7
< Content-Length: 0
< Connection: keep-alive
例
HTMLの例
Tealium Collectは、HTML内の<img>
タグで参照されます。ブラウザのキャッシュのため、ランダムに生成された値を含む追加のパラメータ、キャッシュバスターを含めることが重要です。以下の例を参照してください:
var cb=Math.random()*100000000000;
この変数はTealium Collectピクセルのクエリ文字列に追加されます:
<img height="1" width="1" style="display:none" src="//collect.tealiumiq.com/event?tealium_account={ACCOUNT}&tealium_profile={PROFILE}&tealium_event=user_login&email_address=user@example.com&cb=' + cb + '"/>
JavaScriptの例
Tealium Collectはクロスドメインリクエストをサポートしており、以下の例のように、あなたのウェブサイトから私たちのドメインにPOSTを送信することができます:
var event = {
"tealium_account" : "ACCOUNT",
"tealium_profile" : "PROFILE",
"tealium_event" : "EVENT_NAME",
"email_address" : "EMAIL_ADDRESS"};
var xhr = new XMLHttpRequest();
xhr.open("POST", "https://collect.tealiumiq.com/event");
xhr.send(JSON.stringify(event));
レスポンスヘッダーには以下が含まれます:
Access-Control-Allow-Origin: [http://your_domain.com](http://your_domain.com)
最終更新日 :: 2024年December月5日