1分で読了連携

Mixpanelリンク計測: 短縮リンクのクリックをイベントとして扱う

ElidoによるMixpanelリンク計測: 短縮リンクのクリック1件ごとに、サーバーサイドのlink_clickイベントになります。セットアップ、プロパティ、ID上の制約、確認方法まで解説。

Marius Voß
DevRel · edge infra
Mixpanelリンク計測の図: 短縮リンクのクリックが、Elidoのリダイレクトからサーバーサイドのlink_clickイベントとして送信され、MixpanelのEventsビューに表示される。

ElidoにおけるMixpanelリンク計測は、サーバーサイドかつ一方向です。誰かが短縮リンクをクリックするたびに、Elidoは自分のプロジェクトトークンを使ってlink_clickイベントをMixpanelのトラックエンドポイントにPOSTします。このイベントには、リンクのスラッグ、リンクID、訪問者の国とデバイス、送り先の遷移先、タイムスタンプが含まれます。訪問者のブラウザ上では何も実行されないため、広告ブロッカーや同意バナーの影響を受けません。

落とし穴はIDです。各イベントは人物ではなくリンクに紐づいているため、Mixpanel上でクリックを一日中カウントしたりセグメント分けしたりはできますが、そのイベント単体からクリックした人をあなたのプロダクトまで追跡することはできません。これが何に向いているか、どう設定するか、Eventsビューでどう確認するか、そして私であれば別の方法を選ぶ場面について説明します。

そもそも何にタグを付けるべきかまだ決めかねている段階であれば、コーナーストーン記事のUTMをエンドツーエンドで追跡するから始める方がよいでしょう。Mixpanelが見るのは、あくまでリンクが運んできた情報だけです。

クリックのたびにElidoがMixpanelに送るもの

1回のクリックにつき、1つのイベントです。転送機構は単一イベントのバッチを構築し、インテグレーションのData residency設定に一致する取り込みホスト(USはapi.mixpanel.com、EUはapi-eu.mixpanel.com、Indiaはapi-in.mixpanel.com)の/trackにPOSTします。認証はプロパティ内のトークンで行われ、これはMixpanelの取り込みAPIがサーバーサイドイベントに期待する形式です。

完全なペイロードは次の通りです(トークンの値のみ省略しています)。

[
  {
    "event": "link_click",
    "properties": {
      "token": "<your project token>",
      "distinct_id": "elido-link-4711",
      "workspace_id": 12,
      "link_id": 4711,
      "slug": "spring-26",
      "country": "DE",
      "device": "mobile",
      "destination": "https://shop.example/spring?utm_source=newsletter",
      "time": 1790000000,
      "ip": "203.0.113.24"
    }
  }
]

これで全部です。意図的に短いリストにしています。

プロパティ何を保持しているかMixpanelでの使い方
slug / link_idどの短縮リンクがクリックされたかあらゆるレポートの内訳軸として使う
destinationルーティングルール適用後、その訪問者が送られたURLどの地域・デバイスバリアントが発火したか確認
countrydeviceリダイレクト時に解決された値Mixpanel自身の推定に頼らずセグメント分けする
ip訪問者のアドレスMixpanelが都市と地域を導出し、その後破棄する
distinct_idelido-link-<link_id>Uniquesを使う前にIDに関するセクションを読む

知っておくべき点が2つあります。destinationは解決後のURLなので、スマートリンクがiPhoneをApp Storeに、それ以外を自社サイトに送っている場合、両方のURLが見えます。またUTMタグはこのdestination文字列の中を移動するだけで、独立したutm_sourceutm_campaignプロパティはありません。列として使いたい場合は、Mixpanel側で導出プロパティを作る必要があります。これは初日にやっておくべき唯一のセットアップ作業です。

ユーザーエージェントで自己申告している明らかなボット、クローラーはリダイレクト時にフィルタリングされ、Mixpanelには一切届きません。

Mixpanelインテグレーションのセットアップ

セットアップ全体はたった2つのフィールドです。クリックイベントをMixpanelに送るには、MixpanelのプロジェクトとMixpanelのプロジェクトトークン(Mixpanelの Project Settings配下にあります)が必要です。このトークンは埋め込むことを前提とした書き込み専用キーなので、ベンダーに貼り付けること自体は普通のことです。APIシークレットは貼り付けないでください。これは別の文字列で、転送機構が使うものではありません。

  1. Elidoのワークスペースで、Integrationsを開き、Mixpanelのカードを選びます。
  2. Connect Mixpanelをクリックし、トークンをProject Tokenに貼り付け、Data residencyでUS(デフォルト)、EU、Indiaのいずれかを、Mixpanelのプロジェクト設定にあるData Residencyの値に合わせて選びます。保存します。Elidoはトークンを保存時に暗号化し、以降全体を表示することはありません。
  3. 数分待ちます。ワークスペースのインテグレーション設定は、転送側で短時間キャッシュされるため、保存直後のクリックはまだ送信されない場合があります。
  4. スマートフォンから、自分の短縮リンクのひとつをクリックします。

