You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Recommendations: read and pause auto-apply subscriptions #107
Situation. We keep Google's auto-apply recommendations off on every account an agent manages through AdLoop. Otherwise a budget raise, broad match keywords or new assets can land in the account without going through AdLoop's draft → preview → apply flow, and the audit log never sees them. Today a person has to check that in the UI (Admin → Auto-apply), and nothing in AdLoop can tell whether it has drifted back on.
What I tried.get_recommendations lists recommendations, but not the auto-apply subscriptions. get_change_history shows an auto-applied change only after it has happened.
What the API offers. The recommendation_subscription resource: one row per RecommendationType, with statusENABLED/PAUSED and modify_date_time. It's readable with GAQL and writable through RecommendationSubscriptionService.MutateRecommendationSubscription.
Proposed change.
Read:get_recommendation_subscriptions, listing every type and its status. A health_check line or warning when any subscription is ENABLED would catch drift early.
Write:draft_recommendation_subscriptions that sets a list of types to PAUSED. Setting them back to ENABLED lets Google change the account without a preview, so I'd put that behind a double confirmation, or leave it out entirely and keep it UI-only. Your call.
Happy to PR. This touches the safety model, so I'd rather agree on the shape here first, as CONTRIBUTING.md asks.
Yes to reading and pausing; please leave re-enabling out entirely. Turning auto-apply back on lets Google change the account without a preview, which is exactly what AdLoop's flow exists to prevent, so that stays a decision for the Google Ads UI.
Read:get_recommendation_subscriptions, listing every type with its status and modify_date_time. Put the drift warning in that tool's insights[], not in health_check; we'd like to keep that one about connectivity.
Write:draft_recommendation_subscriptions that can only set types to PAUSED. It reduces automation, so a single confirmation is fine. Please check in the v25 protos whether MutateRecommendationSubscriptionRequest has validate_only. If it does, the dry run uses it like other Google Ads writes; if not, use a re-read check like the one in Add draft_dismiss_recommendations #110.
Thanks. PR is up: #118. get_recommendation_subscriptions puts the drift warning in its own insights[], and health_check is untouched. draft_recommendation_subscriptions has no status parameter and the applier hard-codes PAUSED, so it can't re-enable anything. MutateRecommendationSubscriptionRequest does have validate_only in v25, so the dry run uses the normal validate-only path.
Activity
kLOsk commentedon Oct 27, 2026
Yes to reading and pausing; please leave re-enabling out entirely. Turning auto-apply back on lets Google change the account without a preview, which is exactly what AdLoop's flow exists to prevent, so that stays a decision for the Google Ads UI.
get_recommendation_subscriptions, listing every type with its status andmodify_date_time. Put the drift warning in that tool'sinsights[], not inhealth_check; we'd like to keep that one about connectivity.draft_recommendation_subscriptionsthat can only set types toPAUSED. It reduces automation, so a single confirmation is fine. Please check in the v25 protos whetherMutateRecommendationSubscriptionRequesthasvalidate_only. If it does, the dry run uses it like other Google Ads writes; if not, use a re-read check like the one in Add draft_dismiss_recommendations #110.xgp commentedon Oct 27, 2026
Thanks. PR is up: #118.
get_recommendation_subscriptionsputs the drift warning in its owninsights[], andhealth_checkis untouched.draft_recommendation_subscriptionshas no status parameter and the applier hard-codesPAUSED, so it can't re-enable anything.MutateRecommendationSubscriptionRequestdoes havevalidate_onlyin v25, so the dry run uses the normal validate-only path.Recommendations: read and pause auto-apply subscriptions (#118)
xgp commentedon Oct 27, 2026
Shipped in #118 (merged). The test follow-up from the review is #119.