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

Google Ads API では、Google 広告アカウントと他のサービス アカウントのリンクがサポートされています。このガイドでは、バージョン v16 の 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 と MerchantCenterLinkService の変更

過去に MerchantCenterLinkService または AccountLinkService を使用して Google 広告アカウントを別のサービス アカウントにリンクしていた場合は、既存のアプリケーションを上記のワークフローのいずれかに移行する必要があります。次の表に、移行ステータスを示します。

リンク タイプ 新しいサービスでのサポート サポートの提供開始日: 備考
DataPartnerIdentifier v15 MerchantCenterLinkService から移行する
GoogleAdsIdentifier v16 AccountLinkService からの移行
MerchantCenterIdentifier v16 AccountLinkService からの移行
AdvertisingPartnerIdentifier v16 AccountLinkService からの移行
ThirdPartyAppAnalyticsLinkIdentifier × AccountLinkService を引き続き使用する