Add optional subject delegation support for service account authentication#4
Open
varelaerick wants to merge 2 commits intogoogleads:mainfrom
Open
Add optional subject delegation support for service account authentication#4varelaerick wants to merge 2 commits intogoogleads:mainfrom
varelaerick wants to merge 2 commits intogoogleads:mainfrom
Conversation
ZLeventer
reviewed
Apr 24, 2026
Contributor
ZLeventer
left a comment
There was a problem hiding this comment.
Subject delegation for service accounts is the right pattern for enterprise setups where the Google Ads account is managed through a Workspace domain with domain-wide delegation enabled.
The implementation correctly:
- Only activates when both
GOOGLE_ADS_SUBJECTand a service account credential file are present - Falls through to standard ADC when either is missing
- Uses
credentials.with_subject()which is the documented approach for Google service account impersonation
Good defensive check on creds_info.get('type') == 'service_account' — prevents the subject param from silently being ignored when someone accidentally sets it with OAuth user credentials.
The README addition with the full JSON config example is helpful — MCP server setup docs that include working copy-paste configs get adopted much faster.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add support for user impersonation via
GOOGLE_ADS_SUBJECTenvironment variable when using service account credentials.Changes:
_get_subject()function to read subject from environment_create_credentials()to apply subject delegation for service accountsUsage:
Set
GOOGLE_ADS_SUBJECT=user@example.comwhen using service account credentials with domain-wide delegation enabled.Requirements: