アトリビューションモデル
Zenovay の各訪問者は 2 つのアトリビューションスナップショットを持ちます:First-Touch チャネル(どのようにあなたを最初に見つけたか)と Last-Touch チャネル(コンバージョンしたセッション、または最新のセッションのチャネル)。両方とも独立して保存され、First-Touch は最初の観測時に固定され、上書きされません。
なぜ 2 つのスナップショットなのか
マーケティングのアトリビューションは クレジット の問題です。訪問者が最初に Google オーガニック検索で来訪し、3 週間後に LinkedIn の有料広告で戻り、ダイレクトでコンバージョンした場合:
- Last-Touch は direct にクレジットを与えます。(マーケティングを過小評価)
- First-Touch は organic search にクレジットを与えます。(SEO を過大評価)
- Linear / Position-Based / Time-Decay モデルは訪問者のジャーニー上のすべてのチャネルにクレジットを分配します — Revenue タブで選択可能(下記参照)。
Zenovay はシンプルに開始:First-Touch と Last-Touch の両方を保存し、ダッシュボードで切り替え可能。
First-Touch が捕捉する内容
訪問者の最初の観測時に、Zenovay はこれらの列を埋めます:
| 列 | 意味 |
|---|---|
first_touch_channel | チャネル — organic、direct、referral、social、email、paid、ai |
first_touch_utm_source | UTM ソース(存在時) |
first_touch_utm_medium | UTM メディアム |
first_touch_utm_campaign | UTM キャンペーン |
first_touch_utm_content | UTM コンテンツ |
first_touch_utm_term | UTM タームt |
first_touch_referrer | リファラ URL |
first_touch_landing_page | 最初に着地した URL |
first_touch_at | 最初の観測のタイムスタンプ |
これらは後続のセッションで決して上書きされません。プレフィックスのない列(channel、utm_*、referrer、landing_page)は各セッションで更新され、Last-Touch を表します。
2026-04-30 以前に観測された訪問者の First-Touch 値は NULL です。履歴は遡及的には埋められていません。
チャネルの分類
チャネルは次の優先順位で分類されます:
- クリック ID(
gclid、fbclid、ttclid、msclkid)— 常に paid。 utm_medium—cpc/ppc/paid/display/banner/cpm→ paid;email→ email;social→ social;referral/affiliate→ referral;organic→ organic。utm_source— キュレートされたリストと照合。- リファラのホスト名 — 検索エンジン → organic;ソーシャルプラットフォーム → social;ウェブメールクライアント → email;その他 → referral。
- アプリ内ブラウザ検出(Discord、Facebook、Instagram など)— social。
- リファラなし + UTM なし → direct。
Zenovay の AI ヒューリスティックでボットとフラグされた訪問者は、UTM に関係なくチャネルが ai になります。
E メールトラフィック — 空リファラ修正
E メール内のリンクは通常 Referer ヘッダ を持ちません。UTM がない場合、このトラフィックは以前 direct に誤分類されていました。
Zenovay は 2 通りでこれをキャッチします:
utm_medium=email→ リファラに関わらずチャネルは email。- リファラなし +
utm_sourceが既知の ESP に一致(Mailchimp、Klaviyo、HubSpot、ActiveCampaign、Brevo、ConvertKit、MailerLite、Beehiiv、Customer.io、GetResponse、Omnisend、Substack、Drip、Intercom、Postscript、Attentive、Iterable、Braze、Resend、Loops、Marketo、Pardot など)→ チャネルは email。
完全な ESP リストは api-zenovay/src/constants/domains.ts(EMAIL_UTM_SOURCES)にあります。E メールキャンペーンを正しく分類するには:
<!-- すべての E メールリンクの推奨 UTM 規約 -->
<a href="https://your-site.com/?utm_source=mailchimp&utm_medium=email&utm_campaign=launch">
続きを読む
</a>
utm_medium=email または認識される utm_source のいずれか一つで十分です — 両方は不要。
ダッシュボードでアトリビューションを読む
Sources タブと訪問者詳細パネルから、UI 上で First-Touch / Last-Touch を直接切り替えられます — 比較のためにデータベースを叩く必要はもうありません。
Sources タブ
アナリティクスダッシュボードの Sources カードには、ヘッダーに First touch | Last touch トグルがあります。選択は URL(?attribution=first または ?attribution=last)に保存されるため、リロードや戻る/進むナビゲーションでも維持されます。デフォルトは Last-Touch(従来動作)。
カードには 4 つのトップレベルビューがあります:
| タブ | デフォルトのアトリビューション | 表示内容 |
|---|---|---|
| Channel | トグル連動 | 訪問者を 9 バケットに分割:Direct, Organic Search, Organic Social, Referral, Paid Search, Paid Social, Email, Affiliate, Display |
| Referrer | トグル連動 | favicon 付きの上位リファラドメイン;アプリ内ブラウザ(ChatGPT、Snapchat など)は utm_source フォールバックで分類 |
| UTMs | トグル連動 | 5 サブタブ:Source, Medium, Campaign, Content, Term。(none) バケットはその次元を持たない訪問者をカウント |
| Keyword | 常に Last-Touch | Google Search Console 連携から取得;First-Touch トグルは適用されない |
トグルを First touch に切り替えると、Channel / Referrer / UTM の各ビューがその訪問者の 最初に観測された 値に切り替わります。インポート済みアナリティクス(Plausible CSV インポート)は Last-Touch のみ — モデルの整合性を保つため、First-Touch ビューではそれらの行はスキップされます。
公開ダッシュボードは常に Last-Touch アトリビューションを表示します。V1 ではトグルはオーナーのみ;シェアごとのサーバー側デフォルトはフォローアップで対応します。
訪問者詳細カード
訪問者プロフィールをクリックすると、サイドバーに Attribution パネルが表示されます:左に First-Touch(channel + utm_source + ランディングページ + 初回観測日)、右に Last-Touch(channel + utm_source + referrer + ランディングページ)。FND-B 以前に観測された訪問者(履歴の約 2%)にはダッシュの羅列を見せないよう、パネルは自動的に非表示になります。
Revenue タブ
Revenue タブの Attribution カードには 5 つのモデルセレクタがあります — Last-Touch(デフォルト)、First-Touch、Linear、Position-Based、Time-Decay。選択は URL(?model=)に保存されるため、リロードや戻る/進むナビゲーションでも選んだモデルが維持されます。デフォルトは Last-Touch です。
5 つのアトリビューションモデル
各モデルは「このコンバージョンのクレジットをどのチャネルに与えるか」という問いに異なる方法で答えます:
| モデル | クレジットの与え方 | 適した用途 |
|---|---|---|
| Last-Touch | コンバージョン直前の最後のチャネルに 100% | 何が成約を生むかを知りたい |
| First-Touch | 訪問者を最初に連れてきたチャネルに 100% | 何が発見を促すかを知りたい |
| Linear | ジャーニー上のすべてのチャネルに均等配分 | バランスの取れた中立的な視点が欲しい |
| Position-Based | 最初に 40%、最後に 40%、残り 20% を中間に配分 | 発見と成約の両方を評価したい |
| Time-Decay | コンバージョンに近いチャネルほど多くのクレジット | 販売サイクルが短い |
Time-Decay は 7 日間の半減期 を使用します:コンバージョンの 7 日前のタッチは、コンバージョン時点のタッチの半分の重みとなり、さらに 7 日経過するごとに重みは半減し続けます。
データ履歴に関する注記
ある期間のコンバージョンの大半が単一のセッションから発生した場合、マルチタッチモデル(Linear、Position-Based、Time-Decay)は Last-Touch と非常に似た結果になります — クレジットを分配するチャネルが 1 つしかないためです。これは想定された動作であり、不具合ではありません。マルチセッションのジャーニーが蓄積されるにつれて自然に解消します。
各モデルはどのようにデータを読み取るか
5 つのモデルはすべて同じソースを参照するわけではありません:
- Last-Touch と First-Touch はそれぞれ単一のスナップショットを使用します。Last-Touch はコンバージョンセッションに記録されたチャネルをクレジットし、First-Touch は訪問者の最初に記録されたセッションのチャネルをクレジットします。ジャーニーの再構築は必要ありません。
- Linear、Position-Based、Time-Decay は訪問者の完全なマルチセッションジャーニーを再構築し、コンバージョン前に記録されたすべての訪問を取得して、見つかったセッション全体にクレジットを分配します。
この違いが生む結果として:同じ基礎データ上でも、モデルは完全に一致することも、顕著に乖離することもあります — コンバージョン前に訪問者が通過した個別セッション数とチャネル数によって異なります。単一セッションのジャーニーを持つ訪問者は全モデルで同じ回答をもたらします。3 つのチャネルにまたがる 5 つのセッションを持つ訪問者は、各モデルで測定可能な異なる結果を生み出します。
モデルがほぼ同一に見える理由
アトリビューションモデルを切り替えてもチャネルの内訳がほとんど変わらない場合、データは正常に動作しています — 表示の問題ではありません。
コンバージョンの大半が単一セッションしか持たない訪問者(またはコンバージョン前に一貫して同一チャネルを使用した訪問者)から発生した場合、どのモデルも数学的にそのチャネルに 100% のクレジットを付与します。Last-Touch、First-Touch、Linear、Position-Based、Time-Decay はすべて同じ結果に達します。異なる形で配分するものが存在しないためです。オーディエンスが成長し、コンバージョン前に複数のセッションで複数のチャネルに触れる訪問者が増えるにつれ、モデルは乖離し、比較がより示唆に富むものになります。
モデルを比較する際に留意すべき追加のポイント:
- AI トラフィックは、すべてのアトリビューションモデルにおいて常に専用の ai チャネルにクレジットされます。AI 検出はタッチパスより優先されるため、モデルを切り替えても AI の行は変わりません。
- 金銭的価値のないコンバージョンもコンバージョンアトリビューションにカウントされます。収益加重比較には、目標に金銭的価値が付与されている必要があります — 付与されていない場合、それらのコンバージョンは件数には現れますが、各モデルが表示する収益合計には寄与しません。
空の UTM ディメンション
ほとんどの訪問者はすべての UTM パラメータを持ちません。現在の実 Zenovay データでは、utm_term は約 100%、utm_content は約 99.99% が null です。Sources タブはそれらのビューに対して、(none) の単一 100% バーではなく、コピー可能なヒント(?utm_term=...)付きの空状態を表示します。