ホワイトペーパー

Pendoの概要

Pendoへようこそ

このガイドでは、Pendoプラットフォームの概要について説明します。Pendoのインストールやアプリケーション設定の基本を紹介しているので、これを読めば、ユーザーに関するデータを取得したり、ユーザーに向けたガイドやアンケートなどの配信ができるようになります。さらに、インストールに関連する重要な技術的項目やよくある質問についても取り上げます。

プロダクト体験のためのプラットフォームである理由

Pendoの核となるミッションは、お客様のプロダクトにおける体験をより良いものにすることです。これを実現するため、皆様のプロダクトをユーザーがどのように操作しているかを理解できるようにすること、またインタラクティブなアプリ内メッセージを通じてユーザーに情報を提供し、プロダクト内を誘導できるよう支援することの、2点に注力しています。Pendoのユニークな点は、これらの両方の機能を最小限のコーディングで実装できることです。

ユーザーの行動を理解する

ソフトウェア開発プロセスにおいてアジリティとスピードが重視される中、ユーザーからのフィードバックを収集したり、アプリケーション内でのユーザー体験を効率的に把握することは非常に重要です。開発チームは、どの機能がうまく機能しているか、どの機能が最も頻繁に使用されているか、どの機能でユーザーが苦戦しているかを迅速に理解する必要があります。この情報は、開発チーム全体が開発プロジェクトの優先順位付けに利用できるような、フィードバックの循環内で定着させる必要があります。

Pendoは、ユーザーがログインして利用するソフトウェアプロダクトに特化した豊富な分析機能により、ユーザーとその行動を理解できるよう支援します。アプリケーション全体のすべてのユーザーアクティビティが、ユーザー(個人)レベルとアカウント(企業/顧客)レベルの両方で収集および集計されます。また、カスタマイズされたセグメントの作成と分析も可能です。セグメントは、ユーザー属性情報(場所、ブラウザの種類)またはアプリケーションでの特定の行動(特定のフィーチャーの使用の有無、パワーユーザーなど)に基づいて定義できます。Pendoは特定のページやリンクだけでなくフィーチャーレベルのトラッキングにも対応しており、ページ要素やクリック数を追跡できます。また、Pendoはユーザーがどのようにアプリケーション内を移動しているのかを追跡し、ユーザーがさまざまなフィーチャーやページをたどる経路、想定するジャーニーをどれだけうまくたどるか、どこで脱落するかも確認できます。

定量的なデータはユーザーの行動に関する重要な情報を与えてくれますが、特定のインターフェース、フィーチャー、機能の有効性を評価する際には、定性的なフィードバックも重要です。通常、これはユーザーテストまたはオフラインの満足度調査を通じて収集します。どちらの方法も有益ですが、常にタイムリーであるとは限りません。Pendoのプラットフォームでは、アプリケーション内で直接インタラクティブな投票調査を実施できます。投票調査を実施することで、特定のフィーチャーの評価を依頼したり、アプリケーションの任意の地点で自由記入形式のフィードバックを収集したりできます。この方法はオフラインで行うアンケートの幅広さとユーザーテストの即時性を併せ持つため、貴重なフィードバックをその場で大規模に収集することができる効果的な方法です。

アンケート調査の結果は他のユーザーアナリティクス、アカウントアナリティクス、セグメントアナリティクスとともに集計され、ここでアンケート完了率や結果の概要を表示したり、個々の結果を掘り下げて特定のフィードバックを確認したりすることができます。このように定量的なユーザー情報と定性的なユーザー情報を組み合わせることで、開発チームはアジャイルな開発サイクルのペースでプロダクトがどのように使用されているかについて実用的に把握し、新機能やアップデートの優先順位を効果的に決定できるようになります。

ユーザーのエンゲージメントとガイド

アプリケーション配信の高速化は、ユーザーとのコミュニケーションにも影響を及ぼします。新機能があっても、ユーザーがその存在を知らなかったり、使い方がわからなかったりすると、定着化を促進することは困難です。理論的には、本当に使いやすい機能ならすぐに直感で操作方法を理解できるものですが、現実では(特に複雑なビジネスアプリケーションでは)、追加の説明がなければすべてのユーザーが完全に理解するのは難しい、複雑すぎる機能もあります。

