Skip to main content
menu_icon.png

Everything you need to switch from Optimizely Classic to X in one place: See the Optimizely X Web Transition Guide.

x
Optimizely Knowledge Base

URL Targeting: Choose where your experiment runs for Optimizely X

There are two versions of Optimizely
What version do you have?
X
Optimizely Classic
This is what the Optimizely Classic user interface looks like.
Optimizely X
This is what the Optimizely X user interface looks like.
. If you're using Optimizely Classic, click here.
relevant products:
  • Optimizely X Web Experimentation
  • Optimizely X Web Personalization
  • Optimizely X Web Recommendations

This article will help you:
  • Choose which URLs a visitor needs to use to determine whether a Page should activate on. 
  • Use the URL match types available in Optimizely: simple, exact, substring, and regular expression (RegEx)

URL Targeting at a glance

Use the match types described here to target a specific URL or a group of URLs to activate Pages.

​Key tips

  • Use simple match when testing a single page
  • Use exact match only when adding query parameters or hash parameters to the URL significantly changes how the page displays 
  • Use substring match for experiments that change one element across multiple pages or your entire site
  • Use regular expression to target complicated URL structures 

What to watch out for

Here's where to find URL targeting:

  • From the Home page > select Implementation implementation icon.jpg on the left nav bar > select the Page > click on "Page Settings"

  • From the Experiment/Campaign Overview page, select Targeting > URL Targeting > click on Actions,actions_icon.jpg , located on the left of Page > select View.

 
Note:

Use URL targeting to determine where Pages should run.  Pages will need to be added to your campaign or experiment in order to be used as targeting. You can read more about Pages here.

Here's how to use URL targeting to edit a sitewide element like a button in the navigation bar or a CTA in the footer.

You can also learn how to build an experiment in our Optimizely Academy.

Tip:

Have a question about targeting? Head over to the Optimizely Community to join the discussion.

URL match types

In the URL Targeting menu, you can enter URL match specifications that tell Optimizely where the experiment or Page should run. 

url match type overview.jpg

Each URL match you enter can be one of four types:

  • Simple match: This is the default match type. Simple match ignores query and hash parameters.

  • Exact match: Use only when adding query parameters or hash parameters to the URL will significantly change how the page displays for visitors. To target visitors who are using a certain query parameter, use an Audience Condition instead of an exact match

  • Substring match: Use to match specific strings of texts within a URL. It's useful for experiments that change the same element site-wide or on multiple URLs.

  • Regular expression: Use to target complicated URL structures that aren't easily captured by the other URL match types.

 
Note:

Regular expressions are case-sensitive. Simple, exact, and substring matches are not case-sensitive.

Read on to learn more about each match type.

Simple match

Simple match is the default URL match type, and it's ideal for activating Pages on a single URL. This match type ignores query and hash parameters. If a visitor is required to have a specific query or hash parameter then you may want to consider using a Substring, Exact, or Regular Expression match. A simple match will run when visitors land on a URL, even if it has these variations:

To use simple match, enter the full URL of the page you want to target—the absolute URL, not a relative URL like /products/general.html. Here are examples of common variants that will pass a simple match:

simple match.jpg

