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

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 を使用します。