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

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

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

招待フロー

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

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

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

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

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

エラーコード 説明
ProductLinkInvitationError.PERMISSION_DENIED お客様には、この操作を実行する権限がありません。
ProductLinkError.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 保留中の招待状がすでに存在するため、リンクを作成できません。

`product_link` リソースに対して GAQL クエリを実行すると、Google 広告アカウントに関連付けられているすべてのサービスリンクを取得できます。

    SELECT
      product_link.product_link_id,
      product_link.type
    FROM product_link

product_link.type フィールドは、リンクされたサービスまたはサービスのタイプを示します。type によって、product_link リソース内の他のフィールドが入力され、リンクの詳細が提供されます。たとえば、タイプが THIRD_PARTY_APP_ANALYTICS の場合、third_party_app_analytics フィールドにはアナリティクス プロバイダに関する情報が含まれます。

これにより、Google Play、データ パートナー、サードパーティ製アプリ解析プラットフォームなど、Google 広告アカウントに直接リンクされている外部サービスとアプリケーションのリストを取得できます。

AccountLinkService の変更

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

  • GoogleAdsIdentifier
  • MerchantCenterIdentifier
  • AdvertisingPartnerIdentifier

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