ここで、邪魔をしない程度のアプリ内メッセージが重要になります。Pendoのプラットフォームを使えば、アプリケーション内で直接ユーザーガイドを簡単に構成して提供できます。ガイドは、アプリケーションの新機能やアップデートの告知、機能に関する段階的なウォークスルーの提供、あるいはユーザーインターフェースの要素の横にあるシンプルなツールチップとして使用できます。こうしたガイドはノーコードで追加やカスタマイズ、更新が可能で、DOM内で完全にレンダリングされるため、アプリケーションやページのスタイルを自動的に継承し、必要に応じてカスタマイズやスタイルの設定ができます。

ガイドは、ユーザーを教育するための簡単な手段で、アプリケーション内をより適切に誘導するのに役立ちます。また、Pendoプラットフォームで取得したユーザー情報と組み合わせることで、ガイドはさらに威力を発揮します。分析データを使用して、特定のガイドを表示するユーザーまたはセグメントを選択できます。たとえば、特定の機能を使ったことがないユーザーを対象にしたガイドを作成したり、新しい機能をパワーユーザーにアピールしてからユーザー全体に広く宣伝したりすることができます。投票やアンケート調査はガイドに埋め込むことができるため、ユーザーに新機能を共有したり説明したりした後で、直接フィードバックを求めることができます。

アプリケーションの設定

Pendoを使用する際の最初のステップは、Pendoがユーザーデータの収集を開始できるように、アプリケーションを設定することです。これを行うために、数行のJavaScriptを追加してページにPendoエージェントをインストールします。必要なコーディングはこれだけです。インストールが完了すると、エージェントはすぐにユーザーアクションの収集を開始します。ページ上で個々の機能の設定やタグ付けを行う必要はなく、すべて事後に設定可能です。エージェントがインストールされた後はいつでも、アプリケーションのUI画面でフィーチャーを指定できます。Pendoは収集されたすべてのイベントを遡及的に分析して、それらのフィーチャーに関する詳細情報を提供します。つまり、何かが変更されたり、新しい機能が追加されたりした場合でも、追加のコーディングを行う必要はありません。エージェントが実行されている限り、Pendoは常にデータを収集します。エージェントをインストールするためのサンプルJavaScriptスニペットを以下に示します。


<script>
    (function(apiKey) {
        (function(p, e, n, d, o) {
            var v, w, x, y, z;
            o = p[d] = p[d] || {};
            o._q = [];
            v = [‘initialize’, ’identify’, ’updateOptions’, ’pageLoad’];
            for (w = 0, x = v.length; w < x; ++
                w)(function(m) {
                o[m] = o[m] || function() {
                    o._q[m === v[0] ?’unshift’ : ’push’]([m].concat([].slice.call(arguments, 0)));
                };
            })(v[w]);
            y = e.createElement(n);
            y.async = !0;
y.src = ’https: //cdn.pendo.io/agent/static/’+apiKey+’/pendo.js’;z=e.getElementsByTagName(n)[0];z.parentNode.insertBefore(y,z);})(window,document,’script’,’pendo’);
                // 訪問者に関する情報が利用可能になるたびにこれを呼び出します // 値型には文字列、数値、またはブール値を使用してください。pendo.initialize({
visitor: {
                    id: ‘VISITOR - UNIQUE - ID’ // ユーザーがログインしている場合に必須
                    // role: // 任意
                    // 上記の予約済みの名称でない限り // 訪問者レベルのキーバリューはここで追加できます。
},
                account: {
                    // id:             ACCOUNT-UNIQUE-ID’ // Highly recommended
                    // name:           // 任意
                    // planLevel:      // 任意
                    // planPrice:      // 任意
                    // creationDate:   // 任意
                    // 上記の予約済みの名称でない限り 
                    // アカウントレベルのキーバリューはここで追加できます。
}
        });
    })(‘ご自身のサブスクリプションキーをここに入力’); 
</script>

注:ご自身のPendoサブスクリプション内のインストール設定から、サブスクリプションキーを含む一意のインストールスニペットを必ず取得してください。

サブスクリプションキーは、一意のPendoサブスクリプションのアカウントキーです。Pendoに渡すことができるユーザーに関するパラメータや詳細は複数ありますが、一意のユーザーIDとアカウントID(該当する場合)は必ず提供する必要があります。たとえば、アカウントが「RedHat」、ユーザーが「RedHatのマーケティング部門のJill」だとします。ユーザー情報を正確に追跡するには、すべてのページですべてのユーザーに一意のユーザーID/識別子を使用することが重要です。その他のパラメータは、Pendoプラットフォーム内で個々のユーザーやアカウントを特定したり、特定のコホートを確認したりしやすくする、追加のユーザー情報を提供します。これらの追加のメタデータフィールドは必須ではありませんが、使用することをお勧めします。多くのPendoユーザーは、アプリでのユーザーの行動とユーザー属性情報の両方でデータをセグメント化しています。ユーザー属性によるセグメントは提供されたメタデータに基づいているため、もしもこの情報が提供されなければ、Pendoはイベントとユーザー属性を関連付けることができません。フィーチャーやページとは異なり、Pendoはユーザー属性のセグメントの動作を遡及的に分析できないため、インストールプロセス中に必要と思われるユーザー情報をチームでよく考えておくことをお勧めします。

