外部APIから取得したデータをBrazeの送信メッセージに含める
Brazeから送信されるメッセージ(Email, プッシュ通知、アプリ内メッセージ、コンテンツカードなど)は、外部のシステムからデータを取得し、メッセージ内に含むことができます。
メッセージを動的に挿入する方法としてBrazeではLiquidが利用できます。外部からデータを取得する際もLiquidを使用することになります。
※ LiquidはShopifyによって作成され、Rubyで記述されたテンプレート言語。オープンソースのプロジェクトとして利用できる
Brazeで利用できるLiquidのタグ一覧は以下
条件分岐や繰り返し処理も書くことができるので、よりパーソナライズされたメッセージを作成することも可能でしょう。
外部APIを呼び出す
外部APIを呼び出すには{% connected_content %}
というタグを利用します。
使用例)
{% connected_content https://example.com/api :save result %}
取得したデータを:save
で変数に割り当てることができます
取得した結果は {{result.text}} です。
といったように、結果に割り当てた変数をメッセージに組み込むことができるようになります。
HTTPステータスコードの確認も可能で、__http_status_code__
というキーを使用します.
{% connected_content https://example.com/api :save result %} {% if result.__http_status_code__ != 200 %} {% abort_message('おっと、何かおかしいようです') %} {% endif %}
キャンペーンのメッセージに組み込んでみる
今回はアプリ内メッセージで試します。
キャンペーンのメッセージ作成タブの本文に{% connected_content %}
タグを組み込みます。
天気予報を提供してくれるOpenWeather APIを使ってみました。
本文サンプル)
おすすめプランが設定されましたのでご紹介いたします 【ご紹介プラン内容】 ・プラン名: [イチオシ]★コスパ最強&公開枠★昼食付★割増なし ・お一人様の料金 : 4,219円(総額 4,990円) 【周辺天気情報】 {% connected_content https://api.openweathermap.org/data/2.5/forecast?lat=35.66716&lon=138.568993&lang=ja&cnt=1&appid={{OpenWeathernのアプリID}} :save result %} {{result.city.name}}の予報は "{{result.list[0].weather[0].description}}" です。
テストタブをクリックすると実際に{% connected_content %}
タグの中身が実行され、結果が確認できました。
{{result.city.name}}の予報は "{{result.list[0].weather[0].description}}" です。
の部分が、
甲府市の予報は "雲" です。
となっていますね
OAuthにも対応できるので、認証が必要なAPIの実行も可能です。
さいごに
キャンペーンのメッセージに外部のシステムから取得したデータを組み込む方法を試しました。
この機能を使うことで外部で分析したデータからよりパーソナライズされたメッセージを提供する、ユーザーの地域によって言語を変える、人気の記事や動画を紹介するといったことをアプリケーションに組み込むことができるようになるのではないでしょうか。