Algolia
Algoliaは、開発者が高速で関連性の高いスケーラブルな検索体験を構築するための検索・ディスカバリープラットフォームです。強力なAPIファーストのアプローチにより、Algoliaは高度なランキングアルゴリズムとAI駆動のインサイトを組み合わせ、シームレスなサイト検索、ナビゲーション、パーソナライズされたコンテンツディスカバリーを実現します。
AlgoliaとBrazeの統合では、コネクテッドコンテンツを使用して、Algoliaを活用した検索結果や商品レコメンデーションをBrazeメッセージに反映します。送信時にAlgoliaのAPIにクエリを実行することで、ユーザーを高コンバージョンの商品詳細ページやランディングページに誘導するパーソナライズされたコンテンツを配信できます。
ユースケース
- トレンド商品のプロモーション: Algoliaからトレンドまたはパフォーマンスの高い商品を自動的にBrazeメッセージに取り込み、注目度の高いアイテムをプロモーションしてエンゲージメントを向上させます。
- 検索インテリジェンスによるCampaignsのパーソナライズ: Algoliaの検索・閲覧インテリジェンスを活用してBraze Campaignsをパーソナライズし、各ユーザーの興味に合った商品やカテゴリを配信します。
前提条件
| 要件 | 説明 |
|---|---|
| Algoliaアカウント | このパートナーシップを利用するにはAlgoliaアカウントが必要です。 |
| Algolia API認証情報 | AlgoliaのAPIキーとアプリケーションID。 |
| Algolia商品インデックス | 商品データが登録されたAlgoliaインデックス。Search APIまたはRecommend APIを使用するために必要です。 |
統合
ステップ 1: Algolia APIリクエストを設定する
リクエスト形式、レスポンス構造、使用方法の詳細については、Algolia Search APIおよびAlgolia Recommend APIのドキュメントを参照してください。設定についてサポートが必要な場合は、Algoliaチームにお問い合わせください。
Search APIリクエストの例
1
2
3
4
POST https://{ALGOLIA_APP_ID}-dsn.algolia.net/1/indexes/{INDEX_NAME}/query
Content-Type: application/json
X-Algolia-API-Key: {ALGOLIA_API_KEY}
X-Algolia-Application-Id: {ALGOLIA_APP_ID}
クエリペイロードの例
1
2
3
4
5
6
{
"query": "",
"hitsPerPage": 4,
"filters": "category_page_id:'this week's offers'",
"attributesToRetrieve": ["name", "price", "image", "url"]
}
この例では、category_page_idという属性に基づくカテゴリフィルターを使用するページから上位4件の結果を取得するクエリを実行します。attributesToRetrieveパラメーターはレスポンスを制限し、ペイロードを管理しやすいサイズに保ちます。
ユースケースの例: 週間オファーのBraze Campaignでhttps://www.yoursite.com/weekly-offersの検索結果を表示するには、対応するAlgoliaインデックスにクエリを実行し、フィルターを適用してそのページの上位結果を取得します。
attributesToRetrieveを使用して、評価、レビュー、割引などの追加フィールドを取得し、パーソナライゼーションを強化できます。
Recommend APIリクエストの例
1
2
3
4
POST https://{ALGOLIA_APP_ID}.algolia.net/1/indexes/*/recommendations
Content-Type: application/json
X-Algolia-API-Key: {ALGOLIA_API_KEY}
X-Algolia-Application-Id: {ALGOLIA_APP_ID}
クエリペイロードの例
1
2
3
4
5
6
7
8
9
10
{
"requests": [
{
"indexName": "prod_ECOM",
"model": "trending-items",
"threshold": 40,
"maxRecommendations": 4
}
]
}
Recommend APIは、Frequently Bought Together、Related Products、Trending Items、Trending Facet Values、Looking Similarなど、複数のモデルをサポートしています。この例ではTrending Itemsモデルを使用しています。
レコメンデーションがユーザー固有の属性やobjectIDに依存する場合は、Algolia契約で定義されたレート制限に注意してください。ベストプラクティスについては考慮事項セクションを参照してください。
ステップ 2: Brazeコネクテッドコンテンツを実装する
Brazeのコネクテッドコンテンツ機能を使用して、AlgoliaエンドポイントへのAPI呼び出しを行い、レスポンスをメッセージに動的に挿入します。設定、リクエスト形式、ベストプラクティスの詳細については、コネクテッドコンテンツを参照してください。
コネクテッドコンテンツSearchリクエストの例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{% capture request_body %}
{
"query": "",
"hitsPerPage": 4,
"filters": "category_page_id:'this week's offers'",
"attributesToRetrieve": ["name", "price", "image", "url"]
}
{% endcapture %}
{% connected_content https://{{ALGOLIA_APP_ID}}-dsn.algolia.net/1/indexes/{{INDEX_NAME}}/query
:method post
:headers {"X-Algolia-API-Key":"{{ALGOLIA_API_KEY}}", "X-Algolia-Application-Id":"{{ALGOLIA_APP_ID}}", "Content-Type": "application/json"}
:body {{request_body}}
:save algolia_search
%}
コネクテッドコンテンツRecommendリクエストの例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{% capture request_body %}
{
"requests": [
{
"indexName": "prod_ECOM",
"model": "trending-items",
"threshold": 40,
"maxRecommendations": 4
}
]
}
{% endcapture %}
{% connected_content https://{{ALGOLIA_APP_ID}}.algolia.net/1/indexes/*/recommendations
:method post
:headers {"X-Algolia-Application-Id":"{{ALGOLIA_APP_ID}}", "X-Algolia-API-Key":"{{ALGOLIA_API_KEY}}", "Content-Type": "application/json"}
:body {{request_body}}
:save algolia_recommendations
%}
ステップ 3: Brazeメッセージで検索結果をフォーマットする
Algoliaから結果を取得した後、Liquidを使用してAPIレスポンスを解析し、メッセージ内に結果を動的にレンダリングします。
Search API用のLiquidメールテンプレートの例
1
2
3
4
5
6
7
8
{% for item in algolia_search.hits %}
<div style="margin-bottom: 10px;">
<img src="{{ item.image }}" alt="{{ item.name }}" width="100"/>
<p><strong>{{ item.name }}</strong></p>
<p>Price: ${{ item.price }}</p>
<a href="{{ item.url }}">View Product</a>
</div>
{% endfor %}
これにより、メッセージ本文内にSearch APIの結果から商品リストが生成されます。各商品リンクは、ユーザーを商品詳細ページ(PDP)またはCampaign固有のランディングページに誘導します。
Recommend API用のLiquidメールテンプレートの例
1
2
3
4
5
6
7
8
{% for item in algolia_recommendations.hits %}
<div style="margin-bottom: 10px;">
<img src="{{ item.image }}" alt="{{ item.name }}" width="100"/>
<p><strong>{{ item.name }}</strong></p>
<p>Price: ${{ item.price }}</p>
<a href="{{ item.url }}">View Product</a>
</div>
{% endfor %}
これにより、メッセージ本文内にRecommend APIの結果からおすすめ商品リストが生成されます。各商品リンクは、ユーザーを商品詳細ページ(PDP)またはCampaign固有のランディングページに誘導します。
考慮事項
ユニーククエリの回避
Algolia契約で定義されたレート制限に注意してください。ユーザー固有のクエリは、割り当てられたリクエスト数をすぐに超過する可能性があるため、避けてください。結果をパーソナライズするには、個々のユーザーIDではなくSegmentをターゲットにするか、特定のobjectIDではなくカテゴリやブランドでフィルタリングしてください。Brazeの属性を使用してレコメンデーションをさらにパーソナライズできます。
コネクテッドコンテンツ結果のキャッシュ
cache_max_ageを使用してコネクテッドコンテンツの結果をキャッシュし、AlgoliaへのAPIリクエストを最小限に抑えてパフォーマンスを向上させます。詳細については、レスポンスのキャッシュを参照してください。