Connecting Shopify to Power BI for Advanced Analytics

Complete guide to integrating Shopify with Power BI — data connectors, DAX measures, revenue dashboards, inventory analytics, and customer cohort analysis.

E
ECOSIRE Research and Development Team
|2026年3月19日7 分で読める1.4k 語数|

Data Analytics & BIシリーズの一部

完全ガイドを読む

高度な分析のために Shopify を Power BI に接続する

Shopify の組み込み分析は、販売傾向、トラフィック ソース、トップ製品、コンバージョン率などの基本をカバーします。しかし、店舗が拡大するにつれて、疑問はさらに複雑になります。TikTok を通じて獲得した顧客の 12 か月間の LTV は、Google に対してどれくらいでしょうか?返品率が最も高い製品カテゴリーはどれですか?在庫回転率はプロモーションのタイミングとどのように相関しますか?サブスクリプション購入者と 1 回限りの購入者のコホート維持曲線はどのようなものですか?

これらの質問には、Shopify の生データを実用的なインテリジェンスに変換するツールである Power BI が必要です。このガイドでは、データ接続アーキテクチャ、e コマースの主要な DAX 対策、運用上の意思決定のためのダッシュボードの設計、Shopify のネイティブ レポートでは提供できない高度な分析パターンなど、完全な統合について説明します。

重要なポイント

  • Shopify の公式 Power BI コネクタ (Shopify の API またはサードパーティ コネクタ経由) は、リアルタイムではなく、スケジュールされた間隔でデータを更新します
  • 最も完全な Shopify データ エクスポート パスは次のとおりです: Shopify API → Azure Data Factory またはカスタム ETL → Azure SQL Database → Power BI
  • Shopify の GraphQL Bulk Operations API は、大規模な履歴データのエクスポートに最も効率的な方法です
  • DAX は Power BI 対策のクエリ言語です — 主要な e コマース対策 (LTV、CAC、チャーン、AOV) には慎重な DAX 設計が必要です
  • スター スキーマ データ モデル (ファクト テーブル + ディメンション テーブル) は Power BI e コマース分析の正しい構造です
  • Power BI での顧客コホート分析には、日付テーブル、コホート割り当て列、および相対日付メジャーが必要です
  • Power BI の増分更新により、履歴データセット全体を再処理せずに毎日のデータ更新が可能になります
  • Shopify と広告プラットフォーム (Meta、Google) を組み合わせたマルチソース ダッシュボードにより、真のアトリビューション分析が可能になります

Power BI 用の Shopify データ アーキテクチャ

Power BI に接続する前に、Shopify が保持するデータとそれを大規模に抽出する方法を理解してください。

Shopify の主要なデータ オブジェクト:

オブジェクト興味のある分野ボリューム
注文id、created_at、financial_status、fulfillment_status、total_price、subtotal_price、total_discounts、customer_id、source_name、tagsほとんどの店舗で年間 1 ~ 100,000
注文品目order_id、product_id、variant_id、数量、価格、total_discount、sku注文数が 2 ~ 5 倍
製品ID、タイトル、製品タイプ、ベンダー、作成場所、公開場所、タグ100 ~ 100,000 SKU
バリエーション製品 ID、SKU、価格、価格比較、在庫数量製品と同じ × バリエーション
お客様ID、電子メール、created_at、orders_count、total_spent、タグ、accepts_marketing累計顧客ベース
払い戻しorder_id、created_at、total_refunded、再入荷注文数の 3 ~ 20%
在庫レベル在庫品目 ID、場所 ID、利用可能プル時のスナップショット
トラフィックソースGoogle Analytics / GA4 (Shopify Admin API には含まれていません)GA4 データエクスポート経由

データ抽出の Shopify API レート制限:

REST API: 1 秒あたり 2 リクエスト (バケット 40)。 50,000 以上の注文の履歴データのエクスポートの場合、これには数時間かかり、夜間の更新には現実的ではありません。

一括操作を備えた GraphQL API: データセット全体を非同期的に処理し、JSONL ファイルを返します。すべての履歴データのプルに推奨されます。

データ抽出アーキテクチャのオプション:

オプション 1: Power BI の直接 Shopify コネクタ (最も単純)

Power BI の [データの取得] > [オンライン サービス] > [Shopify] または、Coupler.io や Windsor.ai などのサードパーティ コネクタ経由で利用できます。