SALESFORCE.COM(SFDC)からのデータのインポート

ユーザー属性のセグメントデータを取り込む方法として、SFDCを利用することもできます。PendoとSFDCのインテグレーションにより、SFDCインスタンスの取引先オブジェクトまたは取引先責任者オブジェクトの任意の項目から、アカウントまたはユーザーレベルの情報を取得できます。Pendoの管理者は、Pendoのデータマッピングインターフェース内で直接SFDCの項目を選択できます(ここでも追加のコーディングは必要ありません)。データを適切に同期するには、Pendo側とSFDC側の両方で一致するキー(「salesforce ID」または別の一意の共有識別子など)が必要です。

Pendoデータマッピング画面

データマッピングが設定されると、Pendoは毎日1回、SFDCから更新データを取得します。また、Pendoのインターフェース内で手動でデータを同期させることもできます。Pendoに取り込まれたデータは、アナリティクスとガイドの両方で使用できます。SFDCの属性でセグメント化されたユーザーやアカウントのデータを分析し、それらの属性に基づいてターゲットを絞ったガイドを作成できます。

シングルページアプリケーションフレームワーク

Pendoのプロダクト分析機能は、シングルページのアプリケーションフレームワークで特に役立ちます。従来のウェブ分析ツールはページ閲覧数に合わせて作られているため、このような環境には適しません。シングルページのフレームワークでは、単一のページ閲覧において、さまざまなユーザー操作が発生します。こういった問題は開発チームで回避できますが、分析ソリューションが適切に追跡していることを確認するために、追加の作業負荷がかかります。Pendoは、ページ上のすべてのユーザー操作データを収集し、特定のユーザーに紐づけることで、これらの課題を回避します。

Pendoは、シングルページのアプリケーションフレームワークを完全にサポートしています。インストール方法は、同じインストールスニペットを使用するマルチページインストールと似ていますが、展開方法が若干異なります。シングルページフレームワークでは、Pendoのスニペットはインストール手順内で2つのスニペットに分割されます。Pendoスニペットの最初の部分がアプリケーションライブラリに追加され、次にアプリケーションがPendoと共有するユーザー識別情報を取得すると、後半部分がページとともに読み込まれます。

たとえば、スニペットの次の部分をアプリケーションライブラリやインデックスページに追加します。

<script>
    (function(apiKey) {
            (function(p, e, n, d, o) {
                var v, w, x, y, z;
                o = p[d] = p[d] || {};
                o._q = [];
                v = [‘initialize’, ’identify’, ’updateOptions’, ’pageLoad’];
                for (w = 0, x = v.length; w < x; ++
                    w)(function(m) {
                    o[m] = o[m] || function() {
                        o._q[m === v[0] ?’unshift’ : ’push’]([m].concat([].slice.call(arguments, 0)));
                    };
                })(v[w]);
                y = e.createElement(n);
                y.async = !0;
y.src = ’https: //cdn.pendo.io/agent/static/’+apiKey+’/pendo.js’;z=e.getElementsByTagName(n)[0];z.parentNode.insertBefore(y,z);})(window,document,’script’,’pendo’);
            })(‘ご自身のサブスクリプションキーをここに入力’);
</script> 

アプリケーション内にユーザーのコンテキストができたら、スニペットの後半部分を使用して、ユーザー、アカウント、その他のユーザー属性情報をPendoに渡します。

<script>
               // 訪問者に関する情報が利用可能になるたびにこれを呼び出します // 値型には文字列、数値、またはブール値を使用してください。pendo.initialize({
visitor: {
                    id: ‘VISITOR - UNIQUE - ID’ // ユーザーがログインしている場合に必須
                    // role: // 任意
                    // 上記の予約済みの名称でない限り // 訪問者レベルのキーバリューはここで追加できます。
},
    account: {
        // id: ‘ACCOUNT-UNIQUE-ID’ // 強く推奨
        // name: // 任意
        // planLevel: // 任意
        // planPrice: // 任意
        // creationDate: // 任意
                    // 上記の予約済みの名称でない限り、// アカウントレベルのキーバリューはここで追加できます。
}
});
}); 
</script>

注:ご自身のPendoサブスクリプション内のインストール設定から、サブスクリプションキーを含む一意のインストールスニペットを必ず取得してください。

アプリケーションにPendoをインストールするために必要なコーディングはこれだけです。すべてのユーザーのトラッキングがすぐに開始され、アプリケーション内の任意の場所にある特定のフィーチャーをPendoのインターフェースでタグ付けし、過去にさかのぼって分析することができます。

セキュリティ

情報を第三者と共有する際、多くの場合セキュリティとプライバシーは最優先事項です。ユーザーデータやその他の識別情報は非常に機密性の高いものです。Pendoは、お客様のアプリケーションデータを安全なマルチテナント環境でホスティングし、お客様がご自身のユーザーデータのプライバシーを完全に制御できるように設計されています。Pendoでは収集したすべてのアプリケーションデータをSSL/TLS暗号化通信で送信し、AES-256で暗号化して保存しています。個別の名前空間を使用することに加えて、さまざまな論理的な分離手法を使用して顧客ごとにデータを格納しており、データの混在を防止しています。Pendoプラットフォームが効果的に機能するために必要となる唯一の重要な情報は、アプリケーション内の各ユーザー固有の識別子です。これは、ユーザーまたはアカウントの個人を特定できる情報である必要はなく、単に一意の識別情報となるものです。前述のとおり、多くのPendoユーザーは、Pendoインスタンス内のメールやアカウント名などの追加情報や、セグメントを構築するためのその他の属性情報を提供していますが、これは必須ではありません。

Pendoプラットフォームは、お客様のアプリケーションのフォームのフィールド内でユーザーが入力したテキストや情報を収集することはありません。デフォルトでは、ページ内のフィールド、ボタン、その他の要素の名前がアプリケーションデータと一緒に取得され、トラッキングが容易になりますが、ユーザーが入力した情報は含まれません。API内ですべてのテキストキャプチャを無効にすることは可能ですが、アプリケーションのデータ分析が著しく制限されるため、お勧めできません。

Pendoは、信頼できるサービスとしての5つの原則すべてをカバーするSOC 2 Type 2監査を毎年実施しています。この5つの原則とは、セキュリティ(Security)、可用性(Availability)、プロセスの完全性(Processing Integrity)、機密性(Confidentiality)、プライバシー(Privacy)です。現在までに、Pendoのレポートは、関連する統制に準じて例外なく発行されています。Pendoは年に2回、第三者によるペネトレーションテストを実施しています。Pendoのアプリケーションとデータは、Google Cloud Services(GCS)でホストおよび保存され、Googleの主要サービスと同じインフラを共有しています。GCSを使用することで、Pendoは、Google独自の製品と同じ信頼性、パフォーマンス、セキュリティ特性を備えた、堅牢なマルチテナントインフラで運用することができます。GCSは、SOC 2、SOC 3、ISO 27001、FISMA、およびPCIに準拠しており、Googleは毎年複数の独立したセキュリティ監査を実施しています。Google Cloud Servicesが受けたセキュリティおよびプライバシー関連の監査や認証に関する追加情報や最新情報は、Googleのセキュリティとコンプライアンスのサイトでご確認いただけます。

Pendoは、ユーザーと管理者がPendo内部でログインする仕組みとして、内部ログインまたは内部認証を使用する方法と、Google Authenticatorや他のSAMLアイデンティティプロバイダ(IdP)を介してログインする方法の2通りを提供します。Googleやその他のSAML IdPを使用すると、PendoプラットフォームやPendoが収集したアプリケーションデータにアクセスするすべてのユーザーに対して2要素認証を設定し、適用できます。

PendoとGDPR

PendoはGDPRへの準拠に取り組んでいます。Pendoはお客様と協力して、お客様とその顧客のデータのプライバシーとセキュリティを確保し、規制に対応するために多数のデータの取得、アクセス、リテンションに関するポリシーを整備、更新してきました。コンプライアンスへの取り組みの一環として、Pendoは以下を実施しています。

  • コンプライアンスとプライバシーに関するすべての取り組みを監督するデータ保護責任者を採用
  • プライバシーポリシーとCookieポリシーを更新して、透明性を高め、Pendoによるデータ使用方法をよりわかりやすく説明
  • 顧客情報を保存する当社のプロダクトおよびシステム全体でデータアクセスおよび消去リクエストをサポートするためのポリシーを導入

