ExactTarget(SalesforceMarketingCloud)のJourneyBuilderでMobilePushをやってみました。
今回の参考URL→Salesforce-Marketing-Cloud-Developer-Edition-Recipes/firing-events.md
また、MobilePushのSDK組み込みやアプリケーション設定に関しては以下の記事を参考にしてください。
1. Platformタブの有効化
JourneyBuilderはデフォルトではMobilePushに対応していないので、有効化する必要があります。有効化のためにはPlatformタブを有効化してもらう必要があるので、サポートに連絡して有効化してもらいます。参考URL→http://salesforce.stackexchange.com/questions/85470/mobile-push-and-mobile-connect-in-journey-builder
2. MobilePushの有効化
PlatformタブのMarketing Cloud Extension Managerをクリックします。Mobile Pushの[Manage]ボタンをクリックします。
対象のユーザを有効化します。
3. Interaction用のメッセージを作成
[Mobile]>[MobilePush]から[Create Message]ボタンを押下して、メッセージを作成します。JourneyBuilderのMobilePushを有効化すると、Send MethodにInteractionというのが増えるので、これにチェックを付けてメッセージを作成します。4. Interaction用のDataExtension(DE)を作成
こんな感じなDataExtensionを作成します。SendableなDEにする必要があります。また、利用するケースによってはSubscriberKeyは不要です(後述)
5. Interactionの作成
JourneyBuilderの[New Interaction]ボタンから新規作成画面に遷移します。 その後、[Configure Event]をクリックします。[New Event]をクリックします。
Contact Eventを選択して[Next]をクリックします。
Eventの情報を入力して[Next]をクリックします。
紐付けるEvent Source用のDataExtensionを選択します。ここでは2で作成したDataExtensionを選択します。スケジュールでJourneyBuilderを起動する場合は、Repeatに適切な値をセットします。今回はAPI or AutomationStudio経由でイベント発火を行うので、Repeatに「Never」を選択します。
対象のContactの属性値に応じてJourneyBuilderを起動させるかどうかのフィルタリングの設定を行うことができます。今回はフィルタリングを行わないので、何も選択せず[Next]をクリックします。
入力した情報を確認し、[Done]をクリックします。
そうするとこんな感じで作成したEventがInteractionと紐付きます。 左側のSend Pushをドラッグアンドドロップで右のエリアに持って行きます。
以下のようにフローが自動的に生成されます。デフォルトではイベント発火とSendPushの間、SendPushとInteraction終了の間に1日のタイムラグがある状態です。これだと確認に時間がかかるので、この「待ち時間」を減らします。
まずは左側の「待ち時間」を削除します。
右側の「待ち時間」は削除できないので、編集で1日から1分に減らします。
Send Pushのメッセージ内容を編集します。
3で作成したメッセージを選択します(Send MethodがInteractionのメッセージのみ表示されます)
設定が完了したら、[Save]をクリックしてInteractionを保存します。
ちなみに、Contact EntryはInteractionに同時に複数回入る可能性がある場合は、Multiple Entriesにする必要があります。逆に、同時に複数回入ることを回避したい場合は、Single Entryを選択してください。
6. Interactionのコール
Interactionのコールは以下の方法があります。- スケジュール起動
- AutomationStudioによる起動
- APIによる起動
AutomationStudioによる起動
以下のようなFireEventだけのAutomationStudioを作成します。
FireEventの中身はこんな感じで、対象のイベント用のDEを選択します。
あとは、[Run Once]をクリックして、AutomationStudioを起動してFire Eventを実行させます。
APIによる起動
contactEventsを使う方法とeventを利用する方法の2種類ありますが、簡単なevents APIの方をやります。
起動するためにはEvent Definition Keyが必要になります。[JourneyBuilder]の[Administration]>[Events]から対象のイベントを選択して、Event Definition Keyを確認してください。
APIのリクエストこんな感じで
$ curl -i -X POST \
-H "Content-Type:application/json" \
-H "Authorization:Bearer {Access Token}" \
-d \
'{
"ContactKey":"{Contact Key(=Subscriber Key)}",
"EventDefinitionKey":"{Event Definition Key}",
"Data": {
"id":"{unique string}",
"SubscriberKey" : "{Contact Key(=Subscriber Key)}"
}
}' \
'https://www.exacttargetapis.com/interaction/v1/events'
※events APIの場合はData.SubscriberKeyは入力しなくてもOK(ContactKeyで配信対象のContactが一意に決定する)ですが、ログの意味合いとしてSubscriberKeyをセットした方が良いと思います。
レスポンスはこんな感じのJSONで、送信結果の確認はこのeventInstanceIdとログを突き合わせる感じになります。
{"eventInstanceId":"5f3506a9-420b-4f6a-9f11-8afb2a7bb373"}