Skip to main content

Google Ads

5 of 7 Google Ads experiments stuck in INITIATED; errors only visible in the API

6 min read

An account we audited had created seven campaign experiments in the last week of August. On the Experiments page, the default card view, they looked like seven experiments. Some had dates. Some had "Active" chips. Nothing was flagged.

Here is what they actually were.

Experiment

Created

Scheduled to run

Status via API

What the UI showed

EXP

27 Aug

27 Aug – 27 Aug

REMOVED

Gone

Brand Lift

28 Aug

28 Aug – 22 Oct

INITIATED

Card with dates

BID STRATEGY

29 Aug

29 Aug – 4 Sep

ENABLED → PROMOTED

Active

CPA LIFT

1 Sep

1 Sep – 26 Oct

INITIATED

Card with dates

CPA L

1 Sep

1 Sep – 26 Oct

INITIATED

Card with dates

A LIFT

1 Sep

1 Sep – 26 Oct

INITIATED

Card with dates

CPA

2 Sep

2 Sep – 27 Oct

INITIATED

Card with dates

CL

2 Sep

2 Sep – 27 Oct

ENABLED

Active

Five of seven were stuck in INITIATED, the state an experiment enters when it has been created but the trial campaign hasn't finished being built. Normally that lasts minutes. These had been there for up to a week.

Where the errors actually were

Switching the Experiments page from card view to table view changed the status column for those five to a red chip: Failed due to errors. That's the only place in the interface it appears. No email. No notification. No banner on the campaign. The card view, which is the default, shows nothing.

The errors themselves (what actually went wrong), are visible in exactly one place: an API method called ExperimentService.list_experiment_async_errors. It returns the campaign-cloning failures that stopped the trial campaign from being created. We called it. The errors were Google-side: the clone operation had failed on something in the base campaign's configuration, and the experiment had simply stopped there.

Where you'd look

What you'd see

Experiments page, card view (default)

Nothing wrong

Experiments page, table view

"Failed due to errors"

Campaign page of the base campaign

Nothing

Email / notifications

Nothing

list_experiment_async_errors (API)

The actual error

An experiment that fails on creation costs nothing, which is presumably why nobody prioritised alerting on it. But it also produces no data, and someone who believes it's running is making decisions on the assumption that a test is in progress when it isn't.

The one that was running was in the wrong place

CL was a bidding experiment: Manual CPC against Maximise Conversions on a panel campaign. Good question, correctly set up, running. It was on the regional panel campaign.

Campaign

Daily spend

Daily clicks

Notes

Panel, Regional (where the experiment was)

$31

~12

Panel, Metro (where it should have been)

$154

~66

Five times the volume

After eleven days, the experiment's trial arm had $316 of spend and eleven clicks. At that rate it would never reach a readable sample. A bidding test needs conversions, ideally dozens per arm; this one had two.

And when it did produce a reading, it pointed the opposite way to the battery test on the same question:

Experiment

Category

Result

Direction

BID STRATEGY

Battery

Treatment arm won: +10% conv, −67% cost/conv

Automated bidding wins

CL

Panel

Control arm winning: −67% conv, +13% cost/conv

Manual CPC wins

Two categories, two answers. Both are probably right for their category. But CL's answer is built on eleven clicks and shouldn't be trusted yet, and it can't be trusted soon, because the campaign it's on doesn't generate enough traffic to ever make it trustworthy.

Experiments split the thing they're testing

There's a structural problem with campaign experiments that isn't in the documentation prominently enough.

A campaign experiment clones the base campaign into a trial campaign and divides traffic between them. It also divides conversions. Smart bidding strategies (Target CPA, Maximise Conversions), need a minimum volume of conversions to work, commonly cited as around 30 per month per campaign.

Base campaign alone

After 50/50 experiment

Conversions per 30 days

33

~16 per arm

Above the smart-bidding threshold?

Just

No, both arms

So an experiment designed to test whether Target CPA works can push both arms under the volume Target CPA needs to work, and produce a result that says "Target CPA doesn't work" for a reason that has nothing to do with Target CPA.

This is why the experiment framework is the wrong tool for a class of tests it appears designed for.

Ad variations don't have this problem

Google Ads has a second experiment type, quieter and less flexible: the ad variation. It doesn't clone the campaign. It modifies the ads in place (text, or the final URL), and serves the modified version to a percentage of auctions within the same campaign. One campaign, one budget, one bid strategy, one conversion pool.

Campaign experiment

Ad variation

What it can change

Anything

Ad text, final URL, display path

Clones the campaign

Yes

No

Splits the conversion signal

Yes

No

Runs across multiple campaigns at once

No

Yes

Can test bidding

Yes

No

Can test landing pages

Yes, expensively

Yes, cheaply

Can be created via the API

Yes

No

Failure mode

Silent INITIATED

Ads sit in review

For a landing page test (which is what most "experiments" in most accounts actually are), the ad variation is strictly better. It doesn't disturb bidding, it doesn't halve the signal, and it can enrol six campaigns in one experiment so the sample accumulates faster.

The API cannot create ad variations

If you automate account management, this matters. In the Google Ads API (v25 as of September 2026):

What exists

What doesn't

experiment_service, experiment_arm_service, campaign_draft_service

Any ad variation service

ExperimentArm with fields: campaigns, control, traffic_split

Any URL field on ExperimentArm

AD_VARIATION in ExperimentTypeEnum, for reading existing ones

Any create path for AD_VARIATION

The enum value is what makes it confusing: you can query ad variations that exist, so it looks like the type is supported. It is, for reads. Creation is interface-only. Plan pipelines accordingly.

The ad variation failure mode

Ad variations don't fail silently. They wait. A variant ad is a new ad as far as policy review is concerned, even if only the URL changed. It goes into the review queue.

Event

Time

Variations created

Friday, 20:15

Still REVIEW_IN_PROGRESS

Friday, 22:06

Approved

Some time before Saturday, 16:30

Total delay

~20 hours

During those twenty hours the control arm served normally and banked a full day's conversions. When the variant finally started, a naive lifetime comparison read:

Arm

Clicks

Conversions

CVR

Control

380

15.4

4.05%

Variant

90

1.0

1.11%

Apparent effect

−73%

Entirely an artefact of the staggered start. On the first day both arms actually served, it was 91 clicks against 83, one conversion each. The fix is to window both arms from the variant's first serving day and discard everything before. Build that into your reporting; don't rely on remembering it.

The checklist

#

Do this

Because

1

Use table view, not card view, on the Experiments page

Status is a column there and nowhere else in the interface

2

If you have API access, call list_experiment_async_errors after every creation

It's the only place the error text lives

3

Put the test on the campaign with the volume

A test that can't reach significance in a month isn't a test

4

Don't run a campaign experiment on a campaign near its smart-bidding threshold

You'll break the bidding to test the bidding

5

For URL or creative changes, use an ad variation

No signal split, multi-campaign, cheaper

6

Expect a review delay on variations; window results from the variant's first serving day

The staggered start produces a fake result otherwise

7

Delete failed experiment shells

They confuse the next person, and eventually you

The legacy tail

One more thing the table view showed. Alongside the seven recent experiments were eleven older ones going back to 2018 (video experiments from 2020, landing page tests from 2019, a bidding test from 2023), several still marked "Active" with an end date of 2037. They weren't doing anything. They were just never closed.

Experiment

Started

Status

[G] EOFY & Generic A/B test June

Jun 2020

Active, end 2037

QLD – Generic Solar (Exact) – FORM LP

Jun 2019

Enabled

WA – Generic Solar (Broad)

Feb 2022

Enabled

NSW – Brand (Phrase) – Target CPA

Aug 2023

Enabled

Eighteen experiments in the list. Two doing anything. That's the cost of a feature that never tells you when it's finished, and it is, in miniature, the story of most Google Ads accounts.

Related services

Filed under

google-adsexperimentsad-variationsapitestingsmart-bidding

Keep reading

More from Insights