Developer Changelog / Analytics API

Shop Campaigns の成果データが
ShopifyQL から取れるようになった

shop_campaign_insights スキーマが追加。広告費・売上・注文数・ROAS・AOV・平均顧客獲得コストを、既存の shopifyqlQuery フィールドと read_reports スコープのまま取得できる。新しいスコープも追加実装も不要。

このページの構成
  1. そもそも何が変わるのか(30秒で理解)
  2. 仕組み図解 : データが届くまでの流れ
  3. 取得できる指標とディメンション
  4. 今回追加されたもの / 変わらないもの
  5. 利用条件
  6. 導入手順(3ステップ)
  7. 同時に発表された 2 つの機能
  8. 技術者が押さえるべき5つのポイント
  9. 業務に活かせる3つのユースケース
  10. 提案で使える1行サマリ

1そもそも何が変わるのか

ShopifyQL に shop_campaign_insights スキーマが追加された。
アナリティクス/レポーティングアプリは、許諾済みマーチャントの Shop Campaigns(ショップキャンペーン)の成果データを、 既存の shopifyqlQuery フィールド + read_reports スコープでそのまま照会できる。

これまで

ShopifyQL では他のスキーマは照会できたが、Shop Campaigns の成果データを引く shop_campaign_insights は用意されていなかった。

これから

同じ shopifyqlQuery にスキーマ名を書くだけ。すでに ShopifyQL を叩いているアプリなら、新しいスコープも連携実装も不要と明記されている。

2仕組み図解 : データが届くまでの流れ

アナリティクス/ レポーティングアプリ マーチャントの許諾済み query shopifyqlQuery (既存フィールド) read_reports 新スコープ不要 shop_campaign_insights キャンペーン単位 セグメント単位 時間軸:時 〜 年 ShopifyQL スキーマ 返ってくる指標 ad spend(広告費) sales / orders ROAS 平均注文額(AOV) 平均顧客獲得コスト ショップのタイムゾーン基準
ポイントは 入口が増えていないこと。呼び出し口は今まで通り shopifyqlQuery、権限も今まで通り read_reports。 増えたのは「照会先スキーマ名」の選択肢だけ、という設計になっている。

3取得できる指標とディメンション

指標(メトリクス)

広告費(ad spend)
キャンペーンに投下した費用
売上(sales)
キャンペーン経由の売上
注文数(orders)
発生した注文の件数
ROAS
ROAS
広告費用対効果
AOV
平均注文額
average order value
¥
平均顧客獲得コスト
average customer acquisition cost

ディメンション(切り口)

切り口内容
キャンペーン名 キャンペーン単位(campaign-level)で指標を分解できる
カスタマーセグメント セグメント単位(segment-level)で指標を分解できる
時間 時間単位 〜 年単位 hourly / …/ yearly まで。マーチャントのショップのタイムゾーンで返る
データの保持期間・遅延(データが揃うまでのラグ)・レート制限・対応プラン・提供地域については、この記事には記載なし。詳細はスキーマリファレンス側を確認すること。

4今回追加されたもの / 変わらないもの

項目今回の変更
スキーマ 追加 shop_campaign_insights が ShopifyQL で利用可能に
呼び出しフィールド 変更なし 既存の shopifyqlQuery をそのまま使う
必要スコープ 変更なし read_reports新しいスコープは不要
連携実装 すでに ShopifyQL を照会しているなら追加の連携作業は不要と明記
実行主体 アナリティクス/レポーティングアプリが許諾済みマーチャントの代理として照会
タイムゾーン マーチャントのショップのタイムゾーン基準で返る

5利用条件

read_reports スコープ

既存の ShopifyQL 照会と同じスコープ。これ以上のスコープ追加は不要。

マーチャントの許諾

「authorized merchants」の代理としての照会。許諾されたストアのデータのみが対象。

ShopifyQL を叩ける実装

すでに shopifyqlQuery を使っていれば、そのコードパスを流用できる。

アプリ以外(管理画面のレポート画面や、公開ストアフロントからの直接利用)で使えるかどうかは記載なし。記事はアナリティクス/レポーティングアプリからの照会について述べている。

6導入手順(3ステップ)

1

スコープを確認

read_reports があるか確認。既に ShopifyQL を叩いているなら通常そのまま。

2
QUERY

スキーマ名を差し替える

同じ shopifyqlQueryshop_campaign_insights を照会する。

3

指標と粒度を選ぶ

キャンペーン名/セグメント/時間粒度(時〜年)を指定してレポート化する。

記事の表現では 「No new scopes or integration work required if you already query ShopifyQL.」 = 既存 ShopifyQL 利用アプリにとっては、実質「クエリを1本足すだけ」の変更。

7同時に発表された 2 つの機能

Analytics Web Components

