Capacity Controller Script

More leads than you can qualify, or more orders than you can fulfil, is a problem that some businesses could only dream of, while for others it’s a nightmare made real. What’s more, if you continue to run PPC ads after you’ve hit capacity, you’re basically throwing your money down the drain.

Trying to fine-tune your performance by limiting budget isn’t the answer, and keeping a constant eye on conversions to manually pause campaigns when you’ve hit capacity is a job in and of itself.

This capacity controller script is the ideal solution. As soon as you hit your conversion limit, it automatically pauses all paid search activity in your Google Ads account. And to make sure you’re not wasting any opportunities, it can automatically re-enable these paused ads at midnight so you’re back up and running for the next day.

What’s included?

How does the script work?

Set to run hourly, this script will keep track of your account-wide conversion volume throughout the day. Once your number of conversions that day is equal to or greater than the number you’ve fed it, it will pause all of your enabled campaigns, essentially shutting down your account for that day. This prevents you from receiving more conversions than you have the capacity for. It will also apply a label of your choice to these newly-paused campaigns for better visibility within your account.

Leaving your entire account paused indefinitely is not recommended, so the script can also be instructed to re-enable all of those campaigns at midnight. This ensures your account is bringing in conversions the following day.

Unless you opt-out of emails, you will receive an alert every time it pauses or re-enables your account, allowing you to keep track of the script’s activity, and giving you a general sense of how often and/or how quickly you are hitting your conversion capacity every day. You can also “dry run” the script, meaning it will still email you an alert when you’ve hit your conversion limit, but it won’t make any changes in your account.

How do I use it?

Create your label

The script will automatically mark all the campaigns it pauses with the label you feed it, but it can only do so if that label already exists in your Google Ads account. It also looks for this label to identify which campaigns to re-enable and un-label at midnight. If you tell the script to mark these campaigns, for example, “Paused Due To Near Conversion Limit,” but if that label doesn’t exist in your account, the script will error.

If you haven’t worked with labels before, simply select any campaign, ad group, or keyword in your Google Ads account. A blue bar will pop up above your cursor. Select the “Label” drop down menu, and then click “New Label.” You can then name the label, add a description, and select a color. Click “Create,” and then click off the label pop up. The label will now exist in your account without being applied anywhere.

Create your script

Next, onto the script itself. In the same account, select Tools & Settings > Bulk Actions > Scripts from the top bar. Click the blue plus button in the top left of the scripts page to create a new script, give it a sensible name to make sure you can find it again later if you need to, and grant it any authorization requests that pop up.

You will then need to paste all of the code below into the input box, and then modify the inputs section at the beginning of the script as below:

  • var_CONVERSION_LIMIT_INCLUSIVE = # This is the threshold after which you’d like to pause your account’s activity. If you have capacity for 100 conversions a day, for example, this will read var CONVERSION_LIMIT_INCLUSIVE = 100;
  • var LABEL_NAME = “” Type the name of the label you created in your Google Ads account within the speech marks. Double-check for typos – it needs to be verbatim or it will error!
  • var DRY_RUN = true/false The script has the ability to dry run, meaning it will email you if you hit your conversion limit but won’t make any changes within your account. To ensure it automatically pauses your account when you’ve hit your threshold, this should read var DRY_RUN = false;
  • var SEND_EMAILS = true/false What it says – a true/false choice of whether you’d like it to alert you by email when it makes changes to your account. This needs to be “true” for it to dry run effectively.
  • var EMAIL_RECIPIENTS = “” Add the email addresses of the people you’d like to be notified between the speech marks as a comma-separated list. For example, “,”
  • var ENABLE_CAMPAIGNS = true/false This controls whether you’d like the script to re-enable at midnight – if so, this should be set to “true.” This one is especially important as you risk unwillingly pausing all your campaigns until you manually re-enable them.

Schedule it to run

Once you’ve modified your inputs, click “SAVE” at the bottom and return to the scripts on the main page. Find your newly created script and set its frequency (third column as standard) to hourly – you want this script to be checking if your account has hit its conversion limit as often as possible.

And you’re good to go!

Three things to keep in mind with this script:

  1. It will only run every hour as that’s the most frequent script scheduling option in Google Ads; the script won’t pause your account at the exact number of conversions every time. If you’ve exceeded your limit ten minutes into the hour, you will still be running ads and driving conversions for 50 minutes after that point.
  2. If you have a noticeable conversion lag, conversions will still increase after your last paid click of the day.
  3. If you’re importing conversion data from Google Analytics, your conversion numbers reported in Google Ads will always lag a few hours behind real-time as the transfer is not instantaneous. If this is how you’re tracking your conversions, the script will respond to hitting your conversion limit with a considerable delay during which time you may be above that limit.

The Capacity Controller Script code