はじめに
PendoのSegmentは非常に強力ですが、条件の解釈を誤ると、分析結果が簡単にズレてしまいます。
前回の記事では、Visitor / Account / Segmentといった基本概念を整理しました。
https://qiita.com/lukeozaki/items/07e451ed53eed0bbefd7
本記事では、その前提を踏まえた上で、Segmentの条件設定(AND / OR、期間、否定条件など)の挙動とハマりポイントにフォーカスします。
Segmentで指定できる条件の種類
Segmentで指定できる条件は、大きく以下の2つに分けられます。
- 行動に基づくデータ(Behavior)
- メタデータ(Metadata)
行動に基づくデータ(Behavior)
ユーザーがアプリケーション上でどのような操作をしたか、という「行動」に基づく条件です。
例えば:
- 特定のページを訪れた
- 特定のFeatureをクリックした
- ガイドを表示・完了した
メタデータ(Metadata)
Visitor(個人)やAccount(組織)に紐づく属性情報を使った条件です。
これらはPendo外のシステム(CRMや人事システムなど)で管理されている情報を元に設定されることが多いです。
例えば:
- Visitor:ユーザーの役割、プラン、登録日
- Account:企業名、業種、契約プラン
条件ロジック(AND / OR)
Segmentでは、複数の条件をAND / ORで組み合わせてユーザー(Visitor)を絞り込みます。
AND条件
すべての条件を満たすユーザー(Visitor)が対象になります。
例:
- 「特定のFeatureを利用した」 AND
- 「有料プランのユーザー」
→両方の条件を満たしたユーザー(Visitor)が対象に
OR条件
いずれかの条件を満たすユーザーが対象になります。
例:
- 「特定のFeatureを利用した」 OR
- 「特定のページを訪問した」
→どちらか一方でも満たせば対象に
否定条件(含まない・等しくない)とORの注意点
「含まない」「等しくない」などの否定条件をORでつなぐと、意図しない結果になりやすいので注意が必要です。
例:よくある誤り
- 「ルールAを含まない」 OR 「ルールBを含まない」
一見すると「AでもBでもないユーザー」を抽出できそうに見えますが、実際はそうなりません。
この条件は、
- ルールAに該当しないユーザー
または - ルールBに該当しないユーザー
を意味するため、ほとんどのユーザーが対象に含まれてしまいます。
正しい書き方
「AもBも含まないユーザー」を抽出したい場合は、ANDでつなぐ必要があります。
- 「ルールAを含まない」 AND 「ルールBを含まない」
→この場合のみ、「AにもBにも該当しないユーザー」に絞り込まれます
期間の扱い
Segmentでは、条件に対して「どの期間のデータを対象にするか」を指定できます。
この期間の解釈を誤ると、意図しないユーザーが含まれたり、逆に対象がほとんどいなくなることがあります。
よく使う期間のパターン
過去◯日(例:過去7日、過去30日)
指定した日数分、現在から遡った期間(ローリング)で条件が評価されます。
例:
- 「過去7日でログインしていない」
→今日を基準に、直近7日間で常に再評価される
全期間(All time)
これまでに記録されたすべてのデータが対象になります。
例:
- 「一度でもFeature Aを使ったことがある」
→過去に1回でも該当すれば対象に含まれる
よくあるミス
パターン①:意図せず対象が広がる
- 「過去30日でFeature Aを使った」
→最近使った人だけのつもりが、「かなり前に使った人」も含まれる可能性がある
パターン②:非アクティブユーザーの抽出ミス
- 「過去7日でログインしていない」
→「最近使っていない人」を取りたいつもりでも、
条件の組み方によっては「そもそも使ったことがない人」も含まれる
Segmentとレポートでの期間定義の違い
Pendoでは、「過去◯日」のような期間指定でも、Segmentとレポートで解釈が異なるため注意が必要です。
Segmentの場合
-
within last 0 days (過去の指定期間内 0日間)
→ 今日(0:00 〜 23:59) -
within last 1 days (過去の指定期間内 1日間)
→ 昨日(0:00)〜 今日(23:59)
「今日を含む」形で、日付単位(0時区切り)で評価される
レポートの場合
- within last X days (過去X日間)
→ 今日を含まない(昨日まで)
例:
- within last 7 days (過去7日間)
→ 過去7日分だが、「今日」は含まれない
ハマりポイント
- 同じ「過去◯日」でも、Segmentとレポートで対象期間がズレる
- Segmentでは「今日のデータ」が含まれるが、レポートでは含まれない
- そのため、同じ条件で見ているつもりでも数値が一致しない
具体例
「過去1日でアクティブなユーザー」
-
Segment
→ 今日 + 昨日が対象 -
レポート
→ 昨日のみが対象
結果として、Segmentの方が数が多く見えることがある
ポイント
期間条件を扱う際は、
- Segmentでの定義なのか
- レポートでの集計なのか
を意識しないと、意図しないズレが発生するため注意が必要です。