Tealium Collect HTTP API — V3 Early Access
このドキュメントでは、イベントのためのHTTP APIを使用してカスタマーデータハブにデータを送信する方法について説明します。この記事では、直接のHTTPエンドポイントの仕様を提供し、HTTPリクエストを送信できるすべてのアプリケーションで使用できます。
Tealium Collect HTTP APIを使用するには、Tealiumアカウントマネージャーに連絡してください。
動作原理
Tealium Collectは、GETおよびPOSTメソッドをサポートするHTTPエンドポイントです。
https://collect.tealiumiq.com/event
セッションは、訪問スコープ属性プロパティに基づいて決定されます。
リージョナルおよびグローバルエンドポイント
Tealium Collectは、プロファイルのリージョンを認識し、適切なリージョンのESPにデータを送信するため、クロスリージョナルエンドポイントです。
Tealium Collectは、次の2つのホストをサポートしています。
collect.tealiumiq.com
最も遅延の少ないTealium Collectサーバー(最も近いサーバー)にイベントを送信します。collect-<region>.tealiumiq.com
プロファイルのリージョンのTealium Collectサーバーにイベントを送信します。
セキュリティのエンリッチメントされたTealium Collectエンドポイントでは、グローバルエンドポイントは内部的にcollect.tealiumiq.com
にマッピングされ、リージョナルエンドポイントはcollect-<region>.tealiumiq.com
にマッピングされます。
エンドポイントのマッピング
次の表は、非セキュリティのエンリッチメントされたTealium CollectエンドポイントをセキュリティのエンリッチメントされたTealium Collectエンドポイントにマッピングするものです。
非セキュリティのエンリッチメントされたTealium Collectエンドポイント | セキュリティのエンリッチメントされたグローバルTealium Collectエンドポイント | セキュリティのエンリッチメントされたリージョナルTealium Collectエンドポイント | HTTPメソッド | 説明 |
---|---|---|---|---|
/event |
/v3/collect/event |
/v3/collect/regional/event |
GET POST |
ブラウザベースのリクエストに対するRESTfulエンドポイントです。 |
/integration/event/<br> {account}/{profile}/<br> {datasourceID} |
/v3/collect/integration/<br> event/accounts/<br> {account}/profiles/<br> {profile}/datasources/<br> {datasourceID} |
/v3/collect/regional/<br> integration/event/accounts/<br> {account}/profiles/{profile}/<br> datasources/{datasourceID} |
POST | HTTPアドバンストHTTP APIおよび通信データソースで内部的に使用されるエンドポイントです。 |
/bulk-event |
/v3/collect/bulk-event |
/v3/collect/regional/bulk-event |
POST | 1つのリクエストで複数のイベント(最大10個)を送信します。 |
訪問識別子
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)>データレイヤーを参照してください。
Adobe LaunchまたはGoogle Tag Managerを使用している場合、値はTEALクッキーのv
の部分と一致する必要があります。
既知の訪問サーバー間
AudienceStream | EventStream |
---|---|
必須 | 推奨 |
既知の訪問のデータを送信する場合(email_address
などの訪問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",
"tealium_visitor_id" : "__my-account_main__7688_45653454__"
}
匿名の訪問または既知の訪問を使用する場合、APIコールに一貫したtealium_visitor_id
が含まれていない場合、各イベントは新しい訪問を生成し、訪問のスティッチングができなくなります。
ユーザー識別子
AudienceStreamを使用する場合、トラッキングコールに既知のユーザー識別子を渡すことができます。たとえば、email_address
やlogin_id
です。
ユーザー識別子は、EventStreamを使用してベンダーコネクタにIDを提供する必要がある場合にも必要です。
AudienceStreamでは、これらのユーザー識別子を使用して訪問ID属性を豊かにします。
許可要件
- サーバーサイドのパブリッシャーの許可
認証
ベアラートークンはすべてのAPIコールの認証に使用され、APIキーは認証コールでのみ使用されます。ベアラートークンに加えて、認証レスポンスには、後続のサーバーサイドAPIコールで使用する必要のあるリージョン固有のホスト名が含まれます。
ベアラートークンをAPIキーから生成する方法については、Tealium API V3入門ガイドを参照してください。
必須パラメーター
Tealium Collectは、各リクエストで次の標準パラメーターをサポートしています。
tealium_account
- Tealiumアカウントの名前。tealium_profile
- Tealiumプロファイルの名前。デフォルトはmainです。tealium_datasource
- (オプション)Customer Data Hubからのデータソースキー。詳細については、データソースについてを参照してください。tealium_event
- (推奨)トラッキングの目的のイベント名。tealium_visitor_id
- (AudienceStreamの場合必須)イベントに関連付けられた訪問の匿名化された一意の識別子(訪問識別子セクションを参照)。tealium_trace_id
- (オプション)トレースで使用するため。
リクエストの形式は、使用されるHTTPメソッドによって異なります。以下の例では、プレースホルダーの値は次の形式で表されます:{VALUE}
。
カスタムイベントパラメーター
追加のイベント属性は、トラッキングのニーズに応じてカスタムパラメーターとして送信されます。これらのパラメーターは、Customer Data Hubでイベント属性として定義する必要もあります。
GETメソッド
GETメソッドでは、データはエンドポイントのクエリ文字列内のキー/値ペアを使用して渡されます。このメソッドは、HTMLベースの実装と互換性を持たせるために、1x1の透明なGIFを返します。
/event
の例
cURLリクエストの例
curl -i -X GET 'https://{host}/v3/collect/event?tealium_account={account}&tealium_profile={profile}&tealium_event=user_login&email_address=user@example.com'
--header 'Authorization: Bearer eyJ0**'
レスポンスの例
< HTTP/2 200
< date: Fri, 15 Jul 2022 00:08:50 GMT
< content-type: image/gif
< content-length: 43
< x-amzn-requestid: 03bb378a-2619-4440-9d5a-c1e7d0e8d2ae
< x-amzn-remapped-content-length: 43
< x-region: us-east-1
< x-acc: {account}:{profile}:2:event
< p3p: policyref="/w3c/p3p.xml", CP="NOI DSP COR NID CUR ADM DEV OUR BUS"
< x-amzn-remapped-connection: keep-alive
< x-uuid: f513ef4b-5870-4fa4-b908-38c5e12bf3e4
< x-amz-apigw-id: VSBy2Fu6oAMFezA=
< vary: Origin
< cache-control: no-transform,private,no-cache,no-store,max-age=0,s-maxage=0
< x-serverid: uconnect_i-0182b50695a2297ec
< expires: Fri, 15 Jul 2022 00:08:50 GMT
< x-ulver: e07c919851780ad8793847fdb12df3611bcdbf78-SNAPSHOT
< x-tid: f513ef4b58704fa4b90838c5e12bf3e4
< pragma: no-cache
< x-amzn-remapped-date: Fri, 15 Jul 2022 00:08:50 GMT
POSTメソッド
POSTメソッドでは、リクエストヘッダーをContent-Type: application/json
に構成し、ペイロードを有効なJSON文字列としてフォーマットすることで、JSONペイロードをサポートします。
/event
の例
cURLリクエストの例
curl --location --request POST 'https://{host}/v3/collect/event' --header 'Authorization: Bearer eyJ0eXA***' --header 'Content-Type: application/json' --data-raw '{
"tealium_account": "{account}",
"tealium_datasource": "w12c8s",
"tealium_profile": "{profile}",
"tealium_event": "page_view",
"page_type": "123",
"page_name": "testName"
}'
レスポンスの例
< HTTP/2 200
< date: Fri, 15 Jul 2022 00:08:03 GMT
< content-type: application/json
< content-length: 0
< x-amzn-requestid: ad5c154f-3053-4991-9a60-45b35745eba7
< x-region: us-east-1
< x-acc: {account}:main:2:event
< p3p: policyref="/w3c/p3p.xml", CP="NOI DSP COR NID CUR ADM DEV OUR BUS"
< x-amzn-remapped-connection: keep-alive
< x-uuid: 1d6b9c12-16c3-44a9-95c9-78afeabaf8e0
< x-amz-apigw-id: VSBroH24oAMFXpQ=
< vary: Origin
< cache-control: no-transform,private,no-cache,no-store,max-age=0,s-maxage=0
< x-serverid: uconnect_i-0a95ad51791af67ac
< expires: Fri, 15 Jul 2022 00:08:03 GMT
< x-ulver: e07c919851780ad8793847fdb12df3611bcdbf78-SNAPSHOT
< x-tid: abc123_071422_1
< pragma: no-cache
< x-amzn-remapped-date: Fri, 15 Jul 2022 00:08:03 GMT
/bulk-event
の例
cURLリクエストの例
curl --location --request POST 'https://{host}/v3/collect/bulk-event' \
--header 'Authorization: Bearer eyJ0eXAi***' \
--header 'Content-Type: application/json' \
--data-raw '{
"shared": {
"tealium_account": "{account}",
"tealium_profile": "{profile}",
"tealium_environment": "prod",
"tealium_datasource": "{datasource}",
"tealium_visitor_id": "abc123_071222_1"
},
"events": [
{
"page_name": "test1",
"tealium_event": "page_view"
},
{
"page_name": "test2",
"tealium_event": "page_view"
}
]
}'
レスポンスの例
< HTTP/2 200
< date: Fri, 15 Jul 2022 00:07:37 GMT
< content-type: application/json
< content-length: 0
< x-amzn-requestid: 11f79456-cdb8-4ccc-8cc7-e8a54db79414
< x-region: us-east-1
< p3p: policyref="/w3c/p3p.xml", CP="NOI DSP COR NID CUR ADM DEV OUR BUS"
< x-amzn-remapped-connection: keep-alive
< x-uuid: 7277c009-f9f5-47a2-9fe6-61f05c98e6fd
< x-amz-apigw-id: VSBnlEqkIAMFbFA=
< vary: Origin
< cache-control: no-transform,private,no-cache,no-store,max-age=0,s-maxage=0
< x-serverid: uconnect_i-01e68ac980b602444
< expires: Fri, 15 Jul 2022 00:07:37 GMT
< x-ulver: e07c919851780ad8793847fdb12df3611bcdbf78-SNAPSHOT
< pragma: no-cache
< x-amzn-remapped-date: Fri, 15 Jul 2022 00:07:37 GMT
/integration/event
の例
cURLリクエストの例
curl --location --request POST 'https://{host}/v3/collect/integration/event/accounts/{account}/profiles/{profile}/datasources/{datasourceId}' --header 'Authorization: Bearer eyJ0***' --header 'Content-Type: application/json' --data-raw '{
"tealium_event": "page_view",
"tealium_datasource": "{datasourceId}",
"page_type": "123",
"outerObject": {
"innerobject":"1234"
},
"page_name": "kek"
}'
レスポンスの例
< HTTP/2 204
< date: Fri, 15 Jul 2022 00:05:23 GMT
< x-amzn-requestid: e3b5bc65-8712-40a3-a87c-9d6bb8df68cf
< x-region: us-east-1
< p3p: policyref="/w3c/p3p.xml", CP="NOI DSP COR NID CUR ADM DEV OUR BUS"
< x-amzn-remapped-connection: keep-alive
< x-uuid: fadbdf55-dccb-4241-a9ce-81722fc2a8d9
< x-amz-apigw-id: VSBSnF9OIAMFxXA=
< vary: Origin
< cache-control: no-transform,private,no-cache,no-store,max-age=0,s-maxage=0
< x-serverid: uconnect_i-058449c0632b25787
< expires: Fri, 15 Jul 2022 00:05:23 GMT
< x-ulver: e07c919851780ad8793847fdb12df3611bcdbf78-SNAPSHOT
< pragma: no-cache
< x-amzn-remapped-date: Fri, 15 Jul 2022 00:05:23 GMT
ステータスコード
次の表は、TealiumのHTTPレスポンスステータスコードをまとめたものです。
ステータスコード | 説明 |
---|---|
200 ステータスOK |
リクエストが成功しました |
400 Bad Request |
サーバーがリクエストを理解できません |
400 Bad Request
ステータスコードは、次のいずれかが真である場合に発生します。
- JSONキーにピリオドが含まれているか、無効であるか、サイズが1MBを超えている場合
- ファイルタイプパラメーターにJSONまたはJavaScript以外の値が含まれている場合
account
、profile
、およびdatalayer_id
の組み合わせが250文字を超えているか、制限された文字を含んでいる場合tealium_account
またはtealium_profile
が欠落しているか、誤字が含まれている場合- リクエストボディが空の場合
以下は、tealium_account
またはtealium_profile
パラメーターの値が欠落している場合に/v3/collect/event
へのGETリクエストで発生する400 Bad Request
レスポンスの例です。
< HTTP/2 200
< date: Fri, 15 Jul 2022 00:03:05 GMT
< content-type: image/gif
< content-length: 43
< x-error: Missing required tealium_account or tealium_profile param value
< cache-control: no-transform,private,no-cache,no-store,max-age=0,s-maxage=0
< x-region: us-west-2
< x-serverid: uconnect_i-0b80d0d9adfb124a2
< x-ulver: e07c919851780ad8793847fdb12df3611bcdbf78-SNAPSHOT
< vary: Origin
< pragma: no-cache
< expires: Fri, 15 Jul 2022 00:03:05 GMT
< p3p: policyref="/w3c/p3p.xml", CP="NOI DSP COR NID CUR ADM DEV OUR BUS"
< x-uuid: 1d0dd863-dc31-4eb2-b7a0-5b98e3b7fb5b
以下は、/v3/collect/bulk-event
へのPOSTリクエストの400 Bad Request
レスポンスの例です。
< HTTP/2 400
< date: Fri, 15 Jul 2022 00:01:16 GMT
< content-type: application/json
< content-length: 78
< x-amzn-requestid: 993d950d-cde4-4ee0-9f18-d3e41a3ed5ca
< x-amzn-remapped-content-length: 78
< x-region: us-east-1
< p3p: policyref="/w3c/p3p.xml", CP="NOI DSP COR NID CUR ADM DEV OUR BUS"
< x-amzn-remapped-connection: keep-alive
< x-uuid: 59afeed7-abe2-487c-bac1-a96903f4a449
< x-amz-apigw-id: VSAr9HOloAMFQkA=
< vary: Origin
< cache-control: no-transform,private,no-cache,no-store,max-age=0,s-maxage=0
< x-serverid: uconnect_i-02ccd81bf59828cde
< expires: Fri, 15 Jul 2022 00:01:16 GMT
< x-ulver: e07c919851780ad8793847fdb12df3611bcdbf78-SNAPSHOT
< pragma: no-cache
< x-amzn-remapped-date: Fri, 15 Jul 2022 00:01:16 GMT
<
* Connection #0 to host us-east-1-platform.tealiumapis.com left intact
{ "returnCode" : 1400 , "message" : "Request body must contain 'events' key."}
例
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を送信できます。レスポンスヘッダーには、次のようにAccess-Control-Allow-Origin: [http://your_domain.com](http://your_domain.com/)
が含まれます。
var event = {
"tealium_account" : "{ACCOUNT}",
"tealium_profile" : "{PROFILE}",
"tealium_event" : "user_login",
"email_address" : "user@example.com"
};
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>)
が含まれます。
Tealium Collect HTTP APIを使用するには、Tealiumアカウントマネージャーに連絡してください。
最終更新日 :: 2024年March月29日