長所: 迅速なセットアップ (1 ~ 2 時間)、コードは不要 短所: 履歴データの深さの制限、テーブル結合の制限、更新の遅さ、カスタム変換なし

オプション 2: サードパーティ データ パイプライン経由の ETL (収益が 100 万ドル以上の店舗に推奨)

Fivetran、Stitch、Airbyte、または Windsor.ai は、スケジュールに従って Shopify データをデータ ウェアハウス (BigQuery、Snowflake、Azure SQL) に抽出します。 Power BI はウェアハウスに接続します。

長所: 完全な履歴データ、高速なクエリ、マルチソース結合 (Shopify + 広告 + レビュー)、カスタム変換 短所: 追加コスト (ETL サービスの場合は月額 99 ~ 500 ドル以上)、セットアップ時間 (1 ~ 2 週間)

オプション 3: Azure Data Factory を使用したカスタム ETL (最大限の制御)

Shopify の GraphQL Bulk Operations API を使用してカスタム抽出を構築し、Azure Data Factory でデータを変換し、Azure SQL Database に読み込み、DirectQuery またはインポートを介して Power BI に接続します。

長所: 完全な制御、最大限のデータ完全性、大規模なクエリごとのコストの最小化 短所: エンジニアリング時間 (4 ~ 8 週間)、継続的なメンテナンス


Shopify E コマース用の Power BI データ モデル

適切に構造化されたデータ モデルは、パフォーマンスの高い Power BI 実装の基盤です。 e コマースの場合は、スター スキーマを使用します。

Shopify のスター スキーマ:

Fact Tables (transactional data):
├── FactOrders          (one row per order)
├── FactOrderLineItems  (one row per line item)
├── FactRefunds         (one row per refund)
└── FactInventorySnapshots (periodic snapshots)

Dimension Tables (descriptive data):
├── DimDate             (calendar table — essential)
├── DimCustomers        (one row per customer)
├── DimProducts         (one row per product template)
├── DimVariants         (one row per variant)
├── DimLocations        (one row per Shopify location)
└── DimChannels         (traffic sources / acquisition channels)

FactOrders テーブル スキーマ:

CREATE TABLE FactOrders (
    order_id BIGINT PRIMARY KEY,
    created_date_key INT,              -- FK to DimDate
    customer_id BIGINT,               -- FK to DimCustomers
    financial_status VARCHAR(20),
    fulfillment_status VARCHAR(20),
    gross_revenue DECIMAL(10,2),
    discounts DECIMAL(10,2),
    shipping DECIMAL(10,2),
    taxes DECIMAL(10,2),
    net_revenue DECIMAL(10,2),
    order_number VARCHAR(20),
    channel_source VARCHAR(50),
    customer_cohort_month VARCHAR(7),  -- Derived: YYYY-MM of first order
    is_first_order BIT,
    order_sequence INT,                -- 1 = first order, 2 = second, etc.
    tags VARCHAR(500)
);

DimDate テーブル (カレンダー ディメンション — タイム インテリジェンスには必須):

-- Generate dates from 2020-01-01 to 2030-12-31
CREATE TABLE DimDate (
    date_key INT PRIMARY KEY,          -- YYYYMMDD
    full_date DATE,
    year INT,
    quarter INT,
    month INT,
    month_name VARCHAR(12),
    week INT,
    day_of_week INT,
    day_name VARCHAR(12),
    is_weekend BIT,
    is_holiday BIT,
    fiscal_year INT,
    fiscal_quarter INT,
    fiscal_month INT
);

e コマース分析のための主要な DAX 対策

DAX (Data Analysis Expressions) は、Power BI の数式言語です。これらの測定は、Shopify 分析実装の中核を形成します。

収益対策:

-- Total Gross Revenue
Gross Revenue = SUM(FactOrders[gross_revenue])

-- Total Net Revenue (after discounts)
Net Revenue = SUM(FactOrders[net_revenue])

-- Total Discount Amount
Total Discounts = SUM(FactOrders[discounts])

-- Discount Rate
Discount Rate = DIVIDE([Total Discounts], [Gross Revenue])

-- Average Order Value
AOV = DIVIDE([Net Revenue], [Total Orders])

