Pendoでは常に、受信した最後のメタデータ値を保存し、アプリケーションを区別しません。そのため、サブスクリプションに複数のアプリケーションがある場合、アプリケーションが同じメタデータフィールドに対して競合する値を送信するかどうかを判断することが重要です。そうしないと、ユーザーがアプリケーション間を移動するたびに、常にデータが上書きされてしまうためです。
この記事では、同じPendoサブスクリプションに複数のアプリケーションを設定している場合に、ユーザーに関するメタデータをPendoに送信する方法について説明します。これは、ユーザーのメタデータ値を各アプリケーション間で保存することで、セグメントに悪影響を及ぼす事態を防ぐことを目的としています。
次のガイダンスをご覧ください。
- 単一のPendoサブスクリプション内に複数のアプリケーション(Webとモバイルの両方)がある、または複数のアプリケーションを持つ予定のEngageのお客様の場合。
- 複数のアプリケーションで同じメタデータフィールドを使用する予定の場合。
ガイダンス
以下の例では、2つのアプリケーション間で矛盾する値を持つメタデータフィールドをPendoに渡すとどうなるかがわかります。また、データの損失を防ぐためにメタデータフィールドを再構成する方法も学習できます。
サンプルシナリオ
1つのPendoサブスクリプションには、プロダクトAとプロダクトBの2つのアプリケーションがあります。訪問者ID「Avery_H」は両方のプロダクトのユーザーですが、その役割はそれぞれのアプリケーションで異なります。
不適切な構成
Avery_Hの「役割」というメタデータフィールドに対して、プロダクトAとプロダクトBが異なる値を送信しています。
- プロダクトA
- 訪問者ID:Avery_H
役割:管理者 - プロダクトB
- 訪問者ID:Avery_H
役割:ユーザー
メタデータフィールド「役割」は、常にPendoが最後に受信した値を反映します。Avery_Hが定期的にプロダクトAとBを切り替えている場合、ユーザーが最後にアクセスしたアプリケーションに基づいて、「役割」の値が「管理者」から「ユーザー」に、またはその逆に、繰り返し変更されることになります。
この構成では、Pendoにとって、Avery_HはPendoサブスクリプションのすべてのアプリケーションの管理者またはユーザーのいずれかです。これは、Avery_Hが実際にはプロダクトAの管理者であり、プロダクトBのユーザーでもあることを正確に反映していません。
この場合、プロダクトAのすべての管理者を取得するセグメントを作成しようとしても、ユーザーがプロダクトBを開いて「役割」が「ユーザー」に更新されるたびに、Avery_Hがセグメントから削除されるため、この構成ではうまくいきません。
正しい構成
2つのアプリケーションそれぞれの役割の値をPendoで保存するようにするには、メタデータレベルでそれらのプロダクトを区別することが重要になります。これは、メタデータフィールドにアプリケーション名またはアプリケーション名の略称を追加することで、簡単に解決できます。たとえば、次のようになります。
- プロダクトA
- 訪問者ID:Avery_H
役割_プロダクト A: 管理者 - プロダクトB
- 訪問者ID:Avery_H
役割_プロダクト B: ユーザー
この構成により、Pendoは両方のアプリケーションでAvery_Hの役割を正確に反映できるようになるため、「役割_プロダクト Aが管理者」というセグメントを作成しても、そのセグメントのAvery_Hの属性が、最後に使用されたアプリケーションによって変わることはなくなります。
次のステップ
このような状況に心当たりがある場合は、お使いのアプリケーションについてどのようなメタデータフィールドをPendoに送信しているか、開発者に確認してみてください。また、Pendoに渡すメタデータをすべてのアプリケーションを対象に記録し、各フィールドに入る可能性のある値も文書化しておくことをお勧めします。そうすることで、問題の芽をより簡単に見つけ、フラグを立てることができます。
メタデータの詳細については、訪問者とアカウントのメタデータ設定およびPendoにおけるデータマッピングとデータ型を参照してください。