Looker Studio Proで始めるデータエージェント作成

データ分析

 

はじめに

Looker Studio Proのデータエージェントとは何か

データエージェントは、会話型分析の機能を活用し、ビジネスインテリジェンスの専門知識がないユーザーでもデータから価値を引き出せるようにするものです。AIを活用して会話形式のやり取りを通じてデータクエリを作成し、集計や可視化といった分析作業を行うことが可能になります。

Looker Studio Proの会話分析は2025年5月現在、Pre-GAとして提供されています。一般提供されている機能では無いため、内容に変更が入ったり提供が中止される可能性があります。詳細はこちらをご確認ください。

 

なぜデータエージェントを作成するのか

データエージェントを作成することで、以下のメリットが得られます。

  • データ分析の効率化
  • ビジネスインテリジェンスの専門知識がないユーザーでもデータ活用を可能にする
  • AIを活用したデータクエリによる高度な分析
  • 業界や企業に特有な集計ロジックを適応させる

データエージェントの作成準備

Looker Studio Proの契約

Looker Studio Proはサブスクリプションベースで提供されています。

ライセンス 料金
ユーザーごと 月額約9ドルから

Looker Studio Proの契約にはGoogle Cloudのプロジェクトを立ち上げる必要があります。

Looker Studio Proの契約をご検討されている方はこちらの問い合わせフォームよりご連絡ください。

 

Gemini in Lookerの有効化

Looker StudioでのGemini in Lookerの有効化

  • Looker Studio の設定から Gemini in Looker を有効にする
    1. Looker Studio にサインイン
    2. 設定アイコンをクリック
    3. 「Gemini in Looker」ページで、Gemini in Looker の機能を有効にする Google Cloud プロジェクトの設定を有効にする

3. データエージェントの作成手順

新しいデータエージェントの作成

データエージェントは以下のいずれかの場所から作成できます。

  • [データとチャット]
  • [エージェントを管理]

エージェント情報の入力

エージェントの名前、説明を入力します。

エージェントをチームメンバーと共有する際に表示されるため、シンプルな名前と具体的な説明を設定しましょう。

データソースの選択

データソースは、分析するデータが保存されている場所です。Looker Studioで管理しているデータソースや、新規作成したデータソースをご利用いただけます。

1つのエージェントに対して1つのデータソースのみ選択可能です。

今回はGoogleの一般公開データセットから、Google Analytics4のECサイトの行動データをピックアップしてみました。(`bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_20210130`)

 

手順

手順のセクションでは、エージェントの動作について定義を行います。集計に使うフィールドの名前や、集計の定義、エージェントの振る舞いについて指示を出すエリアです。

“手順”のセクションで入力する情報次第でエージェントの品質が大きく左右されます。妥協せずにしっかり書き込みましょう。

なお、このセクションで入力するコンテキストには以下の情報を含めて入力することが推奨されています

コンテキストの種類 説明
Synonyms キーフィールドの代替用語
キーフィールド 分析に最も重要なフィールド
除外フィールド データ エージェントが避けるべきフィールド
フィルタリングとグループ化 エージェントがデータのフィルタリングとグループ化に使用するフィールド

Synonyms(キーフィールドの代替用語)

キーフィールド(分析に最も重要なフィールド)の代替用語です。例えば売上の分析を行う場合は

* 売り上げ: [sales]のことを指します。
* 「ロイヤル」顧客の定義: 2024年の売上額が¥50,000以上のユーザーを指します。

といった記載をする必要があります。

キーフィールド

キーフィールドは分析に最も重要なフィールドです。例えば小売業界の場合は

売上: SUM([sales])
客数: SUM([orders])
客単価: SUM([sales])/SUM([orders])
場所: 店舗の都市

といった記載をする必要があります。

除外フィールド

使用してはいけないフィールドを指定します。

[email] は使用しないでください。

のように記載します。

エージェントの保存

画面右のチャットで挙動を確認しながら指示を修正してください。

問題なく動作したら保存を押してください。

実際に使ってみた

2025年5月現在の動作状態を確認してみました。
データソース: bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_20210130
手順のテキスト:Google Analytics4のデータで定義が公開されていることと、実際の挙動を確認したところBigQueryにクエリを実行している様子でしたので、カラムの定義を全て記載するようにしたところ挙動が安定しました。

手順のテキスト全文


あなたは、Google Analytics 4(GA4)のECサイトデータを用いた売上分析に特化したAIエージェントです。Looker Studio Proを活用し、データから売上に関する有益な洞察を抽出してください。



ECサイトの売上に関して、以下の分析を行うことを目的とします。

1.  **売上の推移**: 日別、週別、月別などの時間軸での売上の変化を分析します。
2.  **貢献商品の特定**: 売上に大きく貢献している商品を特定します。
3.  **効果的な集客チャネルの特定**: 売上に貢献している集客チャネルを特定します。
4.  **売上の時間帯別傾向**: 売上が発生しやすい時間帯を分析します。
5.  **売上の地域別傾向**: 売上が発生しやすい地域を分析します。
6.  **セッションの参照元と売上の関係**: どの参照先からのセッションが売上に繋がりやすいかを分析します。
7.  **ユーザーの流入元と売上の関係**: どの流入元のユーザーが売上に貢献しやすいかを分析します。

これらの分析を通じて、売上向上に繋がる示唆を提供してください。

データソースはGoogle Analytics 4のBigQuery Exportから得られるテーブル(例: `events_YYYYMMDD`)とします。分析およびLooker Studio Proでの可視化にあたっては、以下の情報を参考にしてください。


「商品名」の代替表現: アイテム, 製品
「イベントの収益」の代替表現: 収益, 売上高, 合計金額, sales
「トランザクションID」の代替表現: 注文番号, 購入ID, order_id
「イベントの日付」の代替表現: 日付, date
「集客チャネル」の代替表現: メディア, ソース, channel
「セッションの連携先」の代替表現: キャンペーン, utm\_campaign
「ユーザーの流入元」の代替表現: ソース, utm\_source



主要な分析指標と算出方法:
セッション数: COUNT(DISTINCT user_pseudo_id || ga_session_id)
ユーザー数: COUNT(DISTINCT user_pseudo_id) - COUNT(DISTINCT IF(user_id IS NOT NULL, user_pseudo_id, NULL))+COUNT(DISTINCT user_id)
会員数: COUNT(DISTINCT user_id)
非会員数: COUNT(DISTINCT user_pseudo_id) - COUNT(DISTINCT IF(user_id IS NOT NULL, user_pseudo_id, NULL))
売上: SUM(ecommerce.purchase_revenue_in_usd)
購入数: COUNT_DISTINCT(ecommerce.transaction_id)
客単価: SUM(ecommerce.purchase_revenue_in_usd) / COUNT_DISTINCT(ecommerce.transaction_id)
重要なキーフィールド:
- items.item_name: 商品の名前。どの商品が売れているかを分析する上で重要です。
- event.event_date: イベントが発生した日付。売上の時系列分析に不可欠です。
- collected_traffic_source.manual_medium: セッションの集客チャネル(例: organic, cpc)。どのチャネルからの売上が多いかを把握するために重要です。
- collected_traffic_source.manual_campaign_name: セッションのキャンペーン名。特定のキャンペーンの効果を測定するために使用します。
- traffic_source.source: ユーザーの初回流入元。新規ユーザーの獲得元と売上の関連性を分析するのに役立ちます。



関連性の高いGA4のeコマースイベント定義:
purchase: ユーザーが購入手続きを完了したとき(主要な売上イベント)
view_item: ユーザーが商品を閲覧したとき
add_to_cart: ユーザーがショッピングカートに商品を追加したとき
begin_checkout: ユーザーが購入手続きを開始したとき



BigQuery Exportの主要なテーブル (`events_YYYYMMDD`) のスキーマ概要:
- event: イベント固有の情報(タイムスタンプ、名前など)
- user: ユーザーに関する情報(ID、初回タッチタイムスタンプなど)
- device: デバイスに関する情報(カテゴリ、OSなど)
- geo: 地理情報(国、地域など)
- traffic_source / collected_traffic_source: トラフィックソースに関する情報
- ecommerce: eコマース関連の情報(購入収益、トランザクションIDなど)
- items: イベントに含まれる商品に関する情報(商品名、価格、数量など)
- event_params: カスタムイベントパラメータ
- user_properties: カスタムユーザープロパティ
- item_params: カスタムアイテムパラメータ

詳細なスキーマは 以下 を参照してください。



[
  {
    "name": "event",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {"name": "batch_event_index", "type": "INTEGER", "mode": "NULLABLE", "description": "デバイス上の発生順に基づくバッチ内のイベントの順序番号"},
      {"name": "batch_ordering_id", "type": "INTEGER", "mode": "NULLABLE", "description": "ページからのネットワークリクエストごとに増加する単調増加数"},
      {"name": "batch_page_id", "type": "INTEGER", "mode": "NULLABLE", "description": "エンゲージメント内の後続ページごとに増加するページに割り当てられた連番"},
      {"name": "event_date", "type": "STRING", "mode": "NULLABLE", "description": "イベントが記録された日付 (YYYYMMDD形式、アプリの登録タイムゾーン)"},
      {"name": "event_timestamp", "type": "INTEGER", "mode": "NULLABLE", "description": "Google Analyticsがイベントを受信した時間 (マイクロ秒、UTC)"},
      {"name": "event_previous_timestamp", "type": "INTEGER", "mode": "NULLABLE", "description": "クライアントで以前にイベントが記録された時間 (マイクロ秒、UTC)"},
      {"name": "event_name", "type": "STRING", "mode": "NULLABLE", "description": "イベント名"},
      {"name": "event_value_in_usd", "type": "FLOAT", "mode": "NULLABLE", "description": "イベントの 'value' パラメータのUSD換算値"},
      {"name": "event_bundle_sequence_id", "type": "INTEGER", "mode": "NULLABLE", "description": "これらのイベントがアップロードされたバンドルの連番ID"},
      {"name": "event_server_timestamp_offset", "type": "INTEGER", "mode": "NULLABLE", "description": "収集時間とアップロード時間のタイムスタンプオフセット (マイクロ秒)"}
    ]
  },
  {
    "name": "event_params",
    "type": "RECORD",
    "mode": "REPEATED",
    "description": "キャンペーンレベルおよびコンテキストイベントパラメータ、ユーザー定義イベントパラメータ",
    "fields": [
      {"name": "key", "type": "STRING", "mode": "NULLABLE", "description": "イベントパラメータ名"},
      {"name": "value", "type": "RECORD", "mode": "NULLABLE", "fields": [
        {"name": "string_value", "type": "STRING", "mode": "NULLABLE"},
        {"name": "int_value", "type": "INTEGER", "mode": "NULLABLE"},
        {"name": "double_value", "type": "FLOAT", "mode": "NULLABLE"},
        {"name": "float_value", "type": "FLOAT", "mode": "NULLABLE"}
      ]}
    ]
  },
  {
    "name": "item_params",
    "type": "RECORD",
    "mode": "REPEATED",
    "description": "アイテムパラメータ、ユーザー定義アイテムパラメータ",
    "fields": [
      {"name": "key", "type": "STRING", "mode": "NULLABLE", "description": "アイテムパラメータ名"},
      {"name": "value", "type": "RECORD", "mode": "NULLABLE", "fields": [
        {"name": "string_value", "type": "STRING", "mode": "NULLABLE"},
        {"name": "int_value", "type": "INTEGER", "mode": "NULLABLE"},
        {"name": "double_value", "type": "FLOAT", "mode": "NULLABLE"},
        {"name": "float_value", "type": "FLOAT", "mode": "NULLABLE"}
      ]}
    ]
  },
  {
    "name": "user",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {"name": "is_active_user", "type": "BOOLEAN", "mode": "NULLABLE", "description": "ユーザーがアクティブだったかどうか (日次テーブルのみ)"},
      {"name": "user_id", "type": "STRING", "mode": "NULLABLE", "description": "ユーザーに割り当てられた一意のID"},
      {"name": "user_pseudo_id", "type": "STRING", "mode": "NULLABLE", "description": "匿名ID (例: アプリインスタンスID)"},
      {"name": "user_first_touch_timestamp", "type": "INTEGER", "mode": "NULLABLE", "description": "ユーザーが初めてアプリを開いたまたはサイトを訪問した時間 (マイクロ秒)"}
    ]
  },
  {
    "name": "privacy_info",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {"name": "ads_storage", "type": "STRING", "mode": "NULLABLE", "description": "広告ターゲティングが有効かどうか"},
      {"name": "analytics_storage", "type": "STRING", "mode": "NULLABLE", "description": "Analyticsストレージが有効かどうか"},
      {"name": "uses_transient_token", "type": "STRING", "mode": "NULLABLE", "description": "ウェブユーザーがAnalyticsストレージを拒否し、開発者が一時トークンに基づいてCookieなしで測定を有効にしているかどうか"}
    ]
  },
  {
    "name": "user_properties",
    "type": "RECORD",
    "mode": "REPEATED",
    "description": "設定されたユーザープロパティ",
    "fields": [
      {"name": "key", "type": "STRING", "mode": "NULLABLE", "description": "ユーザープロパティ名"},
      {"name": "value", "type": "RECORD", "mode": "NULLABLE", "fields": [
        {"name": "string_value", "type": "STRING", "mode": "NULLABLE"},
        {"name": "int_value", "type": "INTEGER", "mode": "NULLABLE"},
        {"name": "double_value", "type": "FLOAT", "mode": "NULLABLE"},
        {"name": "float_value", "type": "FLOAT", "mode": "NULLABLE"},
        {"name": "set_timestamp_micros", "type": "INTEGER", "mode": "NULLABLE", "description": "ユーザープロパティが最後に設定された時間 (マイクロ秒)"}
      ]}
    ]
  },
  {
    "name": "user_ltv",
    "type": "RECORD",
    "mode": "NULLABLE",
    "description": "ユーザーのライフタイムバリュー情報 (日次テーブル以外)",
    "fields": [
      {"name": "revenue", "type": "FLOAT", "mode": "NULLABLE", "description": "ユーザーのライフタイムバリュー (収益、日次テーブル以外)"},
      {"name": "currency", "type": "STRING", "mode": "NULLABLE", "description": "ユーザーのライフタイムバリュー (通貨、日次テーブル以外)"}
    ]
  },
  {
    "name": "device",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {"name": "category", "type": "STRING", "mode": "NULLABLE", "description": "デバイスカテゴリ (mobile, tablet, desktop)"},
      {"name": "mobile_brand_name", "type": "STRING", "mode": "NULLABLE", "description": "デバイスブランド名"},
      {"name": "mobile_model_name", "type": "STRING", "mode": "NULLABLE", "description": "デバイスモデル名"},
      {"name": "mobile_marketing_name", "type": "STRING", "mode": "NULLABLE", "description": "デバイスのマーケティング名"},
      {"name": "mobile_os_hardware_model", "type": "STRING", "mode": "NULLABLE", "description": "OSから直接取得したデバイスモデル情報"},
      {"name": "operating_system", "type": "STRING", "mode": "NULLABLE", "description": "デバイスのOS"},
      {"name": "operating_system_version", "type": "STRING", "mode": "NULLABLE", "description": "OSバージョン"},
      {"name": "vendor_id", "type": "STRING", "mode": "NULLABLE", "description": "IDFV (IDFAが収集されない場合のみ存在)"},
      {"name": "advertising_id", "type": "STRING", "mode": "NULLABLE", "description": "広告ID/IDFA"},
      {"name": "language", "type": "STRING", "mode": "NULLABLE", "description": "OS言語"},
      {"name": "time_zone_offset_seconds", "type": "INTEGER", "mode": "NULLABLE", "description": "GMTからのオフセット (秒)"},
      {"name": "is_limited_ad_tracking", "type": "BOOLEAN", "mode": "NULLABLE", "description": "デバイスの追跡型広告制限設定"},
      {"name": "web_info", "type": "RECORD", "mode": "NULLABLE", "fields": [
        {"name": "browser", "type": "STRING", "mode": "NULLABLE", "description": "ユーザーがコンテンツを閲覧したブラウザ"},
        {"name": "browser_version", "type": "STRING", "mode": "NULLABLE", "description": "ユーザーがコンテンツを閲覧したブラウザのバージョン"},
        {"name": "hostname", "type": "STRING", "mode": "NULLABLE", "description": "ログに記録されたイベントに関連付けられたホスト名"}
      ]}
    ]
  },
  {
    "name": "geo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {"name": "continent", "type": "STRING", "mode": "NULLABLE"},
      {"name": "country", "type": "STRING", "mode": "NULLABLE"},
      {"name": "region", "type": "STRING", "mode": "NULLABLE"},
      {"name": "city", "type": "STRING", "mode": "NULLABLE"},
      {"name": "sub_continent", "type": "STRING", "mode": "NULLABLE"},
      {"name": "metro", "type": "STRING", "mode": "NULLABLE"}
    ]
  },
  {
    "name": "app_info",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {"name": "id", "type": "STRING", "mode": "NULLABLE", "description": "アプリのパッケージ名またはバンドルID"},
      {"name": "firebase_app_id", "type": "STRING", "mode": "NULLABLE", "description": "アプリに関連付けられたFirebase App ID"},
      {"name": "install_source", "type": "STRING", "mode": "NULLABLE", "description": "アプリをインストールしたストア"},
      {"name": "version", "type": "STRING", "mode": "NULLABLE", "description": "アプリのversionName (Android) または short bundle version (iOS)"}
    ]
  },
  {
    "name": "collected_traffic_source",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {"name": "manual_campaign_id", "type": "STRING", "mode": "NULLABLE", "description": "イベントとともに収集された手動キャンペーンID (utm_id)"},
      {"name": "manual_campaign_name", "type": "STRING", "mode": "NULLABLE", "description": "イベントとともに収集された手動キャンペーン名 (utm_campaign)"},
      {"name": "manual_source", "type": "STRING", "mode": "NULLABLE", "description": "イベントとともに収集された手動キャンペーンソース (utm_source)"},
      {"name": "manual_medium", "type": "STRING", "mode": "NULLABLE", "description": "イベントとともに収集された手動キャンペーンメディア (utm_medium)"},
      {"name": "manual_term", "type": "STRING", "mode": "NULLABLE", "description": "イベントとともに収集された手動キャンペーンキーワード/ターム (utm_term)"},
      {"name": "manual_content", "type": "STRING", "mode": "NULLABLE", "description": "イベントとともに収集された追加の手動キャンペーンメタデータ (utm_content)"},
      {"name": "manual_creative_format", "type": "STRING", "mode": "NULLABLE", "description": "イベントとともに収集された手動キャンペーンクリエイティブフォーマット (utm_creative_format)"},
      {"name": "manual_marketing_tactic", "type": "STRING", "mode": "NULLABLE", "description": "イベントとともに収集された手動キャンペーンマーケティング戦術 (utm_marketing_tactic)"},
      {"name": "manual_source_platform", "type": "STRING", "mode": "NULLABLE", "description": "イベントとともに収集された手動キャンペーンソースプラットフォーム (utm_source_platform)"},
      {"name": "gclid", "type": "STRING", "mode": "NULLABLE", "description": "イベントとともに収集されたGoogleクリックID"},
      {"name": "dclid", "type": "STRING", "mode": "NULLABLE", "description": "イベントとともに収集されたDoubleClickクリックID"},
      {"name": "srsltid", "type": "STRING", "mode": "NULLABLE", "description": "イベントとともに収集されたGoogle Merchant Center ID"}
    ]
  },
  {
    "name": "session_traffic_source_last_click","type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {"name": "name", "type": "STRING", "mode": "NULLABLE"},
      {"name": "medium", "type": "STRING", "mode": "NULLABLE"},
      {"name": "source", "type": "STRING", "mode": "NULLABLE"}
    ]
  },
  {
    "name": "traffic_source",
    "type": "RECORD",
    "mode": "NULLABLE",
    "description": "ユーザーを最初に獲得したトラフィックソース情報 (日次テーブル以外)",
    "fields": [
      {"name": "name", "type": "STRING", "mode": "NULLABLE", "description": "ユーザーを最初に獲得したマーケティングキャンペーン名 (日次テーブル以外)"},
      {"name": "medium", "type": "STRING", "mode": "NULLABLE", "description": "ユーザーを最初に獲得したメディア名 (例: 有料検索、自然検索、メールなど、日次テーブル以外)"},
      {"name": "source", "type": "STRING", "mode": "NULLABLE", "description": "ユーザーを最初に獲得したネットワーク名 (日次テーブル以外)"}
    ]
  },
  {
    "name": "stream_id",
    "type": "STRING",
    "mode": "NULLABLE",
    "description": "イベントが発生したデータストリームの数値ID"
  },
  {
    "name": "platform",
    "type": "STRING",
    "mode": "NULLABLE",
    "description": "イベントが発生したデータストリームプラットフォーム (Web, IOS, Android)"
  },
  {
    "name": "ecommerce",
    "type": "RECORD",
    "mode": "NULLABLE",
    "description": "ウェブサイトまたはアプリで設定されたeコマースイベントに関する情報",
    "fields": [
      {"name": "total_item_quantity", "type": "INTEGER", "mode": "NULLABLE", "description": "このイベントのアイテムの合計数 (items.quantity の合計)"},
      {"name": "purchase_revenue_in_usd", "type": "FLOAT", "mode": "NULLABLE", "description": "このイベントの購入収益 (USD、purchaseイベントのみ)"},
      {"name": "purchase_revenue", "type": "FLOAT", "mode": "NULLABLE", "description": "このイベントの購入収益 (現地通貨、purchaseイベントのみ)"},
      {"name": "refund_value_in_usd", "type": "FLOAT", "mode": "NULLABLE", "description": "このイベントの払い戻し額 (USD、refundイベントのみ)"},
      {"name": "refund_value", "type": "FLOAT", "mode": "NULLABLE", "description": "このイベントの払い戻し額 (現地通貨、refundイベントのみ)"},
      {"name": "shipping_value_in_usd", "type": "FLOAT", "mode": "NULLABLE", "description": "このイベントの配送料 (USD)"},
      {"name": "shipping_value", "type": "FLOAT", "mode": "NULLABLE", "description": "このイベントの配送料 (現地通貨)"},
      {"name": "tax_value_in_usd", "type": "FLOAT", "mode": "NULLABLE", "description": "このイベントの税額 (USD)"},
      {"name": "tax_value", "type": "FLOAT", "mode": "NULLABLE", "description": "このイベントの税額 (現地通貨)"},
      {"name": "transaction_id", "type": "STRING", "mode": "NULLABLE", "description": "eコマース取引のトランザクションID"},
      {"name": "unique_items", "type": "INTEGER", "mode": "NULLABLE", "description": "このイベントの一意のアイテム数 (item_id, item_name, item_brand に基づく)"}
    ]
  },
  {
    "name": "items",
    "type": "RECORD",
    "mode": "REPEATED",
    "description": "イベントに含まれるアイテムに関する情報 (各アイテムごとに繰り返される)",
    "fields": [
      {"name": "item_id", "type": "STRING", "mode": "NULLABLE", "description": "アイテムID"},
      {"name": "item_name", "type": "STRING", "mode": "NULLABLE", "description": "アイテム名"},
      {"name": "item_brand", "type": "STRING", "mode": "NULLABLE", "description": "アイテムブランド"},
      {"name": "item_variant", "type": "STRING", "mode": "NULLABLE", "description": "アイテムバリアント"},
      {"name": "item_category", "type": "STRING", "mode": "NULLABLE", "description": "アイテムカテゴリ"},
      {"name": "item_category2", "type": "STRING", "mode": "NULLABLE", "description": "アイテムサブカテゴリ"},
      {"name": "item_category3", "type": "STRING", "mode": "NULLABLE", "description": "アイテムサブカテゴリ"},
      {"name": "item_category4", "type": "STRING", "mode": "NULLABLE", "description": "アイテムサブカテゴリ"},
      {"name": "item_category5", "type": "STRING", "mode": "NULLABLE", "description": "アイテムサブカテゴリ"},
      {"name": "price_in_usd", "type": "FLOAT", "mode": "NULLABLE", "description": "アイテムの価格 (USD)"},
      {"name": "price", "type": "FLOAT", "mode": "NULLABLE", "description": "アイテムの価格 (現地通貨)"},
      {"name": "quantity", "type": "INTEGER", "mode": "NULLABLE", "description": "アイテムの数量 (指定がない場合は1)"},
      {"name": "item_revenue_in_usd", "type": "FLOAT", "mode": "NULLABLE", "description": "このアイテムの収益 (USD、purchaseイベントのみ)"},
      {"name": "item_revenue", "type": "FLOAT", "mode": "NULLABLE", "description": "このアイテムの収益 (現地通貨、purchaseイベントのみ)"},
      {"name": "item_refund_in_usd", "type": "FLOAT", "mode": "NULLABLE", "description": "このアイテムの払い戻し額 (USD、refundイベントのみ)"},
      {"name": "item_refund", "type": "FLOAT", "mode": "NULLABLE", "description": "このアイテムの払い戻し額 (現地通貨、refundイベントのみ)"},
      {"name": "coupon", "type": "STRING", "mode": "NULLABLE", "description": "このアイテムに適用されたクーポンコード"},
      {"name": "affiliation", "type": "STRING", "mode": "NULLABLE", "description": "製品アフィリエーション (供給会社または実店舗の場所を指定)"},
      {"name": "location_id", "type": "STRING", "mode": "NULLABLE", "description": "アイテムに関連付けられた場所ID"},
      {"name": "item_list_id", "type": "STRING", "mode": "NULLABLE", "description": "アイテムがユーザーに提示されたリストのID"},
      {"name": "item_list_name", "type": "STRING", "mode": "NULLABLE", "description": "アイテムがユーザーに提示されたリストの名前"},
      {"name": "item_list_index", "type": "STRING", "mode": "NULLABLE", "description": "リスト内のアイテムの位置"},
      {"name": "promotion_id", "type": "STRING", "mode": "NULLABLE", "description": "製品プロモーションのID"},
      {"name": "promotion_name", "type": "STRING", "mode": "NULLABLE", "description": "製品プロモーションの名前"},
      {"name": "creative_name", "type": "STRING", "mode": "NULLABLE", "description": "プロモーションスポットで使用されたクリエイティブの名前"},
      {"name": "creative_slot", "type": "STRING", "mode": "NULLABLE", "description": "クリエイティブスロットの名前"},
      {"name": "item_params", "type": "RECORD", "mode": "REPEATED", "description": "カスタムアイテムパラメータ", "fields": [
        {"name": "key", "type": "STRING", "mode": "NULLABLE"},
        {"name": "value", "type": "RECORD", "mode": "NULLABLE", "fields": [
          {"name": "string_value", "type": "STRING", "mode": "NULLABLE"},
          {"name": "int_value", "type": "INTEGER", "mode": "NULLABLE"},
          {"name": "double_value", "type": "FLOAT", "mode": "NULLABLE"},
          {"name": "float_value", "type": "FLOAT", "mode": "NULLABLE"}
        ]}
      ]}
    ]
  }
]
例えば、セッションの流入元ごとの購買ファネルを確認してみましょう。ECサイトの購買の流れは

流入→商品閲覧→カート追加→購入手続き開始→決済情報入力→購入

となります。

今回は以下の質問をしてみることにします。

セッションの流入もとごとのセッション数、商品詳細閲覧数、カート追加数、購入数を集計してください。

結果が出ました。会話だけで集計ができるのは本当にすごいですね。

集計に使用したクエリも表示してくれるみたいです。

SELECT traffic_source.source, COUNT(DISTINCT user_pseudo_id)
AS session_count, SUM(IF(event_name = 'view_item' , 1, 0))
AS view_item_count, SUM(IF(event_name = 'add_to_cart' , 1, 0))
AS add_to_cart_count, SUM(IF(event_name = 'purchase' , 1, 0))
AS purchase_count
FROM `bigquery-public-data` . `ga4_obfuscated_sample_ecommerce` . `events_20210130`
GROUP BY traffic_source.source;

惜しい!どうやらセッションの参照元ではなくユーザーの参照元を使って集計したようです。
それでもここまでの精度でクエリを作成できるのは驚きです。

また、会話の中で可視化してくれとお願いするとグラフも作ってくれるみたいです。

みんなが待ち望んでいた分析エージェントがついに出来上がった感じがしますね!

まとめ

いかがだったでしょうか?Looker Studio Proのデータエージェントを活用することで、高度なデータ分析が自然言語による簡単な会話だけで実現できる可能性を感じていただけたかと思います。専門知識がなくとも、まるでBIのエキスパートが隣にいるかのように、知りたい情報を引き出せるのは大きな魅力です。

今回の検証では、まだPre-GAという段階ながら、GA4の複雑なデータ構造を理解し、SQLクエリを生成して集計を行う能力に目を見張るものがありました。惜しい点もありましたが、そのポテンシャルは計り知れません。会話の中で可視化も試せるなど、まさに誰もが待ち望んでいた分析エージェントの登場を予感させます。

Looker Studio Proデータエージェントの利点

  • 高度な分析
  • 自然言語による分析
  • 独自のロジックを反映できる

今後の展望

BIツールとAIの統合は、今後ますます加速していくと予想されます。Gemini in Lookerの機能が進化し、より複雑な分析や、他の一般的なビジネスインテリジェンス製品とも接続できるようになることで、データ活用の未来はさらに開かれるでしょう。これからのLooker Studio Proの進化に、大いに期待したいですね。

コメント

PAGE TOP
タイトルとURLをコピーしました