Test validity check: were the results contaminated by mid-test changes
A read-only audit of Google Ads and Meta change history, experiments and conversion tracking during a test window, ending with a Valid, Valid with caveats or Rerun needed verdict per test.
When to use it
When you are about to report A/B test results to a client and need to know if changes made mid-test, such as budget, bid or tracking edits, skewed the outcome.
What you get
A timeline table of every change that could bias each test arm, plus a Valid, Valid with caveats or Rerun needed verdict per test and a list of blind spots.
Does it change anything in my account?
No. The assistant only reads your data and reports back.
Works with
Google Ads, Meta Ads
Fill in before sending
[client name][start date][end date][Google Ads account][Meta ad account]
Before I report test results to client [client name], check whether the tests were contaminated. This is a read-only review. Make no changes.
Test window: [start date] to [end date].
Google Ads account: [Google Ads account], Meta ad account: [Meta ad account].
Tests and arms: [test name: arm A = campaign or ad set name/ID, arm B = campaign or ad set name/ID; repeat per test].
1. Confirm the accounts with list_accounts and list_meta_ad_accounts, and match each arm I listed to its real ID with list_meta_campaigns and list_meta_adsets (for Google, use the IDs that appear in the change history). If an arm name does not match anything, stop and ask me.
2. Google: pull get_change_history. It only reaches back 30 days, so if [start date] is older than that, tell me which part of the window you could not see. Filter the rows yourself to the test dates and the arm campaigns. Also run list_experiments (action list) and note any experiment that overlapped the window or locked an arm.
3. Meta: pull meta_change_history with since and until set to the test window, then keep only events on the arm campaigns, ad sets and ads.
4. List every change that could bias a result:
- budget changes above 20%
- bid strategy or target CPA/ROAS changes
- ads added, paused or edited
- keyword, negative keyword, audience or targeting edits
- conversion action or event changes
5. Tracking: run conversion_tracking_health and list_conversion_actions for the window on Google. On Meta, check list_meta_pixels (last fired) and list_meta_custom_conversions (never fired). A paused or silent conversion action must not be mistaken for a losing variant. Meta activity history does not show every pixel or event change, so if tracking looks off but no matching change is logged, say it could not be traced.
Output a timeline table with these columns: date, platform, user, entity, change, old value, new value, affected test arm, and impact (High, Medium or Low). High means the change hit only one arm, or it touched budget, bidding or conversions. Account-level changes affect all arms equally; mark them as such.
End with a verdict per test: Valid, Valid with caveats, or Rerun needed, with one line of reasoning each. List any blind spots (days outside the Google 30-day history, untraceable tracking changes) under the verdicts.
Combines smart negative suggestions with the full search terms report to flag zero-conversion and overpriced terms, then previews a grouped batch of negatives that protects your brand and converting keywords.
When to use itWhen your Google Ads search terms report shows money going to irrelevant or expensive searches and you want to cut that waste safely.
Runs pacing on every connected client account, compares projected month-end spend with each client's agreed monthly cap, and proposes CPA-ranked daily budget changes within guardrails, approved account by account.
When to use itWhen you manage several client accounts and need to know before month-end who is overspending or underspending against the agreed budget.