-- Revenue Growth (Year-over-Year)
Revenue YoY Growth =
VAR CurrentRevenue = [Net Revenue]
VAR PriorYearRevenue = CALCULATE([Net Revenue], SAMEPERIODLASTYEAR(DimDate[full_date]))
RETURN DIVIDE(CurrentRevenue - PriorYearRevenue, PriorYearRevenue)

顧客指標:

-- Total Unique Customers (in selected period)
Total Customers = DISTINCTCOUNT(FactOrders[customer_id])

-- New Customers (first-time buyers)
New Customers = CALCULATE(
    DISTINCTCOUNT(FactOrders[customer_id]),
    FactOrders[is_first_order] = 1
)

-- Returning Customers
Returning Customers = [Total Customers] - [New Customers]

-- Repeat Customer Rate
Repeat Customer Rate = DIVIDE([Returning Customers], [Total Customers])

-- Average Customer Lifetime Value (LTV)
Customer LTV =
AVERAGEX(
    VALUES(DimCustomers[customer_id]),
    CALCULATE(SUM(FactOrders[net_revenue]))
)

-- Purchase Frequency (orders per customer per year)
Purchase Frequency =
DIVIDE(
    [Total Orders],
    [Total Customers]
)

コホート維持分析:

-- Cohort Month (month of customer's first purchase)
-- This is a calculated column in FactOrders, set during ETL

-- Cohort Retention Rate at Month N
Cohort Retention Month 1 =
VAR CohortMonth = SELECTEDVALUE(FactOrders[customer_cohort_month])
VAR CohortCustomers =
    CALCULATE(
        DISTINCTCOUNT(FactOrders[customer_id]),
        FactOrders[customer_cohort_month] = CohortMonth,
        FactOrders[is_first_order] = 1
    )
VAR Month1Returners =
    CALCULATE(
        DISTINCTCOUNT(FactOrders[customer_id]),
        FactOrders[customer_cohort_month] = CohortMonth,
        FactOrders[order_sequence] >= 2,
        -- Orders within 30-60 days of first order
        DATESINPERIOD(
            DimDate[full_date],
            DATE(LEFT(CohortMonth,4), RIGHT(CohortMonth,2), 1),
            2, MONTH
        )
    )
RETURN DIVIDE(Month1Returners, CohortCustomers)

在庫対策:

-- Current Total Inventory Value
Inventory Value =
SUMX(
    DimVariants,
    DimVariants[available_quantity] * DimVariants[cost]
)

-- Inventory Turnover Rate (annual)
Inventory Turnover =
DIVIDE(
    [Gross Revenue], -- Or COGS if available
    [Inventory Value]
)

-- Days of Inventory Remaining (at current sales velocity)
Days of Inventory =
VAR DailySalesRate = DIVIDE([Net Revenue], 365)
VAR CurrentInventoryValue = [Inventory Value]
RETURN DIVIDE(CurrentInventoryValue, DailySalesRate)

ダッシュボードのデザイン: 収益の概要

収益概要ダッシュボードのレイアウト:

行 1 — KPI カード:

  • 総収益(当期)
  • 純収益(当期)
  • 総注文数 -AOV
  • 新規顧客
  • リピート率

行 2 — 時系列:

  • 経時的な収益 (日次/週次/月次の切り替え)
  • 時間の経過に伴う注文
  • AOV トレンド

行 3 — 内訳:

  • 製品タイプ別の収益(横棒グラフ)
  • チャネルソース別の収益(パイまたはドーナツ)
  • 場所別の収益 (複数の場所がある場合)

行 4 — 比較:

  • 前月比パフォーマンス表
  • 前年同期比(当期と前年同期)

スライサー構成:

  • 日付範囲スライサー (事前に設定された期間: 今月、先月、今四半期、今年、カスタム)
  • 製品タイプフィルター
  • チャンネルソースフィルター
  • 顧客セグメント フィルター (新規 vs リピート)

顧客コホート ダッシュボード

コホート維持ダッシュボードは、e コマースの意思決定にとって最も分析的に価値のあるレポートです。これは、獲得月ごとに、その後の月に購入に戻った顧客の割合を示します。

Power BI でのコホート テーブルの設計:

マトリックスの視覚化を作成します。

  • 行: コホート月 (最初の購入月)
  • 列: 0 か月目、1 か月目、2 か月目、... 12 か月目 (最初の購入との比較)
  • 値: 維持率 (その月に購入した元のコホートの割合)

カラースケール:赤(保持力が低い)→黄→緑(保持力が高い)

この視覚化により、次のことが即座に明らかになります。

  • どの獲得月が長期維持率に最も優れているか (どのキャンペーンが最も優れた顧客を獲得したか)
  • 前月比でリテンション率が最も急激に低下したのはどれですか (獲得キャンペーンの最適なタイミング)
  • 時間の経過とともに定着率が向上しているか低下しているか (製品の品質、顧客サービスのシグナル)

コホート データ モデルの構築:

コホート分析には、FactOrders の次のフィールドが必要です。

  1. customer_cohort_month: 顧客の最初の注文の YYYY-MM (現在の注文がいつ行われたかに関係なく、顧客ごとに一定)
  2. order_sequence: この顧客の連続した注文番号 (1 = 最初の注文、2 = 2 番目など)
  3. months_since_first_order: 最初の注文日から今回の注文日までの月数

これらのフィールドは、パフォーマンス上の理由から、ETL 中に (Power BI の外部で) 計算されるのが最適です。


マルチソース分析: Shopify + 広告データ

e コマースにおける Power BI の最も強力な使い方は、Shopify データと広告プラットフォーム データを組み合わせて、真のチャネル ROI を測定することです。

統合するデータソース:

出典データ統合方法
ショッピファイ注文、顧客、製品ネイティブコネクタまたはETL
Google 広告支出、クリック、インプレッション、コンバージョンGoogle 広告コネクタ
メタ広告支出、リーチ、コンバージョン、ROASFacebook 広告コネクタ
TikTok広告支出、閲覧数、クリック数カスタム API または Funnel.io
Google アナリティクス 4セッション、トラフィック、イベントGA4 BigQuery エクスポート
クラヴィヨ電子メール指標、収益帰属クラビヨ → ファイブトラン

マーケティング効率ダッシュボード:

メトリック計算
チャンネルCACチャネル広告支出 / チャネルからの新規顧客
チャンネルROASチャンネル収益 / チャンネル広告支出
チャネル LTV/CAC 比率チャネル / チャネル CAC からの 12 か月の LTV
ブレンドCACマーケティング支出の合計 / 新規顧客の合計
回収期間チャネル CAC / 顧客あたりの月間純収益

広告支出を Shopify の注文データに接続するには、UTM パラメーターのマッチングが必要です。GA4 セッション データは、広告のクリックを Shopify の注文に橋渡しします。


スケジュールされた更新と運用環境のデプロイメント

Shopify の Power BI サービス構成:

  1. Power BI Desktop ファイルを Power BI サービス (app.powerbi.com) に発行します。
  2. データ ソースがオンプレミスの場合はデータ ゲートウェイを構成します (通常、クラウド Shopify → クラウド SQL には必要ありません)。
  3. データ更新のスケジュール設定: ほとんどの Shopify 分析ダッシュボードは夜間更新 (トラフィックが最も少ない時間帯の午前 4 時 (UTC)) で適切に機能します。
  4. 大規模なテーブル (注文) の増分更新を構成します。更新ごとに過去 30 日間のみを処理し、2 年間の履歴データを保持します。
  5. 更新失敗の電子メール通知を設定する

増分更新構成:

-- Power Query: Define RangeStart and RangeEnd parameters
-- Set type: Date/Time, required

-- Filter table during import using these parameters:
#"Filtered Rows" = Table.SelectRows(
    Source,
    each [created_at] >= RangeStart and [created_at] < RangeEnd
)

