トラブルシューティング

このドキュメントでは、Subscription Linking を実装する際に発生する可能性のある問題のトラブルシューティングに役立つ情報を提供します。

読み込み中の画面で Subscription Linking の行動を促すフレーズが表示されたまま先に進まない

良くない例:

読み込み中を示すシンボル

図 1. Subscription Linking の行動を促すフレーズが読み込まれない。

この問題を解決するには、次の点を確認してください。

  • Publisher Center のパブリケーションの設定で、ページの生成元(テスト サブドメインを含む)を追加の URL として追加するようにしてください。
    • URL のステータスが [確認] ではなく [確認済み] になっていることを確認します。
  • 拡張アクセスの実装や Reader Revenue Manager Enterprise の実装の場合は、その実装用に構成した OAuth 2.0 クライアントの承認済みの JavaScript 生成元にページの生成元(テスト サブドメインを含む)を追加するようにしてください。この設定は Google Cloud コンソールで行う必要があります。

アカウントをリンクできませんでした

良くない例:

アカウントをリンクできませんでした

図 2. 「アカウントをリンクできませんでした」という問題。

この問題を解決するには、次の点を確認してください。

  • Publisher CenterSubscription Linking の利用規約に同意する必要があります。そのためには、Subscription Linking の設定にアクセスし、[Subscription Linking の利用規約に同意する] をクリックします。
  • Google アカウントがすでにリンクされている場合、定期購読を再度リンクしようとすると、エラー メッセージが表示されます。Google アカウントの定期購読ページで定期購読のリンクを解除してから、クライアント側の統合テストを繰り返し行う必要があります。

Subscription Linking API を呼び出すと権限エラーが発生する

良くない例:

コード 403
メッセージ 'readerrevenuesubscriptionlinking.readerEntitlements.update' がリソース
'//readerrevenuesubscriptionlinking.googleapis.com/publications/example.com/readers/10078823/entitlements'
で拒否されました(または存在しません)

この問題を解決するには、次の点を確認してください。

  • 定期購読のリンクの設定で指定したプロジェクトと同じものを使用する必要があります。Publisher Center で定期購読のリンクを設定する際には、プロジェクト番号を使用します。プロジェクト番号は、プロジェクト ダッシュボードで確認できます。
  • プロジェクトで Subscription Linking API を有効にする必要があります。
  • Identity and Access Management(IAM)のプロジェクトで、サービス アカウントに定期購読リンク管理者ロールを付与する必要があります。ロールの変更がシステムに反映されるまでには時間がかかることがあります。サービス アカウントに適切な IAM ロールが付与されていることを確認できた後も、API 呼び出しを行う際に 403 エラーが発生した場合は、しばらくしてからもう一度リクエストをお試しください。
  • 使用するサービス アカウントが不明な場合や、サービス アカウントに必要な IAM ロールが付与されているかどうかがわからない場合は、定期購読のリンクの設定を行うプロジェクトから Policy Analyzer を使用します。次のクエリ パラメータを使ってカスタムクエリを作成し、実行してください。

    パラメータ 1 ロール
    ロール Subscription Linking 管理者
  • Subscription Linking API を呼び出す際は、適切なサービス アカウント キーを使用する必要があります。お使いのサービス アカウント キー(JSON ファイル)について、以下のプロパティを確認してください。

    • type: service_account とします。
    • project_id: 定期購読のリンクの設定で指定したプロジェクト番号プロジェクト ID でなければなりません。
    • client_email: IAM のプロジェクトで定期購読リンク管理者のロールが割り当てられているサービス アカウントと同じものにする必要があります。
  • Google OAuth 2.0 のトークン エンドポイント(https://oauth2.googleapis.com/token)でアクセス トークンを取得した場合、Subscription Linking API を呼び出す際に、そのトークンが期限切れではなく有効であることを確認してください。トークンの有効期限が切れている場合は、新たに取得する必要があります。

  • REST API を使用する場合は、定期購読のリンクの設定で指定したパブリケーション ID を使用する必要があります。たとえば、パブリケーション ID が example.com の場合、これがリクエスト URL に含まれていなければなりません。

    • ✅ 構成済みのパブリケーション ID のみを使用する: publications/example.com/readers/10078823/entitlements
    • 定期購読のリンクの設定で指定したパブリケーション ID 以外は使用しない: publications/example-staging.com/readers/10078823/entitlements
    • ❌ パブリケーション プロダクトはリクエストに含めない: publications/example.com:premium/readers/10078823/entitlements

利用資格を更新すると無効な引数エラーが発生する

良くない例:

メッセージ エラー: リクエストに無効な引数が含まれています

この問題を解決するには、次の点を確認してください。

  • entitlements オブジェクトを正しい形式で提供する必要があります。をご覧ください。
  • product_idpublication_id:product の形式で指定する必要があります。
    • ✅ 有効な例: "product_id":"example.com:basic"
    • ❌ 無効な例: "product_id":"example.com"

検索結果で記事がハイライト表示されない

この問題を解決するには、次の点を確認してください。

Subscription Linking の行動を促すフレーズのメッセージの言語を変更できない

Subscription Linking の行動を促すフレーズ

Subscription Linking の行動を促すフレーズの言語は、ユーザーの設定によって決まります。グローバルでオーバライドすることはできません。

言語が決まる仕組みは以下のとおりです。

  1. ユーザーが Google アカウントでログインしている場合、Google アカウント設定で設定されているメイン言語(https://myaccount.google.com/language)が使用されます。

  2. ユーザーがログインしていない場合、ブラウザまたはオペレーティング システムのメイン言語設定に基づいて言語が決まります。

Subscription Linking の行動を促すフレーズでは、一部の言語をサポートしていません。ユーザーが設定したメイン言語がサポートされていない場合、行動を促すフレーズの言語はデフォルトで英語に設定されます。