リンクごとのスイッチはありません。接続すると、そのワークスペース内のすべてのクリックが転送されます。これはMixpanel中心で運用しているチームには適していますが、関係のない20社のクライアントの短縮リンクをまとめてホストしているワークスペースには向きません。もし後者に該当する場合は、先にクライアントごとにワークスペースを分けてください。

何かを信用する前に、まずEventsビューを確認する

かつてMixpanelがLive Viewと呼んでいたものは、現在は左側のナビゲーションのData配下にあるEventsビューになっています。Mixpanelのデバッグガイドも、まさにこの用途のために最初に確認すべき場所としてこれを推奨しています。開いてlink_clickでフィルターし、オフィスのWi-Fiに接続していないスマートフォンから短縮リンクをタップしてください。

短縮リンクのクリックがMixpanelに届くまでの流れ: 訪問者がリンクをタップし、Elidoのリダイレクトが先に応答してクリックを記録し、転送機構がElidoで設定されたData residency地域(US、EU、India)向けのMixpanelのトラックエンドポイントに1回のリトライ付きでlink_clickイベントをPOSTし、そのイベントがMixpanelのEventsビューに表示される。

数秒以内にイベントが表示されるはずです。展開して3点を確認してください。slugがタップしたリンクと一致しているか、countryがそのスマートフォンの実際の所在地になっているか、Mixpanel自身がipから都市と地域を埋めているか、です。都市の欄がデータセンターを示している場合、そのテストはVPN経由で行われています。

インテグレーションパネルのTest connectionボタンは、elido_test: trueが付いたlink_clickイベントを1件送信し、ボタンの下にMixpanelからの応答を表示します。便利ではありますが、証明にはなりません。Mixpanelのトラックエンドポイントはどんなトークンでも受け付け、レジデンシーを確認することもないため、間違ったトークンや間違ったリージョンでも緑色の結果が出て、実際には何もプロジェクトに届いていないことがあります。私が信頼するのは、実際のクリックからイベントが届くのを確認することだけです。

distinct_idがリンク単位である理由と、それによって壊れるもの

IDに関する制約を、率直に述べます。distinct_idelido-link-にリンクIDを付けたものなので、spring-26へのすべてのクリックは、1つの合成されたMixpanel「ユーザー」に属することになります。

リンク単位のMixpanel distinct_id: 3人の異なる訪問者が同じ短縮リンクをクリックし、3つのlink_clickイベントすべてが同じdistinct_id elido-link-4711を共有するため、Mixpanelは1人のユーザーとしてカウントする。一方、ランディングページ上のMixpanel SDKは、UTMタグを持つ3台の別々のデバイスとして認識する。

合計値は正しく機能します。スラッグ、国、デバイス、遷移先による内訳も機能しますし、時系列の推移も機能します。壊れるのは次の3点です。

  • link_clickのUniquesは、人ではなくリンクの数をカウントします。 2本のリンクで合計40,000クリックがあったキャンペーンは、2ユニークユーザーとして表示されます。
  • link_clickから始まりサインアップイベントで終わるファネルはつながりません。サインアップは別のdistinct_idに属しているためです。

ほとんどのチームが遭遇しない3つ目の問題もあります。Mixpanelは、1日あたり1distinct_idにつき20万イベントというホットシャード制限を課しており、それを超えるとイベントは$hotshard_eventsにリネームされます。本当にバイラルになったリンクが1本あれば、この上限を超えることがあり、IDがリンク単位であるため、その1本のリンクだけが影響を受けます。

なぜ訪問者単位のIDにしないのか。それは、リダイレクトが訪問者が誰であるかを知らないためであり、訪問者が訪れることを選んでいないドメインにクッキーを設定したくもないからです。これは正直なトレードオフです。

実用的な方法で短縮リンクのクリックをユーザーに結びつける

うまく機能するパターンは、両方の仕組みをそれぞれ得意な用途で使うことです。あなたのページが読み込まれる前に離脱した人のクリックも含めた完全なクリック数は、Elidoのサーバーサイドイベントに任せます。IDの管理は、ランディングページ上のMixpanel SDKに任せます。

遷移先URLにUTMタグを付けてください。MixpanelのJavaScriptライブラリはデフォルトでUTMパラメータを追跡し、プロフィール上にファーストタッチの値を記録します。そのため、その訪問者が後でサインアップしてidentifyを呼び出したとき、キャンペーンは実在の人物に結びつきます。短縮リンクのクリックとランディングページのビューは、その時点ではユーザーIDではなくキャンペーンの値を共有しており、レポート上ではutm_campaignで結合することになります。これはユーザー単位の結合よりも粗いキャンペーン単位の結合ですが、このデータにとってはそれで適切な粒度だと私は考えています。