Power BI サービスで、以下を構成します。

  • 過去: 2 年間の行を保存 (履歴保持)
  • 過去 30 日間の行を更新 (増分ウィンドウ)

つまり、各更新では過去 30 日間の Shopify データのみがクエリされ、データセット全体を更新する場合と比較して API 呼び出しと更新時間が大幅に短縮されます。


よくある質問

Shopify データを Power BI に取り込むための最適なコネクタは何ですか?

収益が 100 万ドル未満、または注文数が 10,000 件未満のストアの場合:Coupler.io、Windsor.ai、または Microsoft AppSource のネイティブ Shopify Power BI コネクタが適切に機能し、最小限のセットアップが必要です。データの完全性と更新の信頼性が重要な大規模ストアの場合: Fivetran または Stitch は、Power BI がウェアハウスに接続されているデータ ウェアハウスへの堅牢な ETL パイプラインを提供します。ウェアハウス アプローチではコストがかかります (月額 200 ~ 1,000 ドル以上) が、データ品質が大幅に向上し、クエリが高速になり、Shopify データを他のビジネス データ ソースと結合する機能が提供されます。

Power BI は Shopify データをリアルタイムで表示できますか?

標準のインポート モードでは使用できません。 Power BI インポート モードでは、スケジュールに従って更新されるデータのスナップショットが読み込まれます (Power BI Pro では 1 日あたり最大 8 回、Premium では 48 回)。ほぼリアルタイムの Shopify データの場合は、リアルタイムで Shopify Webhook イベントを受信するデータベースに接続された Power BI DirectQuery モードを使用します。これにはより多くのインフラストラクチャが必要ですが、注文後数分以内にデータを表示するダッシュボードが可能になります。ほとんどの e コマースの決定 (1 時間未満のデータの鮮度を必要としない) では、毎日の更新で十分です。

