外部APIから取得したデータをBrazeの送信メッセージに含める

2022.03.08

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の実行も可能です。

さいごに

キャンペーンのメッセージに外部のシステムから取得したデータを組み込む方法を試しました。

この機能を使うことで外部で分析したデータからよりパーソナライズされたメッセージを提供する、ユーザーの地域によって言語を変える、人気の記事や動画を紹介するといったことをアプリケーションに組み込むことができるようになるのではないでしょうか。

参考