CNAME を使用すると、Pendoのガイド配信とアナリティクスを独自のバニティURL経由でルーティングできます。例えば、product.example.comのように設定することで、リクエストがPendoのドメインからではなく、自社ドメインから発信されているように見せかけることができます。これにより、広告ブロッカーやウェブフィルターが有効になっている場合でも、ガイドやアナリティクスが訪問者に確実に届くようになります。この記事を使用して、組織レベルでCNAMEレコードを設定します。
前提条件
この記事を読み進める前に、まず「CNAMEの概要」をご覧ください。必要なものは以下のとおりです。
- 組織の管理者権限。サブスクリプション管理者はCNAME設定を更新する権限を持ちません。組織の管理者である必要があります。詳細については、「組織ユーザー」を参照してください。
- 組織でCNAMEが有効になっていること。開始前にPendoサポートチームに連絡して、この機能を有効にしてください。
- エンジニアリングリソース。DNSレコードの追加など、一部の手順には技術的な専門知識が必要です。
CNAME設定を追加する
新しいCNAMEを追加するには、Pendoに連絡し、CNAMEの使用を有効にするよう依頼してください。これが完了したら、次の手順を順番に実行してください。
ステップ1. 新しいCNAME設定を作成する
product.example.comなど、企業ドメインのサブドメインを指定してください(example.comはお客様の企業ドメインです)。これにより、バックエンドのルーティング処理によって引き起こされるパスの競合やレンダリングの問題のリスクが軽減されます。
- Pendoの画面右上隅から、 [設定]>[組織の設定]を選択してください。
-
CNAMEタブを選択してください。このページには、お客様の組織のサブスクリプション一覧が含まれています。CNAMEがオプションとして表示されない場合は、組織で有効になっていません。Pendoサポートチームに連絡して、有効にしてください。
- CNAMEを追加したいサブスクリプションにカーソルを合わせ、[CNAME設定を表示]を選択します。
- 右上隅にある[CNAME設定を管理]を選択します。まだCNAMEを設定していない場合は、[CNAMEを設定]を選択してください。
- ページ右上隅の[新規CNAME設定]を選択してください。
- CNAME設定のために名前、ドメイン、コンテンツプレフィックス、データプレフィックスを入力してください。
- [保存]を選択します。
ステップ2. DNSエントリを更新する
ステップ1を完了すると、PendoからDNSレコードが記載されたメールが送信されます。記録は以下の例と似たような形式になります。メールの詳細な指示に従ってDNSレコードを追加してください。
DNSレコードの例:
| ドメインの例 | CNAMEの例 | 説明 |
|---|---|---|
| content.product.example.com | 1234567812345678-content.example.pendo.io | このレコードは、お客様のPendoサブスクリプションコンテンツホストのカスタムCDN構成に付随するエイリアスです。 |
| _123456789abcdef.content.product.example.com | _fedcba987654321.ycvykntjsl.acm-validations.aws | このレコードは、Amazonに対しサブドメインの「制御の証明」を示すもので、これによりSSL証明書の自動生成が可能になります。 |
data.product.example.com |
u3fxrmuiqn95e67123t5j11td4q3dkiq-data.customer.pendo.io | このレコードは、Pendoのデータホスト「app.pendo.io」に付随するエイリアスです。 |
| _acme-challenge.data.product.example.com | _6522233c-26fd-11ee-a5d5-8c8caac1e6d0.12.authorize.certificatemanager.goog. | このレコードは、Googleの証明書マネージャーサービスに対しサブドメインの「制御の証明」を示すもので、これによりSSL証明書の自動生成が可能になります。 |
CAAレコードの例
ドメインでCAA(認証局認証)レコードを使用している場合は、続行する前に、以下のレコードをサブドメインに追加する必要があります。CAAレコードは、どの認証局(CA)がドメインの証明書を発行できるかを管理します。CNAMEの設定後にこれらのレコードを追加すると、マネージド証明書の更新で問題が発生し、Pendoの機能が損なわれる可能性があります。
| ドメイン | CAA | 説明 |
|---|---|---|
| product.example.com | 0 issue "pki.goog" | Googleの証明書マネージャーをCAとして使用できるようにします(データホスト)。 |
| product.example.com | 0 issue "letsencrypt.org" | Googleの証明書マネージャーをCAとして使用できるようにします(データホスト)。 |
これらのレコードは、親ドメインから削除された場合に備えて、サブドメインに追加されます。
DNS設定を確認する
レコードを追加した後、Pendoがそれらを検出するまで最大1時間かかります。セットアップが完了したことを確認するには:
- [設定]>[組織の設定]に移動します。
- [CNAME]タブを選択してください。
- DNSレコードを追加したサブスクリプションにカーソルを合わせてください。
- [CNAME設定を表示]を選択します。
- 右上の[CNAME設定を管理]を選択します。
- リストには、ステータスが[完了]のCNAMEが表示されます。
ステータスが[完了]と表示されると、Pendoから確認メールが届きます。これでステップ3に進む準備が整いました。
CNAME設定時のDNS検証問題の解決方法については、「DNSレコードのトラブルシューティング」を参照してください。
ステップ3. CSPルールを更新する
アプリケーションでコンテンツセキュリティポリシー(CSP)を使用している場合は、切り替える前に新しいCNAMEを許可するように更新してください。正しいCSPディレクティブがないと、Pendoがスクリプト、スタイル、画像、またはネットワークリクエストを読み込めなくなる可能性があります。
Pendoは、割り当てられたCNAME設定を含め、アプリとサブスクリプションの設定に基づいて必要なCSPディレクティブを生成します。
- [設定(Settings)]>[サブスクリプション設定(Subscription settings)]の順に進みます。
- [アプリケーション]タブを選択します。
- CNAMEを追加したアプリを選択します。
- [インストール設定]タブを選択します。
- [CSP設定]のセクションまでスクロールしてください。
- 生成されたCSPディレクティブをコピーするには、[コピー]を選択してください。
- コピーした指示をアプリケーションのCSP設定に追加してください。すでにPendo関連のCSPルールがある場合は、古いPendoホスト名(例:
cdn.pendo.ioや*.pendo.io)を置き換えて設定内の新しいCNAMEホスト名を使用します。 - 以前のホスト名を参照する古いPendo CSPルールはすべて削除してください。
- CSPの変更内容を、Pendoがインストールされているすべての環境(本番環境、ステージング環境など)に展開してください。
- ブラウザコンソールでガイド、アナリティクス、その他の機能がCSPエラーなしで読み込まれているか確認してください。
ステップ4. アプリにCNAMEを割り当てる
CNAME設定のステータスが[完了]になったら、それを使用する各アプリケーションに割り当てます。CNAMEは組織レベルで設定されますが、サブスクリプションの[CNAME設定]ページで割り当てた場合にのみアプリに適用されます。
- [設定]>[組織の設定]に移動します。
- [CNAME]タブを選択してください。
- CNAMEを設定したサブスクリプションにカーソルを合わせ、[CNAME設定を表示]を選択します。
- サブスクリプションCNAME設定ページで、更新したいアプリを探します。
-
[CNAME設定]列で、ドロップダウンを開き、[CNAME設定]を選択します。
注:アプリに既にCNAMEが割り当てられている場合は、ドロップダウンリストから別の設定を選択する前に、その行の編集アイコンを選択してください。
- 確認メッセージの手順を確認し、[確認]を選択してください。
[CNAME設定]列が更新され、そのアプリに割り当てられた設定名が表示されます。CNAMEが割り当てられると、PendoはサブスクリプションのPendo Web SDKを新しい設定で書き換え、新しいホスト名用のSSL証明書を自動生成し、データホストとコンテンツホストを更新して新しい値を反映させます。新たに公開されるすべてのガイドとコンテンツは新しいコンテンツホストを使用し、すべての新しいイベントはデータホスト経由で送信されます。サブスクリプション管理者はアプリケーション設定でデータホストおよびコンテンツホストの値を確認できますが、編集することはできません。
ステップ5.既存のガイドを再保存する
CNAMEを割り当てる前に公開されたガイドは、デフォルトのPendoホスト名を使用して作成されています。CNAMEに切り替えた後、これらのガイドは自動的に更新されず、古いURLからコンテンツを読み込む場合があり、その結果、正しく表示されないことがあります。切り替え後は、新しいホストからコンテンツが読み込まれるように、各公開ガイドを再度保存する必要があります。
- [Guides]>[ガイド]に移動してください。
- 更新したいガイドを見つけて開いてください。
- [コンテンツ(Content)]セクションの右上にある[自分のアプリで編集(Edit in my app)]を選択します。
- ビジュアルデザインツールバーから[保存]を選択します。
ヒント:ガイドページの上部にある[すべてのステータス]>[公開]でガイドのステータスで絞り込むことで、公開されているすべてのガイドを見つけることができます。
ステップ6. Pendoのインストールスクリプトを更新する
重要:CNAMEのセットアップが完了したことを知らせるメールをPendoから受信するまでは、Pendoインストールスクリプトを更新しないでください。メールの件名は「[subscription name]'s CNAME configuration [subdomain] is complete」の形式になります。
アプリケーション内でインストールスクリプトが追加されている箇所すべてにおいて、新しいコンテンツホストに合わせてスクリプトを更新してください。cdn.pendo.ioは、この作業中もデータが失われないように引き続き機能し、訪問者が中断することなくガイドを閲覧できるようにします。
Twilio Segmentと一緒にPendoをインストールしている場合、Segmentの送信先設定でCNAMEコンテンツホストフィールドを使用してコンテンツホストを追加することができます。詳細については、「Twilio SegmentによるPendoのインストール」をご参照ください。
Pendo MobileのCNAME
Pendo Mobileを使用する場合は、ステップ1 ~6を完了した後にAndroidとiOSのプラットフォーム固有の設定も行う必要があります。これらの更新を行わないと、モバイルアプリは引き続きPendoのデフォルトエンドポイントを使用します。
Android
アプリのAndroidManifest.xmlファイルの<application>タグ内に、<data.product.example.com>を設定したCNAMEに置き換えて以下のエントリを追加してください。
<meta-data android:name="pnd_device_url" android:value="https://<data.product.example.com>" />iOS
Info.plistファイルに以下のマッピングを追加し、<https://dataproduct.example.com>を設定した CNAMEに置き換えてください。
<key>PNDCNames</key>
<dict>
<key>PNDDeviceURL</key>
<string>https://data.product.example.com</string>
</dict>