You paste 40 lines into Google Ads and the next day your spreadsheet has a dashboard. What happened in between, what permissions did you grant and what data left your account? This lesson opens up the mechanism so that you can trust it knowingly — and so that you know how to audit any script, ours or anybody else's.
The three pieces
| Piece | Where it lives | What it does |
|---|---|---|
| Bootstrap | In your Google Ads account (the bit you paste) | Holds your token, your spreadsheet URL and the minimum configuration; calls the loader |
| Loader | Inside the bootstrap | Checks the licence, downloads the script's code from our server and runs it in your account |
| Script code | On our server (ninjascripts.pro / the panel) | The actual logic: reports, rules, spreadsheet, emails. It is downloaded on every run and never stored in your account |
Why this way: the code is not exposed (it is the Suite's asset), you always run the latest version without reinstalling anything, and a bug is fixed on the server for every client at once.
What happens on each run
- Google launches your script at the scheduled time, as your user.
- The loader calls the panel with your licence token and the account ID: is this script active for this account?
- If it is, it downloads the code (obfuscated on the self-install scripts) and runs it in memory.
- The code reads the account, writes to your spreadsheet and sends emails if it is time to.
- When it finishes, it reports its usage (calls to external services) for your usage meter in the panel.
None of the code stays in your account; what Google stores is the bootstrap and the run logs.
The licence: what it checks and why it fails open
The panel answers "active", "suspended", or does not answer at all. The fail-open rule: if the panel does not answer (an outage, maintenance), the script runs anyway — watching over your account does not depend on our availability. Only an explicit "suspended" (failed payment, cancellation) stops it. On top of that, the loader checks that the account it is running in is one of the accounts on your licence: pasted into another account, it does not run.
Which data leaves your account and which does not
| Leaves | Does not leave |
|---|---|
| Your token and the account ID (for the licence) | Your campaigns, search terms, conversions, customers: they are processed inside Google and written into your spreadsheet |
| Usage counters (number of calls) | Your spreadsheet: it is yours, in your Drive; we do not read it unless you share it with us for support |
| Whatever you send to the AI if you switch on AI features (ad copy, search terms, no personal data) | Leads' personal data: Lead Rating keeps it in your spreadsheet; all that goes to Google is the GCLID with its value |
| In the server-side engines: aggregated data needed for the calculation, with no personal identifiers | Credentials: we never ask for passwords; everything runs as your user with Google's permissions |
The permissions you authorise
- Google Ads: read and modify the account (needed to pause, exclude, adjust). Analysis-only scripts ask for it too, because it is the single permission scripts have.
- Sheets: write to your spreadsheet.
- Mail: send you alerts (from your own user).
- External services (UrlFetch): download the code and, where it applies, call the AI or the panel.
All of it can be revoked from your Google account (Security → Your connections to third-party apps) or by deleting the script.
How to audit a script (any script)
- Read the bootstrap: what URL does it call? what does it send? An honest loader is short and readable.
- Preview and logs: what it reads, what it writes, where it calls.
- The account's change history filtered by the script: every change it makes is flagged.
- TEST mode (or the equivalent) for a few days: what it would have done.
- The spreadsheet: everything the script decides is written there, with a date.
If a third-party script does not let you do any of those five things, do not install it.
💡 Ninja trick: the technical detail that protects your account most is the one you cannot see: the Suite's scripts identify campaigns, ad groups and ads by their ID, never by name, and store the IDs of everything they touch in the spreadsheet. Rename whatever you like: nothing breaks and nothing gets applied to the wrong campaign.
What you should remember
- Bootstrap → loader → server-side code: the code never circulates and you always run the latest version.
- Licence by token and account, fail-open: if the panel goes down, the script runs.
- Your data is processed inside Google and goes into your spreadsheet; all that goes out is the licence check, usage and whatever you send to the AI.
- Audit any script: bootstrap, logs, change history, TEST mode, spreadsheet.