この記事では、インストールプロセスの一環として、Pendoを条件付きで初期化する例を紹介します。Pendoのインストールの詳細については、インストールスクリプトを使用したPendoの実装に関する開発者ガイドを参照してください。
警告:この記事では、お客様にPendoのプロダクトを幅広く活用していただけるよう、例としてカスタムコードスニペットを使用しています。しかし、これらのスニペットに対する保証やSLA、サポートはありませんので、ご注意ください。 すべてのスニペットは無料で使用できますが、カスタムコードはテクニカルサポートチームの責任の範囲外となります。新しいスニペットの作成や既存のスニペットの変更、機能のカスタマイズについてリクエストがある場合は、Pendoプロフェッショナルサービス(services@pendo.io)までご連絡ください。なお、これらのリクエストを遂行するには、Pendoとのカスタムサービス契約が必要になります。
ユースケース
標準的なPendoのインストールでは、アプリケーションのすべての訪問者に対してPendoを初期化し、除外/包含リストを使用して、特定の訪問者ID、アカウントID、またはドメインからアナリティクスを除外します。これは、テスト環境またはステージング環境から訪問者を除外したり、内部ユーザーを除外したりする場合に適しています。訪問者のグループを除外する必要があり、訪問者ID、アカウントID、またはドメインを使用できない場合は、条件付きでPendoを初期化できます。
さらに、標準的なインストールでは、Pendoはアプリケーションの他の部分と非同期で読み込まれるため、ページが読み込まれたときに、すべての変数が作成・定義される前に初期化が行われることがあります。初期化する前に、渡したすべての変数が定義されるまでPendoを待機させたい場合は、条件付きでPendoを初期化できます。それ以外の場合、標準のPendoインストールでは、Pendoは、アプリケーションによってPendoに渡されるすべての変数が使用可能であり、Pendoが初期化を開始する前に定義されていると想定します。
例1. 有料訪問者の条件付き初期化
この例では、特定の訪問者に対して条件付きでPendoを初期化する方法について説明します。この例では、これらの訪問者はアプリケーションの有料プランを利用している訪問者ですが、インストールスクリプト内の任意の訪問者特性を条件付き初期化の対象とすることができます。
状況
AcmeCorp CRMアプリでは、訪問者は無料プランまたは有料プランのいずれかである可能性があります。この例では、有料プランの訪問者に対してのみPendoを初期化します。無料の訪問者は複数のアカウントに属しており、全員がプライマリ(本番)ドメインでアクティブであるため、除外リストを使用してアクティビティを除外することができないからです。
タスク
上記のような状況では、有料ユーザーがサインインした場合にのみPendoが実行されるように、条件付きでPendoを初期化する必要があります。
動作(Action)
これを行うには、Pendoのインストールスクリプトを更新して、Pendoを初期化する必要があるかどうかを決定するための条件付きロジックを含める必要があります。以下の疑似コードは、それを行う方法を示しています。
if (user.type=='paid'){
pendo.initialize()...
} else {
}
この例では、free
またはpaid
のいずれかのtype
の特性を持つ訪問者がいます。Pendoの初期化コードをif/else
ステートメントでラップして訪問者のtype
特性をチェックし、これがpaid
と等しい場合にのみPendoを初期化します。
成果
上記のコードにより、すべてのpaid
ユーザーに対してPendoを引き続き使用しながら、すべてのfree
ユーザーをPendoから除外できます。
例2. 変数が入力された後の条件付き初期化
この例では、ページが読み込まれたときに、すべての変数の入力が完了するまで待機してから初期化するように、Pendoを条件付きで初期化する方法について説明します。この例では、特定の変数が作成および定義された後にのみPendoを初期化しますが、これは複数の変数に対して実行できます。
状況
AcmeCorp CRMアプリでは、訪問者のデータはページ読み込み時に作成される変数を通して渡されますが、この変数の読み込みには時間がかかることがあります。変数の値がPendoに渡せる状態になる前にPendoが初期化された結果、重要な訪問者やアカウントの情報が欠落しないようにする必要があります。
タスク
上記のような状況では、変数が定義されている場合にのみPendoが実行されるように、条件付きでPendoを初期化する必要があります。
動作(Action)
これを行うには、Pendoのインストールスクリプトを更新して、Pendoを初期化する必要があるかどうかを決定するための条件付きロジックを含める必要があります。以下の疑似コードは、それを行う方法を示しています。
if (user.visitorId && user.accountId && user.otherVariable){
pendo.initialize()...
} else {
}
この例では、Pendoに渡す前に定義したいvistorId
の特性と、accountId
およびotherVariable
の特性を持つ訪問者があります。Pendoの初期化コードをif/else
ステートメントでラップして、これらの特性が存在し、null
やundefined
でないことを確認し、それらの変数が設定されている場合にのみPendoを初期化してtrue
を返します。
成果
上記のコードは、Pendoを初期化する前にすべての変数が存在することを確認し、アプリケーションからPendoに渡される重要な訪問者とアカウント情報がすべて含まれるようにします。