サービス アカウントをリンクする

Google Ads API では、Google 広告アカウントを他のプロダクト アカウントにリンクできます。このガイドでは、API を使用してアカウントをリンクする方法について説明します。

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

招待フロー

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

  1. 2 つのアカウントをリンクして、サービス アカウントの管理者への招待状を作成します。サービス アカウント管理者が招待を承認して、アカウントへの関連付け@@を完了します。
  2. サービス アカウントの管理者が 2 つのアカウントのリンクを希望しているが、Google 広告アカウントにアクセスできない。サービス アカウントの管理者が招待状を作成し、その招待状を承認してアカウントへの関連付け@@を完了します。

このシナリオでは、次のメソッドを使用します。

シナリオ アクション 備考
シナリオ 1 招待状を作成する ProductLinkInvitationService.CreateProductLinkInvitation メソッドを使用して招待状を作成します。 ProductLinkInvitation の status は設定しないでください。Google Ads API サーバーは、API 呼び出しが正常に完了すると、これを REQUESTED に設定します。広告パートナー(AdvertisingPartnerLinkInvitationIdentifier)の招待状を作成する場合、v25 以降では advertising_partner_properties.allowed_domain が必須になります(v24 以前では省略可)。
招待のステータスを確認する GoogleAdsService.Search または GoogleAdsService.SearchStream を使用して product_link_invitation リソースをクエリし、そのステータスを調べます。
シナリオ 2 招待状を取得する GoogleAdsService.Search または GoogleAdsService.SearchStream を使用して、product_link_invitation リソースをクエリします。保留中の招待を承諾または拒否するには、 status = PENDING_APPROVAL をフィルタします。
招待を承諾または辞退する ProductLinkInvitationService.UpdateProductLinkInvitation メソッドを使用して、 ProductLinkInvitation のステータスを ACCEPTED または REJECTED に更新します。
招待を取り消す ProductLinkInvitationService.RemoveProductLinkInvitation メソッドを使用して、既存の ProductLinkInvitation を取り消します。

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

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

直接リンク フロー

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

このシナリオでは、次のメソッドを使用します。

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

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

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

Google 広告アカウントに関連付けられているすべての商品リンクは、product_link リソースに対する GAQL クエリを使用して取得できます。

SELECT
  product_link.product_link_id,
  product_link.type
FROM product_link

product_link.type フィールドは、リンクされた商品やサービスのタイプを示します。type に応じて、product_link リソース内の他のフィールドが入力され、リンクに関する詳細情報が提供されます。たとえば、タイプが DATA_PARTNER の場合、data_partner フィールドにはリンクされたデータ パートナー アカウントに関する情報が含まれます。

これにより、Merchant Center、Google 広告、広告パートナー、データ パートナーなど、Google 広告アカウントに直接リンクされている外部サービスとプロダクト アカウントのリストを取得できます。

AccountLinkService の変更

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

ThirdPartyAppAnalyticsLinkIdentifier の場合は、引き続き AccountLinkService を使用します。