Shop Campaigns の指標を自アプリの UI に直接埋め込めるウェブコンポーネント。データの保存が不要(no data storage required)と明記されている。自前でメトリクスを取得・保管・描画する実装を持たずに、画面に出せるルート。

Analytics Annotations API

マーチャントのアナリティクスのチャート上に注釈(アノテーション)を作成できる API。記事の例は「campaign started(キャンペーン開始)」「budget changed(予算変更)」。数値の変化点に「なぜ動いたか」を貼れる。

この 2 つは 「Also new」として並記されているもの。それぞれの利用条件・スコープ・提供状況の詳細は本記事には記載なし

8技術者が押さえるべき5つのポイント

SCHEMA

1. 増えたのはスキーマだけ、口は同じ

エンドポイントも認可も既存のまま。shopifyqlQuery のラッパーを持っているアプリなら、スキーマ名を通す引数を足す程度で届く。差分レビューが小さく済む種類の変更。

2. read_reports のまま = 再認可フロー不要

スコープ追加は既存インストール全体への再同意を意味するのが普通。今回はそれが要らないと明記されているため、マーチャントへの再承認依頼なしで配れるのが実務上いちばん大きい。

3. 粒度は「時間単位」まである

hourly 〜 yearly。時間帯別の投下効率まで見られる一方、細かい粒度でレンジを広く取ればレスポンスは重くなる。粒度とレンジの上限はアプリ側で設計しておくのが安全。

4. タイムゾーンはショップ基準

返る時間軸は マーチャントのショップのタイムゾーン。自社ダッシュボードを UTC や JST 固定で組んでいると、他データソースと日付境界がズレる。突合するなら変換方針を先に決める。

5. 「自前で引く」と「埋め込む」の二択がある

同じ指標を出すのに、ShopifyQL で取得して自前で描画するルートと、Analytics Web Components で埋め込む(データ保存不要)ルートの 2 つが同時に提供された。加工・突合・エクスポートが要るなら ShopifyQL、単に画面に出したいだけならコンポーネントの方が実装量は小さい。両方を作り込む前に、どちらで足りるかを決めておく。

9業務に活かせる3つのユースケース

campaign × ROAS
USE CASE 1

既存のレポーティングアプリに「Shop Campaigns タブ」を足す

課題
自社/クライアント向けのアナリティクスアプリで売上や注文は出せているが、Shop Campaigns の広告費・ROAS だけが取れず、レポートが片肺だった。
打ち手
既存の shopifyqlQuery 呼び出しに shop_campaign_insights のクエリを追加し、キャンペーン名 × 期間で広告費/売上/注文数/ROAS を表に出す。
効果
「売った結果」だけでなく「いくら払って売れたか」まで 1 画面で見せられる。レポート納品物の説得力が上がる。
技術メモ
新スコープ不要のため、既存インストール済みマーチャントへの再認可を挟まずリリースできる。日付軸はショップタイムゾーン基準である点に注意。
CAC
USE CASE 2

カスタマーセグメント別の「獲得コストの妥当性」レビュー

課題
キャンペーン全体の数字しか見えず、どのセグメントで獲得コストが割に合っていないのかを議論できない。
打ち手
セグメント単位で 平均顧客獲得コスト平均注文額ROAS を並べ、AOV に対して獲得コストが重いセグメントを洗い出す。
効果
「どのセグメントに寄せるか」を、感覚ではなく同一ソースの数値で提案できる。月次レビューの定型アジェンダにできる。
技術メモ
セグメント × 時間の 2 軸で切ると行数が増えるため、まず月次で当たりを付けてから細かい粒度に降りる設計が現実的。
budget changed
USE CASE 3

「グラフが動いた理由」をアノテーションで残す運用

課題
数字の跳ね/落ちを後から見返しても、キャンペーン開始や予算変更のせいなのかが分からず、毎回 Slack や議事録を掘り返している。
打ち手
Analytics Annotations API で、キャンペーン開始時・予算変更時にアナリティクスのチャート上へ注釈を自動作成する(記事の例がそのまま「campaign started」「budget changed」)。
効果
マーチャント自身がチャートを見た瞬間に因果を理解できる。振り返り会の準備工数が減る。
技術メモ
本記事にはこの API の詳細仕様の記載なし。実装前に API リファレンス側で作成単位・権限・冪等性(同じイベントの二重注釈防止)を確認すること。

10提案で使える1行サマリ

「Shop Campaigns の広告費・売上・注文数・ROAS・AOV・顧客獲得コストが、ShopifyQL の shop_campaign_insights スキーマで引けるようになった。
既存の shopifyqlQueryread_reports のまま、新スコープも追加連携もなしで、レポートにキャンペーン成果を足せる。
画面に出すだけなら Analytics Web Components、変化点の説明を残すなら Annotations API という選択肢も同時に来ている。」