These examples match because they run on the same page as the original URL. Even adding query (?) or hash (#) parameters doesn't generally change the page.

In the example below, you will notice that example.com/ matches even if it does not have a query parameter. This is because Simple Match ignores query and hash parameters even if they are part of the URL that you are using for targeting.

simple match example 2.jpg

What won't match the original? Examples of changes that simple match won’t ignore include:

  • Changes in subdomain (aside from www).

  • Adding .html or other extensions.

  • Adding or changing subdirectories.

Here are some examples that won’t pass a simple match:simple match fail match.jpg

These examples won’t match the original URL because they are not the same page:

Example: User account page with many dynamic/unique query string values

You want to run a Page on a “My Account” page for all of your customers. However, every account URL includes query parameters that are unique to a particular user’s information. A sample Account URL would be:
www.example.com/myaccount?account_id=1234&location=san_francisco

To set it up:

  • Identify the static and dynamic portions of the account page URL.

  • In this case, the URL to the left of the “?” is always the same (static), and the parameters to the right of the “?” are unique to each user (dynamic).

  • In URL Targeting, select Simple match from the dropdown. Add the account URL, excluding all query string parameters (in this case, www.example.com/myaccount).

  • A simple match ignores anything to the right of the question mark in the URL (all query string parameters). In this case, ?account_id=1234&location=san_francisco would be ignored, which is what we want since this is the dynamic portion of the account page URL.

  • This setup ensures that your Page will run on all account pages, regardless of the unique user who is viewing the page.

simple match example 1.jpg

Example: Visitors who land on only two of many landing pages

You have about 10 landing pages live at any one time, and you want to run an A/B test on only two of these URLs. You know there will always be unique UTM/query parameters added to the URL from paid search traffic, but you want the Page to activate regardless of which campaign a visitor comes from.

To set it up:

  • Identify the two specific URLs you want to test and how they differ from other landing page URLs on your domain.

  • In URL Targeting, select Simple match from the dropdown and add the URL of the first landing page.

  • Click the “+” icon and add the URL of the second landing page as a Simple match.

  • Because a simple match ignores anything to the right of the question mark in the URL (all query string parameters), this set-up ensures the Page will activate only if a visitor lands on the first landing page URL or the second landing page URL.
    simple match multiple landing pages.jpg

Simple match may also be handy for excluding certain URLs from a substring match that targets many pages at once.

url targeting exclude url.jpg

In these examples, those that includehttp://www.example.com/ignorethispage are excluded because the targeting is set to exclude that URL as a simple match.

Exact match

Exact match will only match when users load the exact URL. 

Like simple match, exact match ignores trailing slashes at the end of your URL, http/https protocols, and www. Also like simple match, exact match doesn’t ignore subdirectories, extensions, or changes in subdomains (www.example.com vs blog.example.com or www.example.com/blog).

Unlike simple match, exact match doesn’t ignore changes to query or hash parameters.

Enter a full URL when using exact match—the absolute URL, not a relative URL like /products/general.html.

exact match.jpg

In this example, www.example.comhttp://example.com/https://www.example.com would be included because exact match accepts these common variations.

These URLs would be excluded:

If you specify a query or hash parameter, exact match allows only that exact parameter into the experiment.

exact match 2.jpg

Exact match may come in handy when you want to exclude specific query or hash parameters from a simple match.

exact match exclude.jpg

Substring match

Substring matches URLs that contains a set of characters that you specify. This set of characters is called a substring and can be present anywhere in the URL. You can access this targeting by select "A set of URLs" under Page Type

a set of urls.gif

For example, if you want to target an element on all product pages, look for a part of your URL that is consistent across all product pages. If the substring '/products' is in every product page, run a substring match on '/products'. 

Substring match ignores trailing slashes that appear at the end of your URL and http/https protocols, but it doesn't ignore subdomains (including 'www'), subdirectories, extensions, or changes to query or hash parameters.

Unlike simple and exact match, substring match doesn't need a full URL to match. You can substring-match on a word, query parameter, subdirectory, or any other substring that might appear somewhere in the URL. This makes substring match ideal for targeting entire categories of pages or your entire site (for example, to make a change to your global navigation menu).

Here's how a substring  when you include www (or another subdomain):

image.png

In this example, only the URLs that include the string www.example.com are included.

But when you remove the subdomain or 'www', the substring match targets any page on your domain where the snippet is implemented:

substring example.jpg

You can target an entire category of pages by including the directory that appears in their URL:

substring example 2.jpg

In this example, all strings that include the stringhatsare included.

Example: Testing on categories of pages

You want to run an experiment on all product detail pages, but you want to be sure that your changes do not also show up on other pages of the site. You know that all product detail page URLs look similar (for example, http://www.example.com/us/products/...cket?p=84673-0, where everything after “product” is dynamic).

To set it up:

  • Identify a common URL structure for all of your product pages that is unique to those pages.

  • In URL Targeting, click on the Page Type drop down and select A set of URLs.

  • Select Substring match from the Match Type dropdown and enter the portion of the URL that is guaranteed to be the same across the desired set of pages (for example, example.com/us/products).

  • This ensures that the Page will run on any URL that has the string example.com/us/products in the full URL. The substring match will apply even if values are added before or after this string.

  • If your product pages do not have a common URL structure, consider using Conditional Activation instead of a substring match.

image.png

 

Example: Run site-wide, except for a certain subset of pages

You want to run a site-wide navigation bar change across all the main pages on your site. However, a subset of “news” pages do not follow your site’s standard layout, so you want to exclude these “news” pages from the experiment.

You know that the “news” pages all have a URL that begins with http://www.yellowpages.com/news. The dynamic topic and article name are appended after “news/”.

For example, a full URL might be: http://www.example.com/news/home-improvement/

To set it up:

  • From the Home page > select Implementation implementation icon.jpg on the left nav bar > click on New Page .

  • Select the Page Type drop down from Single URL to A set of URLs.

  • Start with the bigger group of pages that you want to include in this Page. In this case, set a substring match to www.yellowpages.com to ensure the Page activates site-wide.

  • Identify a common URL structure for all of the pages that should be excluded from your Page.

  • In URL Targeting, under Exclude URLs, select Substring match from the dropdown menu. Enter the portion of the URL that is guaranteed to be the same across the set of URLs you want to exclude (in this example, www.yellowpages.com/news works).

  • The Page will run on URLs on your domain that have the substring www.yellowpages.com, but not URLs that have the string www.yellowpages.com/news.

  • When using Exclude URLs in URL Targeting, both positive and negative conditions must be met. In other words, to be included in the experiment, a visitor must land on a URL that matches the included condition and does not match the excluded condition.

substring exclude 2.jpg

Regular expression match

Expert users can use regular expressions ("RegEx") to specify a set of pages on which an experiment should run. For example, to target all pages on your site where the snippet is implemented, use a regular expression match and enter .* as your match condition. You can access this targeting by select "A set of URLs" under Page Type

2018-03-19 16_20_15.gif

 

It's impossible to cover all of the different possibilities that regular expressions allows, but we'll provide a small sample.

Let's say you want to target your experiment to URLs in your /products/shoes, /products/hats, and /products/shirts sections, but no others. You might write a regular expression that looks like this: /products/(shoes|hats|shirts).*

regex match .jpg

Regular expression matches are evaluated using JavaScript's built-in regular RegExp module. Your expression is matched against the full page URL and will be evaluated as a substring match up until an escaped character in your expression. Alternatively, you could write the regular expression in this example entirely in RegEx:\/products\/shoes|hats|shirts.*

Your expression does not need to match the full URL to trigger your experiment using Optimizely. For example, the regular expression 'x=y' will match the following pages:

Example: Targeting a dynamic URL

You want to run a test on a URL that is dynamic for unique visitor. Substring targeting will not match because the dynamic part of the URL is located in inside the URL. 

For example, a full URL might be: http://example.com/us/32d89ck/myAccount

In this example, a substring matching example.com/us/will not work because we also need to target myAccount.A substring matching myAccountwill not work because we do not want to accidently target another region such as UK. The solution is to use a RegEx match that allows any characters and number of characters between example.com/us/and /myAccount.

Here is the RegEx used in the example: example\.com\/us\/.*\/myAccount

 regex match 2.jpg

In the example, you can see that the URL matched any string between /us/ and /myAccount. It did not match on the url, example.com/uk/fF4dc0-4flf34/myAccountbecause uk was not part of the match.

If you're trying to target a series of pages that can't be included neatly in a substring match or regular expression, consider using a Conditional Page Activation to the pages. Conditional Page Activation allows you define a Page by an element on the site or JavaScript condition.

 

Query parameters

When we evaluate a URL using the RegEx match type, Optimizely strips the Optimizely query parameters. For example, if you’re trying to create a RegEx to match http://www.example.com, the added Optimizely query parameters might look like this:

http://www.example.com/?optimizely_token=b0a1ff3276b768b37be&optimizely_x=7961611747&optimizely_x_audiences=&optimizely_preview_layer_ids=7597420149&optimizely_snippet=s3-7428110562&optimizely_preview_mode_CAMPAIGN=7597420149

The stripped URL we evaluate would be http://www.example.com/?. Optimizely doesn't remove the /? when stripping the Optimizely query parameters due to inconsistent behavior among browsers.

To match the URL http://www.example.com, you may want to include matching for the trailing /?. You could use example\.com\/?\??$ to match with and without the trailing forward slash and question mark and to not match if there’s an actual query parameter in the URL, like a UTM campaign.

 

URL Match Validator: Double-check your targeting

To check your targeting conditions and ensure that your Page will run on the expected URL, use the URL Match Validator, which can be found in the URL Targeting modal. The URL Match Validator tells you whether the sample URLs you enter match the URL Targeting conditions. A match means the Page will run. A non-match means the Page will not activate.

image.png

The URL Match Validator allows you to quickly confirm whether a URL Targeting condition or pageview goal will correctly target the URLs you intend. Click the “+” icons to add as many sample URLs as you want to validate. Try checking for URLs that you do and don't expect to match in your experiment.