フォーム読み込み中
この記事はソフトバンクアドベントカレンダー2024の21日目の記事です。
Google Cloud のデータプラットフォーム「Looker」と生成 AI を組み合わせることで、データ分析からアクションまでを一元化し、より効果的なマーケティング施策が可能になります。
本記事では、Looker のアクション機能を実装して、生成 AI による顧客ごとに最適化されたメール文面の作成、さらに Slack への連携という、既存の枠にとらわれない新たなユースケースを解説します。
特に、生成 AI を活用した顧客体験の向上に関心のある方は、ぜひご一読ください。
Looker は、Google Cloud が提供する「データプラットフォーム」です。
データの集計可視化はもちろん、データの事前定義や外部ツールとの連携により、分析結果に基づく具体的なアクションまでを一貫して実行できます。データの民主化を促進し、迅速かつ正確な意思決定を支援するツールです。
Looker の機能概要については、以前のデータプラットフォーム「Looker」 の機能紹介記事を参照してください。
Looker のアクション機能は、Explore で分析した結果を基に、外部システムへのデータ送信や特定の処理実行を自動化する仕組みです。従来のCSV出力・加工といった煩雑なプロセスを省き、大幅な時間と労力の削減を実現します。
メール配信リストの自動生成、CRM へのデータ送信など、さまざまなアクションを Looker 上で直接実行できます。これにより、データ分析から一歩進んだ「データ駆動型アクション」が可能になります。
今回は、BigQuery の一般公開データセットである e コマースデータセット(thelook_ecommerce)を用いて、購買データに基づいたパーソナライズドプロモーションを生成し、Slack でマーケティングチームに通知するアクション機能を実装しました。
早速アクション機能を使ってみましょう。
Explore でターゲット顧客を絞り込みます。
今回は、 20代、日本在住、直近3か月以内の購買といった条件でターゲット顧客を抽出しました。
次に、アクション機能の選択です。
設定 > 送信 を選択します。
今回実装したアクション機能である「プロモーション配信」を選択し、送信をクリックします。
ここで、Gemini に対して追加指示があれば、プロンプト欄に入力します。
Slack に顧客ごとにパーソナライズドされたプロモーション文章が配信されました!
<生成されたプロモーション文章例:キャンセル商品への再提案>
1. John Kelley 様 (johnkelley@example.net)
宛先: johnkelley@example.net
件名: ジョン様、お探しのCalvin Klein Jeansはいかがですか?
メール本文:
ジョン様
この度は、Calvin Klein Jeans Women's Faille Skinny Pant のご注文誠にありがとうございました。
大変申し訳ございませんが、ご注文はキャンセルとなりました。
もしかしたら、お探しの商品が見つからなかった、またはサイズが合わなかったのかもしれません。
もしそうでしたら、ぜひ当社のウェブサイトで他のCalvin Klein Jeansのアイテムをご覧ください。
現在、幅広いスタイルとサイズを取り揃えております。
また、最近、新商品も入荷しましたので、ぜひチェックしてみてください。[ウェブサイトへのリンク]
ご不明な点がございましたら、お気軽にお問い合わせください。
今後とも、当社をご愛顧いただきますようお願い申し上げます。
敬具
根拠:ジョン様は、Calvin Klein Jeans Women's Faille Skinny Pant をキャンセルしました。
このメールでは、キャンセルされた商品への関心を再燃させ、他のCalvin Klein Jeansのアイテムを提案しています。
<生成されたプロモーション文章例:購入商品に合うアイテム紹介>
2. John Gregory 様 (johngregory@example.com)
宛先: johngregory@example.com
件名: ジョン様、お買い上げいただいたDickies Lab Coatに合うアイテムをご紹介!
メール本文:
ジョン様
この度は、Dickies 82408 Youtility Women's Lab Coat のご注文誠にありがとうございました。
お買い上げいただいたLab Coatに合うアイテムをいくつかご紹介させていただきます。
[商品へのリンク]
これらのアイテムは、現在割引価格でご提供しております。
ぜひ、この機会にご利用ください。
今後とも、当社をご愛顧いただきますようお願い申し上げます。
敬具
根拠: ジョン様は、Dickies 82408 Youtility Women's Lab Coat を購入しました。
このメールでは、Lab Coatに合うアイテムを提案し、さらなる購入を促しています。
顧客の購買履歴や注文キャンセル状況を考慮したプロモーション文章が生成されました。
この文章のトーンや内容は、プロンプトを調整することでカスタマイズが可能です。たとえば、特定の顧客セグメントに対して、同じ内容のプロモーション文章を生成することもできます。
さらに、Looker 上で直接顧客にメールやアプリ通知を送るアクションを実行することができます。Explore を活用したより複雑な分析や生成 AI のプロンプトの工夫により、次のような多様な活用が可能です。
新商品発売時に関連商品を購入した顧客への特別割引の提供
季節ごとのキャンペーンにおけるターゲット顧客への迅速なプロモーション展開
購買頻度低下顧客への特別クーポン発行
カート放棄した顧客への追加プロモーション提案
Explore 上で購買履歴から再購入の特徴(購入頻度、購入間隔、特定商品のリピート率など)を分析し、その結果を基にプロンプトをカスタマイズすることで、よりパーソナライズされたプロモーションのレコメンドをすることもできます。
Looker のアクション機能と生成 AI を組み合わせることで、より効果的なマーケティング施策の実施が可能となり、チーム内での迅速な情報共有も実現します。
本アクション機能は、Looker Action API を利用して実装しました。Action API は、Looker からのアクションを受け入れる Incoming Webhook のような API です。
Action サーバー側はいくつかのエンドポイントを用意し、Looker インスタンスに登録することで Action 機能として利用可能になります。
詳細は公式ドキュメントをご参照ください。
今回実装したアクション機能は、次の3つのエンドポイントで構成されています:
list エンドポイント
form エンドポイント
execute エンドポイント
これらのエンドポイントについて順に説明していきます。
このエンドポイントでは、アクション定義をレスポンスに返す必要があります。
form / execute エンドポイント先もここで定義します。
def action_list(request):
"""Return action hub list endpoint data for action"""
auth = authenticate(request)
if auth.status_code != 200:
return auth
response = {
'label': 'Looker Vertex AI',
'integrations': [{
'name': 'プロモーション配信',
'label': 'プロモーション配信',
'supported_action_types': ['query'],
"icon_data_uri": icon_data_uri,
'form_url': BASE_DOMAIN + 'form',
'url': BASE_DOMAIN + 'execute',
'supported_formats': ['json'],
'supported_formattings': ['formatted'],
'supported_visualization_formattings': ['noapply'],
'params': [
{'name': 'name', 'label': 'User Name',
'user_attribute_name': 'name', 'required': True},
{'name': 'slack_id', 'label': 'Slack ID',
'user_attribute_name': 'slack_id', 'required': True}
]
}]
}
return Response(json.dumps(response), status=200, mimetype='application/json')
'supported_action_types' に 'query' を指定しているため、このアクションは Explore から実行できます。dashborad を指定すると、ダッシュボードからアクションを実行できるようになります。
'params' では、アクションを有効化する際に取得されるユーザー属性を指定しています。本機能では、ユーザーの名前と Slack 配信先を取得しています。
アクション実行画面でユーザーが入力するフォームを定義します。
def action_form(request):
"""Return form endpoint data for action"""
auth = authenticate(request)
if auth.status_code != 200:
return auth
# Define the form fields with drop-down options
response = [
{
'name': 'prompt',
'label': 'プロンプト',
'description': 'Gemini に渡す追加のプロンプトを入力してください',
'type': 'textarea',
'required': False
}
]
return Response(json.dumps(response), status=200, mimetype='application/json')
本機能では、生成 AI(Gemini)に渡す追加のプロンプトを任意で入力できるようにしています。
エンドポイント宛にアクション実行時に選択された分析結果が送られます。
これらのデータを基に、Vertex AI(Gemini)へのリクエスト送信、Slack へのメッセージ配信といったアクションを実行します。処理の詳細は次のセクションで解説していきます。
これらのエンドポイントを Cloud Run 上にデプロイし、Looker と連携しています。
今回は Slack を利用していますが、Webhook や API が公開されていれば社内システムとの連携も可能です。
アクション機能の構成は次のようになっています。
Cloud Run 上に list、form、execute エンドポイントを構築しました。
各エンドポイントは Looker からのリクエストを受け取り、適切なレスポンスを返します。
execute エンドポイント内で Google Cloud の Vertex AI API を呼び出し、Gemini を用いてプロモーションメッセージを生成します。
<プロンプト>
あなたは、アパレルメーカーのダイレクトメールマーケティング担当者です。 以下の顧客情報に基づいて、顧客一人ひとりにパーソナライズされた魅力的なキャンペーン文章を日本語で作成してください。 ```{prompt}``` Constraints: * 顧客への呼びかけは「〇〇様」を使い、丁寧な言葉遣いを心がけてください。 JSON payload: ```{data}``` Answer:
{ }内には以下の値が入ります。
prompt :ユーザーがフォームで入力したプロンプト文章
data:Explore から取得したデータ(JSON形式)
<Explore から取得したデータ 一部抜粋>
{
'order_items.created_date': '2024-11-29',
'order_items.status': 'Cancelled',
'products.category': 'Jeans'
'products.department': 'Women',
'products.brand': 'Calvin Klein Jeans',
'products.name': "Calvin Klein Jeans Women's Faille Skinny Pant",
'products.retail_price': '69.5',
'users.email': 'johnkelley@example.net',
'users.created_date': '2024-11-29',
'users.country': 'Japan',
'users.city': 'Tokyo',
'users.age': '28',
'users.first_name': 'John',
'users.last_name': 'Kelley',
'users.gender': 'M',
'users.postal_code': '167-0021'
}
生成されたプロモーションメッセージは Slack API 経由でマーケティングチームへ通知されます。
このアクション機能では、Slack への配信を除く実装を Google Cloud 内で完結させることができました。
本記事では、Looker と生成 AI によるパーソナライズドプロモーション配信について解説しました。
Looker のアクション機能と生成 AI の連携は、データ分析からアクションまでをシームレスに繋ぎ、リアルタイムな意思決定を可能にします。高度なカスタマイズ性により、企業独自のニーズへの対応も容易です。
CRMへの自動データ登録、メールマーケティングツールとの連携、広告プラットフォームへのオーディエンスアップロードなど、さまざまなユースケースに柔軟に適用することができます。
今回、紹介した「Vertex AI プロモーション配信」の事例はその一例ですが、このような仕組みを導入することで、より効率的かつ効果的なマーケティング施策が可能になります。
ぜひ Looker とそのアクション機能を活用し、自社ならではの施策をお試しください!
さらに、Looker では生成 AI を活用した他の拡張機能もご利用いただけます。前回の記事もぜひご一読ください。
Vertex AI Search を使って社内文書を検索する生成 AI を構築してみませんか?
ソフトバンクのエンジニアが構築をサポートします。
Vertex AI DIY プランでは、以下の3つのことを体験できます。
詳細は、関連サービスにある「Vertex AI DIYプラン」をご確認ください。
Vertex AI Search を使って社内文書を検索する生成AIを構築してみませんか?
ソフトバンクのエンジニアが構築をサポートします。
Google の生成AIの導入を考えている方はもちろん、どのようなものか確認したいという方でもご活用いただけます。
Looker は定義から集計、可視化の一連のデータ分析プロセスをカバーする BI ツールを超えるデータプラットフォームです。ソフトバンクは、顧客のニーズに合わせて柔軟なサポートを提供し、Looker を活用したデータドリブンな企業変革を支援しています。
Google サービスを支える、信頼性に富んだクラウドサービスです。お客さまのニーズにあわせて利用可能なコンピューティングサービスに始まり、データから価値を導き出す情報分析や、最先端の機械学習技術が搭載されています。
MSP(Managed Service Provider)サービスは、お客さまのパブリッククラウドの導入から運用までをトータルでご提供するマネージドサービスです。
条件に該当するページがございません