Common questions about setup, configuration, and usage
No. The script uses Google Ads Scripts (built into every Google Ads account) and writes to Google Sheets. No API setup required.
5 minutes for the script, plus first run time (30-90 seconds depending on account size).
Yes. Either install the script in each account separately, or use the MCC version to manage multiple client accounts from one script.
No. The script only reads data. It cannot and does not make any changes to your campaigns, ads, budgets, or settings.
Leave it blank. It's optional. You can add brand terms later if you want branded vs non-branded search analysis.
Start with 30 days (default). Only increase if you need longer trend analysis or have very low volume campaigns. More days = slower execution.
E-commerce if you sell products online (revenue tracking). Lead Gen if you track leads, bookings, quotes, form fills (no direct revenue per conversion).
Four reports are optional and disabled by default. Enable them on the Advanced tab by ticking the relevant box:
Note: These reports can be slow to run. Use with caution if running scripts in an MCC account with many clients.
By default, the script aggregates product data at the title level. If you have multiple products with the same title, all their data is combined onto a single row next to that title.
Turn on the "Title & ID page" option on the Advanced tab. This populates a hidden Title&ID tab that shows data at the product ID level instead of just title level. Note: This can be slow to run, so you may not want to use it in MCC accounts.
Yes. Turn on the "Title Campaign Matrix" option on the Advanced tab. This creates a hidden TitleCampaign tab that aggregates product data by both campaign name AND product title, so you can see which campaigns are driving performance for each product.
Turn on "ID buckets, Channel level" on the Advanced tab. This populates a hidden idChannel tab that aggregates data by product ID at the channel level, effectively splitting your product data between Performance Max and standard Shopping campaigns.
Check these in order:
Yes. The script collects data from both Performance Max and standard Shopping campaigns. Search terms, product data, and the 8-channel network breakdown all include Shopping campaign data alongside PMax.
"Blank" means no search term data is available for that traffic. Google withholds search terms for low-volume queries to protect user privacy. This is normal and happens to all accounts. The script categorizes these as "Blank" so you can see how much of your traffic has hidden search terms. You can't do anything about it - it's a Google privacy policy.
Yes. Google doesn't provide all data for all campaigns. For example, search term data might be limited if you're new or low volume.
Don't edit the data tabs - the script overwrites them. You can add your own tabs for analysis, but keep the script's tabs untouched.
Daily is recommended. Set up a time-driven trigger to run every morning at 6-7am. This keeps your data fresh without requiring manual runs.
Reduce the number of days you're pulling data for. Start with 14 days, increase if it works. Large accounts may need to stay at 7-14 days. Also try turning off optional reports on the Advanced tab.
Your SHEET_URL is either wrong, or you don't have edit permissions on that sheet. Make sure you own the sheet and the URL is correct.
Date ranges might differ, or you're comparing different metrics. The script pulls exactly what Google's API provides. Check that both are using the same date range and timezone.
Google sometimes makes API changes. Check the members area for updates or post your logs in the Q&A section.
Check the members area script section. New versions are announced there. You'll see version numbers (v90, v91, etc.).
Not immediately. Old versions keep working. Upgrade when you want new features or if your current version breaks due to Google API changes.
No. Your old sheet with historical data stays intact. You can copy the new script to use the same sheet, or create a new sheet for the upgraded version.
If your question isn't answered here, get help from the community: