サービス アカウントのリンク

Google Ads API は、Google 広告アカウントと他のサービス アカウントのリンクをサポートしています。このガイドでは、API を使用してアカウントをリンクする方法について説明します。

Google 広告アカウントを別のサービス アカウントにリンクする方法は 2 つあります。

招待フロー

招待フローは、Google 広告アカウントの管理者権限はありますが、サービス アカウントの管理者権限がない場合に使用します。このフローは、次の 2 つのシナリオで機能します。

  1. 2 つのアカウントをリンクし、サービス アカウントの管理者向けの招待状を作成します。プロダクト アカウント管理者が招待を承諾して、アカウントのリンクプロセスを完了します。
  2. プロダクト アカウントの管理者が 2 つのアカウントをリンクしたいが、Google 広告アカウントにアクセスできない。プロダクト アカウント管理者が招待を作成し、招待を受諾してリンク プロセスを完了します。

このシナリオでは、次のメソッドが使用されます。

シナリオ アクション 備考
シナリオ 1 招待状を作成する ProductLinkInvitationService.CreateProductLinkInvitation メソッドを使用して招待状を作成します。 ProductLinkInvitationstatus は設定しないでください。Google Ads API サーバーは、API 呼び出しが正常に完了すると、この値を REQUESTED に設定します。
招待のステータスを確認する GoogleAdsService.Search または GoogleAdsService.SearchStream を使用して product_link_invitation リソースをクエリし、ステータスを確認します。
シナリオ 2 招待状を取得する GoogleAdsService.Search または GoogleAdsService.SearchStream を使用して、product_link_invitation リソースをクエリします。 status = PENDING_APPROVAL をフィルタして、保留中の招待を承諾または拒否します。
招待を承諾または拒否する ProductLinkInvitationService.UpdateProductLinkInvitation メソッドを使用して、 ProductLinkInvitation のステータスを ACCEPTED または REJECTED に更新します。
招待状を取り消す 既存の ProductLinkInvitation を取り消すには、 ProductLinkInvitationService.RemoveProductLinkInvitation メソッドを使用します。

このワークフローで発生する一般的なエラーは次のとおりです。

エラーコード 説明
ProductLinkInvitationError.PERMISSION_DENIED お客様には、この操作を行う権限がありません。
ProductLinkError.NO_INVITATION_REQUIRED ユーザーは招待されたアカウントに対する管理者権限をすでに持っているため、招待を作成できませんでした。ユーザーは、ProductLinkService を使用して有効なリンクを直接作成する必要があります。

直接リンクのフロー

直接リンク フローは、Google 広告アカウントとサービス アカウントの両方に管理者としてアクセスできる場合に使用します。この場合は、招待状を送信するのではなく、Google 広告アカウントをプロダクト アカウントに直接リンクします。

このシナリオでは、次のメソッドが使用されます。

アクション 備考
有効なリンクを作成する ProductLinkService.createProductLink を使用して ProductLink を作成します。
有効なリンクを無効にする アクティブな ProductLink を削除するには、 ProductLinkService.removeProductLink を使用します。
アクティブなリンクを取得する GoogleAdsService.Search または GoogleAdsService.SearchStream を使用して、 product_link リソースをクエリします。

このワークフローで、次の一般的なエラーがスローされる可能性があります。

エラーコード 説明
ProductLinkError.CREATION_NOT_PERMITTED 直接リンク フローを使用してアカウントのリンクが試行されましたが、権限がないためサポートされていません。ユーザーは代わりに ProductLinkInvitationService を使用して招待フローを実行する必要があります。
ProductLinkError.INVITATION_EXISTS 保留中の招待がすでに存在するため、リンクを作成できません。

AccountLinkService の変更

AccountLinkService を使用して Google 広告アカウントを別のサービス アカウントにリンクする場合は、既存のアプリケーションを前述のいずれかのワークフローに移行する必要があります。次のリンクタイプについては、AccountLinkService から移行して ProductLinkService を使用します。

  • GoogleAdsIdentifier
  • MerchantCenterIdentifier
  • AdvertisingPartnerIdentifier

ThirdPartyAppAnalyticsLinkIdentifier には引き続き AccountLinkService を使用します。