Chromeのunloadイベント廃止とPendo

最終更新日:

Chromeは、ブラウザのunloadイベントを段階的に廃止しています。古いPendoのウェブアプリは、訪問者がページを離れる際に最後のデータバッチを送信するためにこのイベントに依存しています。Pendoがデフォルト設定を変更する前にアプリが作成された場合は、Chromeで引き続き完全なデータを収集できるように、[unloadイベントではなくvisibility APIを使用する(Use visibility API instead of unload event)]設定を有効にしてください。近年作成されたアプリでは、この設定はすでに有効になっています。

Chromeでの変更点

PendoのウェブSDKは、ブラウザ内でイベントをバッチ処理し、タイマーに基づいて送信します。ガイドイベントは発生から約500ミリ秒後に送信され、クリック、フォーカス、変更、トラックイベントは最大2分ごとに送信されます。訪問者がタブを閉じるか別のページに移動すると、SDKは未送信のイベントをすべて送信します。古いアプリでは、この最終送信はunloadイベントによってトリガーされます。

Chromeはunloadイベントを段階的に無効化しているため、このイベントが発生しないページ読み込みの割合が増加しています。該当するページ読み込みでは、未送信のイベントが失われます。次のような現象が見られる場合があります。

  • 想定よりクリック数やガイドイベントが少ない(特に別のページに移動するボタンで顕著)。
  • iframe内のマルチステップガイドで、次のステップが表示されない。
  • 訪問者が操作していたにもかかわらず、長時間操作がなかったように表示されたり、途中で途切れたりするリプレイ。
  • ブラウザコンソールに表示されるPermissions policy violation: unload is not allowed in this documentというメッセージ。

他のブラウザは現時点では影響を受けていません。Pendoは、正常に動作しているインストール環境の設定を自動的に変更することはありません。そのため、デフォルト設定が変更される前にセットアップされたアプリは、更新するまで引き続きunloadイベントを使用します。

visibility API設定を有効にする

この設定を有効にすると、ウェブSDKはページがアンロードされるときではなく、非表示になったときに未送信のイベントを送信します。この設定を変更するには、サブスクリプション管理者、またはそのアプリのアプリ管理者である必要があります。

  1. [設定(Settings)]>[サブスクリプション設定(Subscription settings)]に移動し、[アプリ(Applications)]タブを開きます。
  2. アプリを開き、[アプリの詳細(App Details)]タブで[エンジニア設定(Engineer settings)]を見つけます。
  3. [unloadイベントではなくvisibility APIを使用する]を有効にします。

この操作を、サブスクリプション内のすべてのウェブアプリに対して繰り返してください。この変更は、次にウェブSDKが読み込まれたときに反映されます。インストールスクリプトを変更したり、アプリを再デプロイしたりする必要はありません。

ウェブSDKをセルフホスティングしている場合は、設定を有効にした後、[Web SDK設定(Web SDK Settings)]から新しいコピーをダウンロードしてください。詳細については、「Pendo Web SDKのセルフホスティング」を参照してください。

注:この設定を有効にすると、一部のブラウザではページがバックフォワードキャッシュに保持されなくなるため、ブラウザの戻る・進むボタンを使った移動がわずかに遅くなる場合があります。この設定は、Page Visibility APIをサポートしていない旧式のブラウザでは機能しません。

アプリで使用されている設定を確認する

上記の手順でアプリの設定を開き、[unloadイベントではなくvisibility APIを使用する]のトグルを確認します。ウェブSDKをセルフホスティングしている場合は、ダウンロードしたpendo.jsファイル内のpreventUnloadListenerを確認することもできます。trueの場合、この設定は有効です。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています