service/userProfileEventStream
重要: 必要なパラメーターのみコールしてください。弊社は、多くのアプリケーションやクライアントを同時にサポートするAPIのセットを使用しています。これらのAPIは随時更新または改善される場合があります。
wss://streams.richrelevance.com/upsevents/api/v2/service/UserProfileStream
URLが正しく機能するためにはAPIキートパラメータが必要です。URLリスエストの例については以下を参照してください。
説明: UPS(User Profile Service)にストリーミングされるすべてのイベントを受け取るためのウェブ・ソケット・インターフェースです。接続時にはUPSに送られるイベント毎に1件のメッセージを受信します。
パラメーター
注記: パラメーターはすべて大文字小文字を区別します。
名称 | 必須 / オプション | 説明 |
---|---|---|
apiKey | 必須 | |
apiClientKey |
必須 | |
clientSecret | 必須 |
クライアントAPIキー及びシークレット
クライアント・キーやクライアント・シークレットを作成する際には、弊社担当者までお問い合わせください。clientApiKeyはclientSecretはclientApiKeyに対する特定の値でダッシュボードから確認できますが、Eメールか電話でお知らせします。
client_secretは安全に保管してください。絶対に他者と共有せず、HTTPSでのみ使用してください。
サンプル・コード
以下は、イベント・ストリームを接続し表示するための簡単なHTMLとJavaScriptのサンプル・コートです。他のウェブ・ソケットJavaScriptライブラリも使用できます。
例で使用されているApiKey、clientApiKey、clientSecretは実際のキーではありません。使用する際には実際の値と入れ替えてください。
<! DOCTYPE html> < meta charset = "utf-8" /> < title >WebSocket Test</ title > < script language = "javascript" type = "text/javascript" > var wsUri = "wss://streams.richrelevance.com/upsevents/api/v2/service/UserProfileStream/4faeaf752ee40a0f?clientApiKey=b0126f995ac848159d&clientSecret=wbhz6c41"; var output; function init() { output = document.getElementById("output"); testWebSocket(); } function testWebSocket() { websocket = new WebSocket(wsUri); websocket.onopen = function(evt) { onOpen(evt) }; websocket.onclose = function(evt) { onClose(evt) }; websocket.onmessage = function(evt) { onMessage(evt) }; websocket.onerror = function(evt) { onError(evt) }; } function onOpen(evt) { writeToScreen("CONNECTED"); } function onClose(evt) { writeToScreen("DISCONNECTED"); } function onMessage(evt) { var str = evt.data; writeToScreen('< span style = "color: blue;" >RESPONSE: ' + str + '</ span >'); } function onError(evt) { var str = evt.data; writeToScreen('< span style = "color: red;" >ERROR:</ span > ' + str); } function doSend(message) { writeToScreen("SENT: " + message); websocket.send(message); } function writeToScreen(message) { var pre = document.createElement("p"); pre.style.wordWrap = "break-word"; pre.innerHTML = message; output.insertBefore(pre, output.firstChild); } window.addEventListener("load", init, false); </ script > < h2 >WebSocket Test</ h2 > < div id = "output" ></ div > |
リクエスト例
wss://streams.richrelevance.com/upsevents/api/v2/service/UserProfileStream/4faeaf752ee40a0f?clientApiKey=b0126f995ac848159d&clientSecret=wbhz6c41 |
User Profile Serviceへのイベント・ストリーミング毎に一つのメッセージを返します。
ApiKey = 4faeaf752ee40a0f
clientApiKey = b0126f995ac848159d
clientSecret = wbhz6c41
レスポンス例
レスポンスはイベントのストリームです。簡潔にするためイベントを2つにしました。
{ "apiKey":"4faeaf752ee40a0f ", "userId":"3280816", "sessionId":"a40fa0ce-f3d1-49c9-94f2-24f676070c02", "rrUserId":"1a76f643-9dbb-4fed-9080-a35325605c51", "eventType":"itemView", "viewedItem":"132926", "eventTime":1428681303249 } { "apiKey":"4faeaf752ee40a0f ", "userId":"", "sessionId":"c0781430-a5a7-4cab-9122-763e8cb18ac0", "rrUserId":"2a045a50-1d92-4326-eca0-905328ff0440", "eventType":"referredFromSite", "referrerUrl":"https://www.google.com/", "eventTime":1428681305798 } |
イベント・タイプ
受け取ったレスポンスはUPS内の様々なフィールドと一致するイベントでです。詳細については後述します。各イベントはJSONドキュメントでありイベントのタイプを記述するeventTypeフィールドが含まれています。
オブジェクト内の他のフィールドはすべてのイベント・タイプ間で共有うされます。一般的なフィールドは以下の通りです。
- apiKey: お使いのAPIキーです。
- userId: イベントを作成するユーザー・アクションのユーザーIDです。
- sessionId: イベントを作成するユーザー・アクションのセッションIDです。
- rrUserId: イベントを作成するユーザー・アクションのリッチレリバンスが使用するユーザーIDです。すべてのイベントにrrUserIdがあるわけではありません。
- eventType: イベントのタイプの説明です。
- eventTime: イベントの時刻をミリ秒単位で表したものです。UTC(協定世界時)が使用されます。
各イベント・タイプの例を以下に示します。
BrandView:当該ユーザーが閲覧したブランド・ページです。ブランドはviewedBrandフィールドに記載されます。
{ "apiKey" : "123", "userId" : "user1", "sessionId" : "sess1", "rrUserId" : "rr7", "eventType" : "brandView", "viewedBrand" : "brand1", "eventTime" : 1428614744057 } |
CategoryView:
当該ユーザーが閲覧したカテゴリー・ページです。カテゴリーIDはviewedCategoryフィールドに記載されます。
{ "apiKey" : "123", "userId" : "user1", "sessionId" : "sess1", "rrUserId" : "rr7", "eventType" : "categoryView", "viewedCategory" : "cat123", "eventTime" : 1428614744057 } |
ItemClick:
当該ユーザーがクリックしたレコメンド商品です。商品IDはclickProductidフィールドに記載されます。
{ "apiKey" : "123", "userId" : "user1", "sessionId" : "sess1", "rrUserId" : "rr7", "eventType" : "itemClick", "eventTime" : 1428614744057, "clickProductId" : "item123" } |
AddToCart:
当該ユーザーがカートに追加した商品です。商品情報はaddedToCartItemsフィールドに記載されます。このフィールドにはアイテム毎の配列が含まれます。各アイテムには1件の商品、その数量、価格が記載されます。
{ "apiKey" : "123", "userId" : "user1", "sessionId" : "sess1", "rrUserId" : "rr7", "eventType" : "addedToCart", "addedToCartItems" : [ { "itemId" : "item123", "priceCents" : 1099, "quantity" : 1 }, { "itemId" : "item456", "priceCents" : 2399, "quantity" : 2 } ], "eventTime" : 1428614744057 } |
Purchase:
当該ユーザーが購入した商品です。商品情報はordersフィールドに記載されます。このフィールドにはアイテム毎の配列が含まれます。各アイテムには1件の商品、その数量、価格が記載されます。
{ "apiKey" : "123", "userId" : "user1", "sessionId" : "sess1", "rrUserId" : "rr7", "eventType" : "order", "orders" : [ { "itemId" : "item123", "priceCents" : 1099, "quantity" : 1 }, { "itemId" : "item456", "priceCents" : 2399, "quantity" : 2 } ], "eventTime" : 1428614744057 } |
Search:
当該ユーザーが実行した検索です。searchTermフィールドにはユーザーが検索した文字列が記載されます。
{ "apiKey" : "123", "userId" : "user1", "sessionId" : "sess1", "rrUserId" : "rr7", "eventType" : "search", "searchTerm" : "where is it", "eventTime" : 1428614744057 } |
Opt Out:
ユーザーが実行したオプトアウトまたはオプトインです。enableOptOutフィールドには、オプトアウトの場合はtrue、オプトインの場合にはfalseが記載されます。
{ "apiKey" : "123", "userId" : "user1", "sessionId" : "sess1", "rrUserId" : "rr7", "eventType" : "search", "enableOptOut" : true, "eventTime" : 1428614744057 } |