その他のセキュリティアップデートについては、Pendoのデータプライバシーとセキュリティページをご覧ください。

パフォーマンス

アプリケーションにサードパーティ製エージェントを追加する場合、もう1つ重要な考慮点はパフォーマンスです。多くの場合、アナリティクス、共有コンテンツ、その他のモジュールは、ウェブサイトやアプリケーションに重要な機能を追加しますが、パフォーマンスに重大な問題を引き起こすこともあります。このため、プロダクトチームは、追加された機能を維持したままパフォーマンスを犠牲にするか、ページの読み込みや処理、クライアント側のインタラクションに影響を与えない方法で機能を実装するために追加の開発作業を行うか、という難しい選択を迫られることになります。

Pendoエージェントは、アプリケーションにインストールすることによってパフォーマンスへの影響が生じるのを最小限に抑えるように設計された上で動作します。エージェント自体はわずか54KBで、ページの読み込み時間を妨げないように非同期で読み込みます。JavaScriptコードは、Amazon Cloudfrontコンテンツデリバリーネットワーク(CDN)でホストおよび展開され、非常に広範なサーバーネットワークとエッジキャッシングにより、高速な読み込み時間を実現しています。Amazonのサービスレベルアグリーメントにより、エージェント配信の99.9%のアップタイムが保証されています。エージェントがページで実行されている場合、Pendoへのデータ送信はキューに入れられ、2分ごとに安全に送信されます。また、ユーザーがページから移動したり、アプリケーションを離れたりした場合も同様です。データは送信前に圧縮されるため、1回に送信するデータは2KB未満になります。

ガイドは、クライアント側でも非常に高速にレンダリングされます。レイテンシテストでは、一般的な応答時間は1秒未満で、ガイドの99%が0.5秒未満で配信されています。

リモートプロシージャーコールの待機時間グラフ

注:他のSaaSプロダクトと同様に、エージェントとガイドの読み込み時間は、エンドユーザーのインターネット接続品質に依存します。

Pendo APIとその他のリソース

大幅なカスタマイズを必要とするユースケースに対し、Pendoはクライアント側でJavaScriptエージェントを操作し、ガイドの表示動作を制御し、サーバー側に保管されたアプリケーション/ユーザーデータにアクセスするためのAPIコールを提供します。ほとんどの実装では、これらのカスタマイズを使用する必要はありません。クライアント側での標準スニペットのインストールと、Pendoのインターフェースで利用可能なレポート作成およびデータのエクスポートで、大部分のユースケースに対応できます。クライアント側の特定のAPIコールの詳細やサンプルコードについては、弊社ヘルプセンターのAPIドキュメントをご覧ください。

クライアント側のエージェント管理に加え、PendoはAPIコール経由のサーバー側機能へのアクセスも提供しています。アプリケーション向けにイベントの生データをクエリおよびプルできる上、ガイド向けの非常に具体的な表示動作のカスタマイズ設定が可能です(例:特定のユーザーまたはユーザーセグメント向けガイド表示のカスタマイズ)。このレベルのアクセスは現在リクエストによってのみ利用可能です。追加の質問またはサーバーアクセスの有効化については、サポートにお問い合わせください

その他のリソース:

このガイドでは、Pendoをインストールして実行するための基本について説明しました。pendoエージェントをインストールすると、プロダクトチームはPendoのインターフェースに直接アクセスしてデータの閲覧、フィーチャーのタグ付け、アプリケーションに関する投票、アンケート調査やガイドの構築を開始することができます。その他のトピックや詳細なコンテンツは、ヘルプセンターでご覧いただけます。その他の情報については、以下のリンクをたどっていただくか、サポートに直接お問い合わせください。

  • インストール:インストールプロセスに関するその他の記事とよくある質問、さまざまなタイプのアプリケーションのコードサンプル
  • ベストプラクティス:Pendoの概要と、すぐに使い始めるためのヒントとコツ
  • 開発者向けリソース:詳細なAPIドキュメント、追加の高度な構成とセットアップのドキュメント
  • インテグレーション:Salesforceの権限とデータ連携に関する追加情報
  • アナリティクス:アプリケーション内のページ、フィーチャー、訪問者、アカウントの使用状況の測定
  • ガイド:アプリ内ガイドの概要、よくある質問、実装ガイドライン
  • セグメント:データ分析における行動・ユーザー属性を基にしたユーザーのセグメント化の定義と使用
  • 設定:ユーザー権限、ユーザーのブラックリスト登録、その他の一般的および管理業務に関するよくある質問