Power BI で Shopify の収益を特定の広告キャンペーンに帰属させるにはどうすればよいですか?

アトリビューションには、広告プラットフォーム データ (Google 広告、メタ広告 - キャンペーンごとの支出)、GA4 セッション データ (キャンペーン UTM パラメーターを含むセッション → コンバージョン)、Shopify 注文データ (顧客タグまたは注文属性に UTM パラメーターを含む注文) の 3 つのデータ ソースを接続する必要があります。注文 UTM パラメータ (Shopify の landing_site フィールド経由で取得) を使用して、注文をキャンペーンに関連付けます。これを広告費用データと結合して、キャンペーン レベルの CAC と ROAS を計算します。完全なアトリビューションには、UTM トラッキングがコンバージョンの 60 ~ 80% をキャプチャし、残りは直接またはクロスデバイスであることを受け入れる必要があります。

e コマース分析に最も役立つ DAX 関数はどれですか?

e コマースにとって最も価値のある DAX 関数: CALCULATE (任意のメジャーにフィルターを適用)、FILTER (フィルターされたコンテキストを作成)、SUMX / AVERAGEX (行レベルの計算でテーブルを反復処理)、DATESINPERIOD / DATEADD / SAMEPERIODLASTYEAR (タイム インテリジェンス)、DIVIDE (ゼロの分母を処理する安全な除算)、RANKX (製品/顧客/チャネルのランク付け)、DISTINCTCOUNT (一意の顧客/製品を数える)、および RELATED (関連するディメンション テーブルの列にアクセスする)。これら 10 の機能をマスターすれば、e コマース分析要件の 80% がカバーされます。

Power BI で Shopify の複数の通貨を処理するにはどうすればよいですか?

複数通貨の Shopify ストアには課題があります。注文は取引通貨で記録されますが、レポートには単一の基本通貨が必要です。 ETL 中に、(1) Shopify の presentment_moneyshop_money フィールド (Shopify は注文時の為替レートで既に変換されています)、または (2) 日次レートの通貨為替レート表を使用して、各注文の日付のレートを適用して、すべての注文金額を基本通貨に変換します。手動による為替レートの複雑さを回避するには、Power BI のレポート数値として Shopify の shop_money フィールド (ストアの基本通貨での金額を表します) を使用します。


次のステップ

Shopify を Power BI に接続して高度な分析を行うには、データ エンジニアリングの専門知識、DAX の流暢さ、データ ダンプではなく実用的な洞察を提供するダッシュボードの設計スキルが必要です。

ECOSIRE の Power BI サービス および Shopify サービス には、Shopify データ統合アーキテクチャ、e コマース分析用の Power BI ダッシュボード開発、コホート分析の実装、マルチソース マーケティング アトリビューション、および継続的な分析サポートが含まれます。

Shopify 分析コンサルティングをスケジュール して、Shopify ストア用の Power BI 分析スタックの構築について話し合います。

E

執筆者

ECOSIRE Research and Development Team

ECOSIREでエンタープライズグレードのデジタル製品を開発。Odoo統合、eコマース自動化、AI搭載ビジネスソリューションに関するインサイトを共有しています。

WhatsAppでチャット