Test
Matching the ad
Show each ad's visitors the page written for its angle, test on some ads, and break results down by ad.
Paid traffic rarely comes from one ad. A campaign runs several angles, a back-pain hook, a sleep hook, a gift hook, and each lands on the same lander. Mockly can match the page to the ad: each angle's visitors see the headline written for it, and an experiment's results split by ad, so you can see which angle a variant wins for.
What Mockly reads from the ad#
Ad platforms tag the links in your ads. Mockly reads four of the standard UTM tags, and names them as an ad buyer would:
| In the studio | Tag | Usually |
|---|---|---|
| Campaign | utm_campaign | The campaign, such as spring-sale |
| Ad | utm_content | The ad or creative, such as hook3_backpain_v2 |
| Keyword | utm_term | The search keyword |
| Medium | utm_medium | The kind of traffic, such as paid-social or cpc |
Where the visit came from, utm_source or the referring site, is a source, as before.
Parameters of your own#
If you tag ads your own way, such as ?angle=back-pain or ?ad_id=1234, name the parameters in Site settings, under Ad parameters: up to five, each starting with a letter, at most 40 characters, and not starting with utm_ or mk_. They're read from your next publish. Each version keeps its list, so History shows when it changed.
How values match#
Each value is kept in one form, so small differences don't split an ad in two: case doesn't matter, and spaces and punctuation other than ., _, and - count as a dash. Hook 3, hook 3, and hook-3 are the same ad. Letters of any language are kept, so an ad named in German or Japanese matches as it's named.
A rule matches a value two ways:
- is: the whole value, such as Campaign is
spring-sale. - contains: a part of it, such as Ad contains
backpain, which matcheshook3_backpain_v2,hook7_backpain, and every later version of that angle.
The visit keeps its ad#
A visitor's ad is read from the address they land on, and kept for the rest of the visit. So a lander's second page, its offer or its checkout, matches the same ad, though its address has no tags. A link with another ad's tags starts a new visit with that ad, rather than mixing the two.
A headline per angle#
Write a variant for each angle, then show it to that angle's visitors with a personalized group:
import { Experiment, Page, Variant } from "mockly"; export default function Lander() { return ( <Page title="Arc Pillow"> <Experiment name="hero-angle" goal="cta-click"> <Variant name="control"> <h1>The pillow that fixed how 40,000 people sleep</h1> </Variant> <Variant name="backpain"> <h1>Wake up without the back pain</h1> </Variant> <Variant name="sleep"> <h1>Fall asleep in minutes, stay asleep all night</h1> </Variant> </Experiment> <a href="#offer" track="cta-click"> Try it for 100 nights </a> </Page> );}On the Experiments page, under Setup, Personalized takes groups in order, each with the variant it sees:
| Group | Sees |
|---|---|
Ad contains backpain | backpain |
Ad contains sleep | sleep |
Visitors from a back-pain ad see backpain on every page of their visit; visitors from a sleep ad see sleep; everyone else is in the test. Ship control, and the groups keep their headlines with no test running. See Personalization for how groups work.
The variant is chosen on the server, so the page arrives with the right headline and nothing flickers. Mockly never writes words from the address into the page: an ad's visitors see a variant you wrote, never text someone put in a link.
Testing for some ads#
An experiment's Audience, under Setup, takes the same rules, to test only on some ads' visitors: Campaign is spring-sale, or Medium is paid-social. Visitors it isn't for see control and aren't counted. A visit without the tag isn't in a rule that names it. See Targeting.
Several values of one field match any of them, and several fields must all match, as with countries and devices.
Results by ad#
An experiment's Segments, under its results, break down by Campaign, Ad, Keyword, Medium, or each of your ad parameters, and compare the variants within each, as the whole is compared. The largest show by name; visits from no ad have their own row, No ad; the rest are summed as Others. For an experiment judged on revenue, such as purchase from a Shopify store, each row shows revenue per visitor.
Segments are for finding what to try next, not for picking a winner: see Segments.
On the Analytics page, Sources has Ad and Keyword beside Source, Medium, and Campaign, each a filter for the whole page. Analytics shows them as the ads wrote them.
Seeing what an ad's visitors get#
In the editor's preview, View as has From an ad, for each ad your live experiments' audiences and groups name. Pick one to see the page as that ad's visitors get it, without writing an address.
To check the live site, open it with the tags yourself, in a private window, so you're a new visitor:
https://your-site/?utm_campaign=spring-sale&utm_content=Hook3_BackPain_v2