Skip to content

Recommendations: read and pause auto-apply subscriptions #107

Closed

Description

@xgp

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 status ENABLED/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.

Activity

  1. kLOsk commented on Oct 27, 2026

    @kLOsk
    Owner

    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.
  2. xgp commented on Oct 27, 2026

    @xgp
    ContributorAuthor

    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.

  3. added a commit that references this issue on Oct 27, 2026
    2602580
  4. xgp commented on Oct 27, 2026

    @xgp
    ContributorAuthor

    Shipped in #118 (merged). The test follow-up from the review is #119.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions