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

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

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

招待フロー

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

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

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

シナリオ アクション 備考
シナリオ 1 招待状を作成する ProductLinkInvitationService.CreateProductLinkInvitation メソッドを使用して招待状を作成します。 ProductLinkInvitation の status は設定しないでください。API 呼び出しが正常に完了すると、Google Ads 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 に更新します。
招待を取り消す 既存の ProductLinkInvitation を取り消すには、 ProductLinkInvitationService.RemoveProductLinkInvitation メソッドを使用します。

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

エラーコード 説明
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 を使用します。