クリック合計とランディングページのセッション数を並べて見たいですか。両者は一致しないと想定しておいてください。短縮リンクのクリック対GA4セッションで、Mixpanelを含むどの分析ツールでも同じ差が生じる理由を解説しています。

これがずっと欠けていた仕組みだと感じたら、ワークスペースを接続して、次のキャンペーンをブランド短縮リンク経由で流してみてください。

現時点で足りないところ

影響を受けやすい順に、3つのギャップを挙げます。

訪問者のIPは、すべてのイベントに乗って移動します。EUレジデンシーの場合はEUの取り込みホストに、デフォルトの米国の場合は米国のエンドポイントに送られます。これをどう評価するかはEUデータレジデンシーガイドで扱っています。Mixpanel側について、プロジェクトのレジデンシーの確認方法を含めて詳しくは、Mixpanel EUデータレジデンシーをご覧ください。

配信はベストエフォートです。失敗したPOSTは1秒後に1回だけリトライされ、その後は破棄されます。イベントには$insert_idが含まれないため、遅れて成功したリクエストの後にリトライが発生すると、二重カウントになることがあります。

イベントにはリファラーやブラウザの情報が含まれず、リダイレクトが不審だとフラグを立てたクリックも、それでも転送されます。これらが必要な場合は、クリック分析ダッシュボードを確認してください。

コンバージョンはこの仕組みの対象外です。売上は、ユーザーIDが存在する場所で計測してください。

関連記事

よくある質問

短縮リンクからMixpanelにクリックイベントを送るにはどうすればいいですか?

ElidoワークスペースのMixpanelインテグレーションに、自分のMixpanelプロジェクトトークンを貼り付けて保存してください。それ以降、そのワークスペース内のリンクへのすべてのクリックは、スラッグ、リンクID、国、デバイス、遷移先をプロパティとして持つlink_clickイベントとして、サーバーサイドでMixpanelに送信されます。リダイレクト上でJavaScriptが実行されることはありません。

ElidoがMixpanelで使うイベント名は何ですか?

イベント名はlink_clickで固定されています。レポートはこの名前を前提に構築してください。古いElidoのページに別のイベント名が書かれているのを見かけたら、実際にEventsビューに届く内容を信用してください。それが転送機構が実際に送っているペイロードです。

Mixpanelは短縮リンクのクリックを既知のユーザーに紐づけられますか?

転送されたイベント単体では紐づけられません。Elidoはリンクごとに1つの値をdistinct_idとして設定するため、同じリンクへのすべてのクリックは同じMixpanelの「ユーザー」に見えます。実在の人物にたどり着くには、遷移先にUTMタグを付け、ランディングページ上のMixpanel SDKにそれを取得させたうえで、そこで通常通りユーザーを識別してください。

なぜElidoからのクリックがMixpanelに表示されないのですか?

3つを順番に確認してください。トークンは、APIシークレットではなく正しいプロジェクトのプロジェクトトークンである必要があります。保存後、最初のクリックが転送されるまで数分待ってください。最後に、あなたのMixpanelプロジェクトがEUまたはインドのデータレジデンシーを使用している場合は、Elidoのインテグレーション側でも同じレジデンシーを設定してください。間違った取り込みホストに送信されたイベントはまったく取り込まれません。

Elidoはコンバージョンもmixpanelに転送しますか?

Mixpanelインテグレーションがカバーするのはクリックのみで、現時点でペイロードに独立したコンバージョンイベントはありません。売上を計測する場合は、自社のバックエンドか、実際のユーザーIDを使ったMixpanel SDKから記録してください。IDが存在するのはそこであり、リンク単位のプレースホルダーではなく正しいプロフィールにコンバージョンが記録されます。

MixpanelはElidoが送信する訪問者のIPアドレスを保存しますか?

Mixpanelのジオロケーションに関するドキュメントによれば、イベントのipプロパティは国、地域、都市を導出するために使われ、イベントが保存される前に破棄されます。そのため、Mixpanel上では各クリックについて都市レベルの位置情報が得られますが、IPアドレス自体はクエリ可能なプロパティとしては残らないはずです。

Elidoを試す

URLを貼り付けて短縮リンクを取得

登録不要。リンクは30日間有効。永久に保存するには登録してください。

Free、登録不要 · 1日あたり2件

Elidoを試す

EUホスティングのURL短縮サービス。カスタムドメイン、詳細な分析、オープンAPI付き。無料プラン - クレジットカード不要。

タグ
mixpanel link tracking
send click events to mixpanel
mixpanel short link clicks
mixpanel server-side tracking
mixpanel distinct_id
link click analytics

続きを読む