このドキュメントでは、Subscription Linking を実装する際に発生する可能性のある問題のトラブルシューティングに役立つ情報を提供します。
読み込み中の画面で Subscription Linking の行動を促すフレーズが表示されたまま先に進まない
良くない例:
図 1. Subscription Linking の行動を促すフレーズが読み込まれない。
この問題を解決するには、次の点を確認してください。
- Publisher Center のパブリケーションの設定で、ページの生成元(テスト サブドメインを含む)を追加の URL として追加するようにしてください。
- URL のステータスが [確認] ではなく [確認済み] になっていることを確認します。
- 拡張アクセスの実装や Reader Revenue Manager Enterprise の実装の場合は、その実装用に構成した OAuth 2.0 クライアントの承認済みの JavaScript 生成元にページの生成元(テスト サブドメインを含む)を追加するようにしてください。この設定は Google Cloud コンソールで行う必要があります。
アカウントをリンクできませんでした
良くない例:
図 2. 「アカウントをリンクできませんでした」という問題。
この問題を解決するには、次の点を確認してください。
- Publisher Center で Subscription Linking の利用規約に同意する必要があります。そのためには、Subscription Linking の設定にアクセスし、[Subscription Linking の利用規約に同意する] をクリックします。
- Google アカウントがすでにリンクされている場合、定期購読を再度リンクしようとすると、エラー メッセージが表示されます。Google アカウントの定期購読ページで定期購読のリンクを解除してから、クライアント側の統合テストを繰り返し行う必要があります。
Subscription Linking API を呼び出すと権限エラーが発生する
良くない例:
コード | 403
|
メッセージ | 'readerrevenuesubscriptionlinking.readerEntitlements.update' がリソース で拒否されました(または存在しません)
|
この問題を解決するには、次の点を確認してください。
- 定期購読のリンクの設定で指定したプロジェクトと同じものを使用する必要があります。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
- ✅ 構成済みのパブリケーション ID のみを使用する:
利用資格を更新すると無効な引数エラーが発生する
良くない例:
メッセージ | エラー: リクエストに無効な引数が含まれています |
この問題を解決するには、次の点を確認してください。
entitlements
オブジェクトを正しい形式で提供する必要があります。例をご覧ください。product_id
はpublication_id:product
の形式で指定する必要があります。- ✅ 有効な例:
"product_id":"example.com:basic"
- ❌ 無効な例:
"product_id":"example.com"
- ✅ 有効な例:
検索結果で記事がハイライト表示されない
この問題を解決するには、次の点を確認してください。
- すべての記事に構造化データを追加する必要があります。リッチリザルト テストを使用して、構造化データを検証する必要があります。
- 読者の利用資格の更新に使用するプロダクト ID のセットに対応する有効な
productID
を構造化データに配置する必要があります。 - Search Console の「定期購読コンテンツ」のリッチリザルト レポートを使用して、構造化データに関連する問題を確認する必要があります。
Subscription Linking の行動を促すフレーズのメッセージの言語を変更できない
Subscription Linking の行動を促すフレーズの言語は、ユーザーの設定によって決まります。グローバルでオーバライドすることはできません。
言語が決まる仕組みは以下のとおりです。
ユーザーが Google アカウントでログインしている場合、Google アカウント設定で設定されているメイン言語(https://myaccount.google.com/language)が使用されます。
ユーザーがログインしていない場合、ブラウザまたはオペレーティング システムのメイン言語設定に基づいて言語が決まります。
Subscription Linking の行動を促すフレーズでは、一部の言語をサポートしていません。ユーザーが設定したメイン言語がサポートされていない場合、行動を促すフレーズの言語はデフォルトで英語に設定されます。