Webhook¶
Webhookは、Reproで発生した特定のイベントをトリガーとして、任意の外部システムへHTTPリクエストを送信する機能です。 Reproと外部システムをリアルタイムに連携できるため、自社業務システムへのゼロパーティデータの収集・活用やサービス横断施策の実行など、さまざまな施策に活用できます。
Webhookを作成する¶
Webhookの作成画面に遷移¶
管理画面にログインし、[マーケティング] > [WEBHOOK]をクリックし、Webhookの一覧画面に遷移します。
一覧画面の表示後、右上の[新規作成]ボタンをクリックし、Webhookの作成画面に遷移します。
キャンペーン情報を入力¶
キャンペーンの名前とキャンペーンのゴール、キャンペーンの狙いと実施後の結果を入力します。 (キャンペーンのゴールとキャンペーンの狙いと実施後の結果は任意です)
配信対象を入力¶
キャンペーンの配信対象を指定します。 配信対象の指定方法は 配信対象を選択する をご覧ください。
注釈
配信対象に「カート追加を1回以上」を指定し、トリガー条件も「カート追加」を指定した場合、「カート追加」を1回実行した時点でWebhookが配信されます。2回実行時ではないので設定時にはご注意ください。
なお、セグメンテーションに時間がかかる場合、その限りではありません。
配信設定を入力¶
キャンペーンの配信設定を入力します。
- トリガー
Webhookを配信する起点となるイベントやプロパティを指定します。
プロフィールの変化をトリガー条件とすることはできません。
- トリガー発生後、一定時間経過してから配信
チェックを入れると、トリガー条件のイベントの実行後、一定時間経過してから配信します。
経過時間は最短15分後から最大7日後まで指定できます。
チェックを入れない場合はすぐに配信されますが、サーバーの混雑状況により配信まで数分〜数十分かかる場合があります。
- 配信期間を指定
Webhookを配信する期間を設定します。
- 配信時間帯
夜中や早朝などの意図しない時間帯の配信を防ぐために、配信が可能な時間を設定します。
設定した配信時間帯以外にWebhookのトリガー条件のイベントが実行された場合、次の配信時間帯になった時点でWebhookが配信されます。
次の配信時間帯を待っている間にキャンペーンの配信期間を過ぎてしまった場合にはWebhookは配信されません。
キャンペーンの保存後、配信時間帯は変更できません。変更する場合は該当のキャンペーンを複製してください。
- 配信をキャンセルするイベントを指定する
チェックを入れると、意図しないユーザーへの配信を止めるために、配信をキャンセルするイベントを指定できます。
トリガー条件のイベントを実行済みのユーザーが、さらに指定したイベントを実行した場合に、予定していた配信を中止します。
配信直前やトリガー発火直後にキャンセルするイベントが発生した場合など、配信をキャンセルするイベントの実行タイミングによっては、そのまま配信されてしまう可能性があります。
- 配信頻度
Webhookが1日に何度も配信されることを防ぐため、配信頻度を設定できます。
1日に何度も実行される可能性があるイベントをトリガー条件として登録する場合、Webhookが大量に配信される場合があります。
コンテンツを入力¶
外部システムへ送信するHTTPリクエストの内容を設定します。
項目 |
説明 |
|---|---|
URL |
リクエストの送信先URLを入力します。
http:// または https:// で始まるURLのみ指定できます。 |
リクエストメソッド |
|
リクエストヘッダ |
リクエストヘッダのキーと値を設定します。
[追加]ボタンをクリックするとヘッダを追加できます。[削除]ボタンをクリックすると該当のヘッダを削除できます。
|
リクエストボディ |
リクエストボディをJSON形式で入力します。
Liquidによるパーソナライズを利用する を利用して、ユーザープロフィールやイベントの情報を差し込むことができます。
|
注釈
コンテンツの内容は公開後も編集できます。
公開を押して配信開始¶
公開することで、配信期間中に配信対象のユーザーがトリガーのイベントをトラックした時に、Webhookが配信されます。
テスト送信する¶
作成画面の[テスト送信]セクションでは、設定したコンテンツの内容で実際にHTTPリクエストを送信し、送信先からのレスポンスを確認できます。
項目 |
説明 |
|---|---|
プレビュー |
コンテンツの入力内容に合わせて、送信されるリクエストと同じ内容のcurlコマンドが自動で生成されます。 |
テスト送信 |
クリックすると、プレビューに表示されている内容でHTTPリクエストを実際に送信します。
URL、リクエストメソッド、リクエストボディがすべて入力済みの場合にのみクリックできます。
|
レスポンス |
送信先のサーバーからのレスポンスがそのまま表示されます。
リクエストボディのJSONの形式が不正な場合など、リクエストに問題がある場合はエラーメッセージが表示されます。
15秒以内にレスポンスが返らない場合はタイムアウトとして表示されます。
|
HTTPリクエストの送信仕様¶
リトライ¶
送信先のサーバーからのレスポンスのステータスコードが2xx以外の場合は、送信失敗として扱われます。 送信に失敗した場合は、約30分後に再送信します。再送信は最大3回行われます。
タイムアウト¶
リクエスト開始から30秒以内にレスポンスが返らない場合はタイムアウトとして扱われ、再送信の対象になります。 再送信の動作は リトライ をご覧ください。
リクエスト元IPアドレス¶
送信先で接続元のIPアドレスを制限している場合など、Reproのリクエスト元IPアドレスが必要な場合は、担当者までお問い合わせください。
Liquidによるパーソナライズを利用する¶
プッシュ通知などで利用できる Liquidによるパーソナライズ を、Webhookでもリクエストボディで利用できます。 Liquidの記述ルールや注意事項は、Liquidによるパーソナライズのページをご覧ください。
変数として利用できる情報¶
情報 |
記述方法 |
備考 |
|---|---|---|
ユーザープロフィール |
|
|
トリガーのイベントのイベントプロパティ |
|
|
トリガーのイベントのイベント名 |
|
|
ユーザーID |
|
ユーザーIDが設定されていないユーザーの場合は空文字になります。 |
トリガーのイベントのトラッキング日時 |
|
プロジェクトのタイムゾーンで、タイムゾーンオフセット付きのISO 8601形式で出力されます。例: |
記述例¶
イベントプロパティ count を持つイベントをトリガーにして、ユーザーID、イベント名、イベントプロパティ、トラッキング日時を送信するリクエストボディの例です。
{
"user_id": "{{ event_metadata['user_id'] }}",
"event_name": "{{ event_metadata['name'] }}",
"properties": {
"count": {{ event['count'] }}
},
"tracked_at": "{{ event_metadata['tracked_at'] }}"
}
配信を停止する¶
一覧画面から、対象のWebhookに対して[配信停止]または[アーカイブ]を行うことで、配信を停止できます。
警告
一度アーカイブしたWebhookを公開状態に戻すことはできません。
よくあるご質問¶
Webhookの配信上限はありますか?
配信数に上限はありません。今後変更される可能性があります。