All pages
Powered by GitBook
1 of 65

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Account settings

Implement AB Tasty Tag

Understand Tag Domain Delegation

In order to bring you greater control over how AB Tasty is loaded, AB Tasty offers a Domain Delegation feature, allowing you to host the tag on your own private domain.

This setup is entirely managed through the AB Tasty interface with minimal tech support required.

Key benefits:

  • Brand consistency: Serve the AB Tasty tag from your own subdomain (e.g., tasty.yourdomain.com) for a seamless brand experience.

  • Improved trust: Some browsers or extensions block third-party domains. Hosting the tag under your domain helps reduce that risk.

  • Better performance & compatibility: Delegating the tag can help with faster loading, fewer tracking issues, and improved site reliability.

  • Future-proofing: This approach prepares your setup for stricter browser privacy policies and third-party cookie restrictions. This feature is especially useful for companies with strong security requirements, regulated environments, or those looking to optimize data collection continuity.

To start using this feature, please read

Tag integration

The AB Tasty tag is a lightweight JavaScript snippet that you add to your website to enable all AB Tasty features, including campaign delivery, targeting, and analytics.

The tag is designed for speed and efficiency: it loads essential resources dynamically, ensuring only what’s needed is downloaded, which helps keep your site fast and responsive.

The tag is compatible with all major frameworks (React, Angular, Vue.js) and works on both traditional and single-page applications.

It supports advanced features like deferred campaign loading, visitor ID management, and seamless integration with your site’s consent and privacy requirements.

Curious about best practices, technical details, or troubleshooting?

Check out our articles on tag implementation to make the most of your AB Tasty experience

Understand AB Tasty Tag implementation methods

AB Tasty recommends in code, synchronous, AB Tasty hosted implementation. (Read our step by step tutorial ). But some other methods are available to comply with all specific cases.

Synchronous or Asynchronous ?

The generic tag comes in two versions: synchronous and asynchronous.

You will find the synchronous version, as well as the asynchronous version in the Generic Tag page.

Tag performance

Tag performance refers to the impact of the AB Tasty JavaScript tag on your website’s speed, user experience, and technical metrics (like page load time, Core Web Vitals, etc.). The tag is responsible for loading and executing experiments, personalizations, and tracking events on your site.

You will find : it's useful to understand your tag's weight and find ways to improve it (custom recommendations regarding your specific activities).

For more information about the performance center and guidelines, please refer to the following articles:

What is the AB Tasty Tag?

The AB Tasty Tag is a lightweight JavaScript snippet that enables dynamic experimentation, personalization, and data tracking across your website. It acts as the entry point for all AB Tasty features, ensuring experiments are delivered efficiently and data is collected reliably.

Key Use Cases

The Tag is used for client-side web experimentation and personalizations:

  • Display A/B tests and personalization campaigns

About cookies tracking

The tag will use the listed domain-s to set the tracking cookie.

If you have set your domain as `website.com`, the cookie will be set to `.website.com`.

However, if you have set your domain as `www.website.com`, the cookie will be set to `.www.website.com`.

The tag is always using the widest possible domain. If you have set `order.website.com` and `website.com`, the cookie will be set on `.website.com`. Specify the subdomain is of any use in this situation and you can remove it.

Cookies are shared following the descending tree domain, but not the other way around! In other words, cookies set on `.domain.com` will be shared with `.subdomain.domain.com` but cookies set on `.subdomain.domain.com` won't be shared with `.domain.com`.

Keep that in mind when setting up your domain and ensure this won't cause tracking issues.

Choose your implementation method

This guide reviews AB Tasty's integration options, detailing their pros and cons to aid businesses in selecting the ideal method.

Whether opting for direct HTML integration's control, the flexibility of a Tag Management System, or the ease of Shopify integration, choosing the right method is crucial to digital strategy success.

Implementation method
Advantages 👍
Disadvantages ❌
Step by Step procedure

Choose between Synchronous and Asynchronous methods

The generic tag comes in two versions: synchronous and asynchronous.

The Synchronous mode

In synchronous mode, your website’s code scripts will load one after the other. A script can only be loaded if the previous one has finished loading. If a script is blocked, it will stop the script after it from loading.

Collect behavioral and performance data

  • Integrate with your analytics or consent management tools

  • Architecture Overview

    The tag fetch configuration and experience data. Once initialized, it can apply variations, record metrics, and send events in real time.

    AB Tasty also provides a transaction Tag that you can install to collect further insights on the transactions made on your website

    Do not declare a subdomain if you don't have a good reason to do so!

    Tracking matrix

    Set domain-s
    Risk
    Comment

    website.com

    No

    The cookie will be set on .website.com

    order.website.com website.com

    No

    The cookie will be set on .website.com. You should remove the subdomain as it is already included in the domain.

    Visitors will be tracked along all subdomains.

    order.website.com www.website.com

    Yes

    The cookie will be set either on order or on www, depending on where it is currently executed. A visitor on order won't be recognized on www.

    We strongly advise you to make sure this is what you want.

    website.com other-website.com

    No

    Cookie will be set depending on the domain it is currently executed.

    We recommend using the synchronous tag for AB Tasty. To know more, read the article Choose between Synchronous and Asynchronous method.

    In code (recommended), with a Tag Management system (no tech needed) or with Shopify integration?

    AB Tasty provides 3 different implementation methods you can choose depending on your skills and stack.

    We recommend in code implementation. To know more about the method and choose the one corresponding to your needs, read the article Choose your implementation methods.

    Hosting method: Hosted (default) or delegated? How much do you want to be in control?

    This is the by default procedure.

    For a step by step procedure, please refer to AB Tasty hosted tag implementation article

    This feature is especially useful for companies with strong security requirements, regulated environments, or those looking to optimize data collection continuity.

    To know more about it please read our tag domain delegation presentation article. For a step-by-step procedure, please refer to Tag domain delegation implementation article

    Set-Up AB Tasty Tag in 5 minutes
    a performance center inside the AB Tasty platform
    Performance Center
    List of Performance Guidelines

    • No technical deployment required

    • Easy to maintain and modify

    • Compatible with other tags/marketing software

    • Perfect for marketing or product teams autonomy

    • Dependency on GTM (and its proper functioning)

    • Slight latency when executing the tag (might trigger a flickering effect)

    • May be blocked by certain security configurations (CSP)

    Set up the AB Tasty Tag with Google Tag Manager

    Integration via Shopify (AB Tasty app)

    • Simplified integration, no technical intervention required

    • Automated and guided via the Shopify interface

    • Quick to set up for e-merchants

    • Less control over the precise loading of the tag

    • Limited by Shopify's capabilities

    • Less flexible for advanced configurations (SPA, CMP, etc.)

    AB Tasty integration with Shopify

    Direct integration into HTML code

    ✅ Recommended by AB Tasty

    • Total control over tag placement

    • Faster loading possible (if placed at the top of the page)

    • No external dependencies (GTM, CMS)

    • Requires access to source code

    • Risk of error if poorly integrated

    Set up the AB Tasty Tag in 5 Minutes

    Integration via Tag Management System (like Google Tag Manager)

    Asynchronous mode

    On the other hand, in asynchronous mode, the different calls to the scripts will be made at the same time. All the scripts will load at the same time. In this case, if a script hangs up, it will not stop the other scripts from loading.

    The disadvantage of an asynchronous tag is that the screen may seem to flicker if the modifications are applied after the website loads.

    In most cases, we recommend using the synchronous tag for AB Tasty. If the tag is placed in your website’s </head> tag, you will be sure that your modifications will be applied immediately, before the website loads. This will avoid the flickering effect and will offer an optimal user experience.

    All_About_Tags_03.png

    What is the AB Tasty Tag?

    Understand Tag specifications

    Understand implementations methods

    Choose your implementation according to your specific needs

    Implement AB Tasty Tag

    Step-by-Step tutorials for each use case

    AB Tasty tag compilation

    Learn more about this mandatory step for every succesful campaign launch

    Going further with the tag

    Section dedicated to advanced users.

    Cover
    Cover
    Cover
    Cover
    Cover
    How to Set-up Tag domain delegation article

    Tag compatibility matrix

    This document provides detailed information on the compatibility of various modules and scripting tags, ensuring you can make the most of AB Tasty's capabilities on supported browsers and platforms.

    AB Tasty module
    User/Visitors
    Compatibility

    Dashboard

    Editor

    Reporting

    AB Tasty users (you)

    ✅ The two latest major versions of Chrome and Firefox

    ❌ Safari, Internet Explorer, Microsoft Edge, and Opera are not supported.

    JavaScript tag on your website

    Your visitors

    ✅ All your campaigns will be displayed on browsers that represent more than 0.5% of the current market share

    ❌ Not compatible with any versions of Internet Explorer or opera Mini Babel rule:

    What does the tag tracks?

    General Tracking

    Technical details about tracking can be found in the developer portal.

    By default and simply by implementing it on your website, our tag is designed to collect browsing data about your visitors. There are four main categories of automated hits:

    • Campaign

    • Pageview

    • dataLayer

    • Batch

    Campaign

    Each time a campaign is seen by the visitor, a campaign hit is sent with the corresponding campaign ID/variation ID pair. One hit is sent per campaign.

    Each time a campaign hit is sent, the analytics integration settings are triggered.

    Each time a campaign hit is sent, a corresponding JS event is sent. You can for advanced integration.

    Pageview

    Every time the visitor visits a page, this hit is sent with all the details about the visited page.

    dataLayer

    If you have configured a data layer integration, then a hit will be sent once per session with all the available data layer keys.

    Batch

    To reduce its global footprint and increase performance, our tag sends the information in batches when they are triggered close to each other. When a batch hit is sent, you can find the usual details about each type of hit directly into the h parameter of the payload.

    With a standard usage of AB Tasty, you should not be needed to implement any of these hits by yourself.

    Events

    You can send any event to the collection pipeline. This EVENT type of hit is built according to the following pattern: category/action/label/value.

    Category

    You are free to set the value of your choice in the event category. However, if you want the event to be used in the reporting as a goal or a filter, it must be set as Action Tracking.

    Action

    The action is the name of your event as it will be displayed in the goals section, the reporting, or the filters.

    Label

    A label enables adding text to the hit.

    Value

    A value enables adding value to the hit.

    Format

    An EVENT hit must be sent using the following format:

    For further information, please refer to this .

    Shortcut

    You can also use the following method if you only need to send the action (name of a goal).

    Suggested articles:

    Set up the AB Tasty Tag in 5 Minutes

    This is the recommended method to Set Up AB Tasty Tag in your Website code.

    This article helps you implement a Tag hosted by AB Tasty. If you want to delegate the Tag, please read Tag domain delegation implementation article.

    Prerequisites

    • Access to your website’s HTML code

    • AB Tasty account and platform access

    If you can't access and modify your website code, you can inject AB Tasty Tag using a Tag Management System (TMS). Ensure you follow best practice to prevent flickering:

    • Choose Synchronous Tag

    • Paste it within the <head> section.

    Step-by-Step

    1

    Go to the .

    2

    Enter a Domain.

    For a more detailed procedure read :

    Suggested articles:

    About domains

    To make your AB Tasty tag work, you must set the authorized domain in your account settings.

    The tag will only run on this domain. If someone copies your tag to another domain, it won’t work.

    One domain per account ensures a faster and lighter tag execution and reporting

    What is my domain?

    Enter the part of your site before the first slash ("/") and after any subdomains. Example: For www.my-website.com/fr, enter my-website.com.

    AB Tasty hosted tag implementation

    The supports two hosting methods:

    1. AB Tasty Hosted – Default

    2. AB Tasty Delegated

    This article helps you implement a Tag hosted by AB Tasty. If you want to delegate the Tag, please read .

    >0.5%, not ie 11, not op_mini all
    All_About_Tags_04.png

    One visitor One experiment option

    Optimize experiments by showing one per visitor. Learn how to activate the option and discover the prioritization rules.

    Suppose you are running several experiments at once on your site or application. In that case, a visitor will see each of them as soon as they enter the targeting, which may influence the results, since one experiment can impact the results of another.

    To avoid this, we offer an option that allows you to display only one experiment per visitor, even if multiple experiments are running.

    Learn more about this option (activation and prioritization rules) in our dedicated articles:

    👉 1 visitor 1 test for Web experimentation

    👉 1 visitor 1 test for FE&R

    • If you activate it while you have active experiments, it might create biases in your campaign results. We advise you to end all pending tests before enabling the option and launching new ones.

    • Activating this option while conducting two experiments (one on your home page and another on the cart page) impacts traffic distribution. Visitors who view the home page before the cart will only experience the home page experiment, reducing traffic allocation for the cart experiment. Consequently, gathering adequate statistics for experiments on deeper pages (like product pages or conversion funnels) will take longer.

    Performance and security

    Going further with your tag

    This feature is in the early adoption phase. To benefit from it, please get in touch with your CSM.

    listen to this event
    article
    About cookies tracking
    window.abtasty.send("event", {
     ec: "Action Tracking",
     ea: "Click on CTA",
     el: "CTA on product page",
     ev: 1
    });
    ABTastyClickTracking({{action}}, null);
    👉 Read our implementation guide dedicated to the implementation with Google Tag Manager.

    When implementing tags, it's possible to restrict their execution to specific subdomains. This ensures that tags will only function on designated subdomains and not on others.

    To know more, read the article dedicated to subdomain management.

    3

    On the Implement the AB Tasty Tag field, select Standard.

    4

    Copy the AB Tasty tag script from the platform.

    Choose between the Synchronous and Asynchronous method and paste the dedicated tag only.

    Read more about Synchronous and Asynchronous methods in our dedicated article.

    5

    Paste it into the <head> of your HTML, as early as possible.

    6

    Save and deploy changes.

    7

    To finalize, on the Tag Implementation Page, click I’m done

    8

    Open your website and check that the tag is loading

    9

    For verification, use AB Tasty Chrome extension: if the Tag is correctly implemented, the Chrome extension displays Tag version and weight.

    For More QA Methods or resolution, read our QA and Validate Your AB Tasty Tag article.

    Tag implementation page
    How to implement the Generic Tag (comprehensive guide)
    About domains
    About cookies tracking
    Validity matrix
    Input
    Validity
    Comment

    example.com

    yes

    The tag will execute on example.com and all its subdomains.

    sub.example.com

    yes

    The tag will only execute on sub.example.com and corresponding subdomains (eg. eshop.sub.example.com).

    www.example.com

    yes

    The tag will execute on only, excluding all others subdomains.

    https://example.com

    no

    You must not input the protocol (http.s).

    For a quicker tutorial read Set-up the AB Tasty Tag in 5 minutes.

    To know how to select a domain and check your implementation, please read the full procedure on How to implement Generic Tag.

    To choose between the hosting methods, read: Understand Tag Domain Delegation

    Standard Implementation (recommended):

    1. Make sure your domain is selected.

    2. Make sure the current configuration block displays " Implementation method: Standard".

    3. To copy the content of the synchronous tag code, click on the Copy to clipboard icon.

    4. Open your website code.

    5. Paste the synchronous tag code between the </head> tags of your pages.

    6. Go back to The .

    7. Click on Check your tag implementation to test your tag implementation.

    For further verification, refer to our QA and validate the Generic Tag article.

    We recommend that you place the code in the </head> section of your pages so changes are displayed more quickly. Otherwise, a flickering effect may occur: your visitors may see the original page for a fraction of a second before they see the modified page. By calling our tag as high as possible in the source code of your page, our script can apply the changes before the content is displayed.

    Custom Implementation

    You can inject our tag using any Tag Management System (TMS). Ensure you follow best practices to prevent flickering:

    • Choose Synchronous Tag

    • Paste it within the <head> section.

    Warning:

    • Google Tag Manager (GTM): GTM may not support these guidelines. Their documentation advises against using GTM for A/B Testing tags.

    • Alternative Approaches: You may choose to place the AB Tasty tag in the <body>, set it as async, or defer it manually. Be aware this might cause flickering. Understand your visitors’ browser resource-loading mechanisms to evaluate when the tag will execute and how it affects targeting and business rules.

    Tag Implementation Page
    Tag domain delegation implementation article

    Specific Implementations

    Cross-Domain Tracking

    Cross-domain tracking helps you follow the user in the case when one or more pages are hosted on a different domain name than the original one. Cross-domain tracking is necessary when a website has a page (payment confirmation, for example) that redirects the user to an external domain. To set-up a cross-domain tracking, go on this on the settings.

    You can add a URL pattern as a setting for pages hosted on other domains. Then, click Add and validate your modification.

    Set up the AB Tasty Tag with Google Tag Manager

    This Tag integration with Google Tag Manager (GTM) allows you to start using AB Tasty in minutes without the need of your tech team.

    Please note that by inserting the generic tag directly in GTM, you may experience a flickering effect: by default, tags inserted via GTM are in the pages' </body> tags, whereas AB Tasty recommends you inject your tag as high as possible in the page’s HTML code to limit flickering effects. To learn how to implement the Generic tag with the standard method, refer to How to implement the Generic tag.

    How to interact with the tag

    When our tag is running on a website, it offers a set of variables, constants, functions, and methods you can use to interact with it.

    Everything is hosted under the window.ABTasty object. Here are the most convenient ones you might need:

    In this object, you will find all the tests that are currently active on your accounts. It displays more information than you would usually need for standard usage but this is convenient to have if you need to dig into your tests.

    This object is a simplified version of the ABTasty.accountData.tests object. It will display your active tests with a focus on their current status. Are they running? If not, why have they been rejected? This is the most common object you might use to debug and QA your tests.

    This object will display tests that are currently running on the page.

    This object will return the visitor ID for the current visitor.

    This object will return the campaign history for the current visitor. The campaign history is all the campaignID/variationID pairs that the visitor is currently assigned to.

    This object will contain all the settings of the account running on the website. It is convenient to get the identifier, the account name, or various settings, such as framework version or storage mode.

    One visitor One test on Web experimentation

    This article explains how to activate/deactivate the 1 visitor 1 test feature in Web experimentation campaigns and the prioritization mechanism.

    Activate One visitor One test Option on Web experimentation and Personalization

    To enable this option, go to:

    1

    Go to : Settings > Advanced Settings

    How to configure jQuery loading

    is a JavaScript library. The purpose of jQuery is to make it much easier to use JavaScript on your website. jQuery takes a lot of common tasks that require many lines of JavaScript code to accomplish, and wraps them into methods that you can call with a single line of code.

    AB Tasty offers 3 options for configuring jQuery loading.

    Follow the steps below to configure jQuery loading:

    1. Go to Settings > Framework

    2. Access the Load jQuery section

    Profil settings

    Click on your profile icon to the top right of the screen to access your profile settings.

    Preference

    This page is divided into two main sections:

    • User Information: Displays the user's profile picture, name, and email. The first and last name fields are editable. The profile picture can be updated, while the email is displayed as read-only.

    Subscription and services management

    Keep track of your current AB Tasty subscription.

    Plan details

    Current plan details

    Technical implementation

    This section covers a range of advanced use cases and custom setups to help you tailor AB Tasty to your specific technical environment. From custom integrations to advanced tagging and optimization methods, these guides are designed for developers and technical users looking to go beyond standard implementation. Each article provides step-by-step instructions to ensure smooth and effective configuration.

    Organization overview

    You can view your AB Tasty accounts and contacts from the Organization overview page

    Accounts

    Contacts

    Organization management

    Configure your Organization settings, including users and subscription.

    Here is a list of Organization settings:

    Prerequisites
    • A Google Tag Manager account (free)

    • AB Tasty platform access

    • Published AB Tasty campaign (optional, for validation)

    Create your Tag in Google Tag Manager

    1

    Copy your AB Tasty tag.

    1. Go to the Tag implementation page.

    2. Enter a Domain.

    3. On the Implement the AB Tasty Tag field, select Standard.

    4. Copy the AB Tasty Synchronous tag script from the platform

    2

    Log in to your GTM account.

    3

    Click Tag Configuration

    4

    Select Custom HTML

    5

    Paste your AB Tasty tag script into the HTML field.

    6

    To apply the AB Tasty Tag on all your website's pages, create a Rule

    1. Select Choose from existing rules

    2. Select All Pages.

    3. Click Save.

    7

    If you use Google Tag Manager to apply the Google Analytics or Universal Analytics tag and link the data of your AB Tasty tests:

    1. In the Advanced configuration section, check the Tracker Name option

    2. Leave the corresponding field blank

    Publish Your Container

    1. In the GTM workspace, click Submit.

    2. Add a version name (e.g., "Add AB Tasty tag") and publish your container.

    2

    Select 1 visitor 1 test option

    3

    Check the toggle to enable it.

    • If you toggle on: a visitor will see only one experiment at a time.

    • If you toggle off: a visitor can see more than one experiment.

    • Personalization and Patch scenarios are not affected and will continue to be displayed.

    • This option is compatible with the Mutually Exclusive Experiment feature. Consider that if you create several Exclusion Groups, then your visitors will only see one experiment across all the groups

    How does the prioritization mechanism work?

    • The tag evaluates eligible campaigns in ascending numerical order of their IDs.

    • The first campaign where the visitor matches all targeting conditions is the one they are assigned to.

    • There is no additional prioritization logic beyond this ID order.

    • Suppose the visitor falls into untracked traffic for the first eligible campaign (i.e., not assigned due to traffic allocation). In that case, they may still be assigned to the next eligible campaign in the list.

    This mechanism works the same way on desktop and mobile browsers, as long as cookies are enabled.

    User Preferences: Allows the user to set the language used throughout the interface via a dropdown selector.

    All changes made on this page affect only the current user's experience and do not impact account-level configurations.

    Login Management & Security

    The Login Management & Security page allows you to configure and monitor authentication methods for accessing the AB Tasty platform securely. This page is divided into the following sections:

    Profile Security Status

    At the top of the page, you can view a summary of their profile security. When no actions are required, the system confirms the profile is secure. A link is provided to learn more about profile protection best practices.

    Login Type

    This section shows the methods available for signing into the platform:

    • Password: You can set or reset their password here.

    • Google Login: If connected, you can use their Google account for faster login. A warning is displayed indicating that disconnecting a Google account requires setting a password first.

    Multi-Factor Authentication (MFA)

    This section enhances account security by requiring an additional verification method at login:

    • Authenticator App: Enables the use of an external app (e.g., Google Authenticator) to generate time-based security codes.

    • Backup Codes: Displays how many one-time-use backup codes are available. These codes can be used if the authenticator app is unavailable. New sets can be generated anytime.

    Notifications

    The Notifications page enables you to configure email alerts related to campaign activities and tag performance in AB Tasty. This helps you stay informed about key events that may impact business performance or require attention.

    Notification Categories

    1. Campaign-related Events

    You can receive email notifications for important changes occurring within their campaigns:

    • Status change of a scheduled campaign Get notified when a scheduled campaign is automatically launched or paused.

    • Under-performing variation detected by Sequential testing alerts Get notified when a live test identifies a variation that is underperforming.

    Each notification option includes a toggle to enable or disable email alerts.

    2. Tag and Performance

    You can subscribe to notifications related to AB Tasty tag updates:

    • Tag changelog Receive email alerts when there is a tag release, as listed on the changelog page.

    example.com/en_GB

    no

    You must not input the path (/xxx)

    www.example.com
    How to choose your cookies deposit method
    How to declare my Account Domain?
    How to configure JavaScript
    How to configure jQuery loading
    How to integrate Product hits
    How to set-up segment criteria "Content Interest" and "Cart Abandonment"
    Organization overview
    User and contact management
    Subscription and services management
    Tag Implementation Page

    Please find more in these two articles from our developers portal:

    • Tag window AB tasty

    • Tag window

    ABTasty.accountData.tests
    ABTasty.results
    ABTasty.getTestsOnPage()

    Since cross-domain tracking is relying on third-party cookies to operate, the feature will no longer work on browsers or environment that don't support these cookies anymore. It can be the browser type (Safari or Firefox), specific settings, the use of extensions or any other external element that might block third-party cookies. This feature is still supported by Google Chrome for the moment. All visitors that are not using a browser or environment compatible with third-party cookies won't be tracked over domains, even when the feature is properly set up.

    Server-Side Rendering

    If you are using server-side rendering (SSR) on your website, you might need to add a specific implementation for your tag.

    In some situations, you might need to ask our tag to wait before applying its modifications. Indeed, with some SSR frameworks, modifying the DOM before the reconciliation has occurred might cause performance or render issues.

    You can force our tag to lock its execution until you unlock the tag. To achieve that, you need to declare a variable before injecting our tag:

    Once you consider your page to be ready for front-end modifications, you can call the following method to unlock our tag:

    For more information, please refer to the complete technical documentation about global methods and variables or our troubleshooting article on cross-domain tracking limitations.

    page
    ABTasty.visitor.id
    ABTasty.getCampaignHistory()
    ABTasty.accountData.accountSettings
    window.lockABTastyTag = true;
    window.unlockABTasty();

    Select one of the following options:

    • Load AB Tasty’s jQuery

    • Do not use jQuery

    • Load my jQuery

    jQuery Loading Options

    Load AB Tasty’s jQuery

    This option is enabled by default. It enables you to load the AB Tasty jQuery library in addition to any existing library on your website.

    Do Not Use jQuery

    This option disables all jQuery libraries on your website.

    Use my own jQuery

    This option enables you to load only your version of jQuery and disable the AB Tasty library.

    This decreases the weight of the AB Tasty script by 30 KB.

    Good to know 💡

    In this case, the AB Tasty tag must be placed after your jQuery call in the source code of your pages and you must be using version 1.7.1 of this framework or above.

    jQuery
    This section includes data on your current plan's features, pricing, and other relevant details.

    AB Tasty products

    This section lists all AB Tasty products to which you have subscribed and gives you the possibility to subscribe to others by getting in touch with your Account Manager.

    Services

    You can find a list of all services from AB Tasty in the services section. Choose any service and contact your Success manager directly from the list.

    How to implement the Generic Tag (comprehensive guide)

    To use AB Tasty on your website, you need to install our tag on your website. The generic tag will allow you to apply the JavaScript layer for your page modifications. For more information about tags, please refer to our article What is AB Tasty Tag?.

    The Tag Implementation Page supports two hosting methods:

    1. AB Tasty Hosted – Default

    2. AB Tasty Delegated (to know more about it please read our tag domain delegation presentation article)

    Follow these steps to implement the Tag:

    1

    Select your domain

    Specifying a domain for your account is mandatory. We recommend to manage one account per domain for performance reasons.

    Domain : Your domain is everything that goes before the first slash (the path) and after the potential subdomains. Hence, if you have implemented your tag on , then the domain you need to set here is "my-website.com".

    2

    Choose your hosting method

    Good to know

    3

    Check your implementation

    Implementation verification is handled automatically.

    Your tag will be refreshed upon validation.

    Best practices

    These are our recommendations for a good implementation:

    • Prefer the synchronous tag version

    • Prefer a direct implementation vs a custom implementation (with a TMS for exemple)

    • The tag should be placed in your website’s </head> tag, this way you will be sure that your modifications will be applied immediately, before the website loads. This will avoid the flickering effect and will offer an optimal user experience

    To follow your tag performance though time, you can access the in the AB Tasty platform and read this article about .

    AB Tasty integration with Shopify

    To support users hosting their commercial websites on Shopify, AB Tasty offers two integration methods:

    1. Shopify App aka Web Pixel (Recommended)

    AB Tasty provides a native app available on the Shopify Marketplace, offering a seamless integration experience.

    Key Benefits:

    • Automated Tag Installation

    • All standard Event Tracking

    • Transaction Data Retrieval

    • Checkout on Subdomains fully supported

    Available for All Shopify Plan : Premium / Plus

    When to Use This Method:

    • You want to follow Shopify transactional events during the campaign.

    • You want to retrieve extended transactional data such as payment info & Cart events

    • You don’t want to install AB Tasty Tag on Shopify

    • You are using a subdomain for checkout

    To know how to use our app, please read article.

    To learn more about the functionalities, please read.

    2. Custom Application aka Custom Pixel

    For users with non-native Shopify setups, a custom integration may be more suitable.

    When to Use This Method:

    • You have a non-standard Shopify implementation.

    • You can manage the AB Tasty tag injection manually.

    • You only need to retrieve transaction data on a checkout domain or subdomain.

    To know how to configure a Custom Pixel in Shopify, please check article.

    QA and Validate Your AB Tasty Tag

    Before launching any campaigns, it’s important to validate that the AB Tasty tag is properly implemented and functioning across your website.

    Here is a short summary of the availables methods:

    Method
    Purpose
    Success Indicator

    AB Tasty Chrome Extension

    Quick graphical check

    Tag version displayed in plugin interface

    Console (Console + Network)

    Confirm AB Tasty object and network requests

    ABTasty object available; requests via try.abtasty.com

    Please refer to our dedicated FAQ:

    Set up Transaction Tag with Google Tag Manager

    There is no risk of flickering for the transaction tag with Google Tag Manager since this does not make any visual change: the tag is there only to gather transaction data.

    You can put the generic AB Tasty code directly into your page while still using GTM to insert the transaction tag. In this case, make sure you put the generic AB Tasty tag in between your pages' </head> tags.

    .

    Prerequisites

    • A (free) with your configured variables

    • AB Tasty platform access

    • Published AB Tasty campaign (optional, for validation)

    1

    Log in to your GTM account.

    2

    Go to Tags > New

    3

    Enter your Tag name

    4

    How the AB Tasty tag is designed to handle Single Page Apps (SPA)

    A Single Page Application (SPA) is a type of website that interacts with the user by dynamically rewriting the current page rather than loading entire new pages from the server.

    Good to know 💡

    AB Tasty is running on a native Vanilla TypeScript framework. Our tag is compatible with a lot of modern JS frameworks, including React, Angular, Vue, Meteor or Ember. The tag is unique for all environments and doesn’t require any additional implementation. To improve its behavior on server-side rendering (SSR) frameworks, an additional step might be needed to delay the application of the modifications.

    Addition of JavaScript code

    You can add your own JavaScript code. All variations created in our Visual Editor using one of the WYSIWYG features will generate an ES2020 compatible script that will be executed on client-side.

    You can also add your own JavaScript code using the Code Editor or the “Add JavaScript” option of the Visual Editor. In this case, the code won’t be transpiled into another language. For example, an ES7 script might not be working on older browsers. It’s therefore your responsibility to manage the compatibility of your own code when adding custom JavaScript.

    Management of modifications

    The modifications you make in your campaigns are stored into a JS object that will be read and executed on client-side. When a modification targets an existing HTML element, the original one isn’t modified. It is cloned and this clone is modified and then displayed by AB Tasty. Each time the URL changes, the tag checks the targeting criteria to know whether the modifications still need to be applied. If they don’t, the original content is displayed. For CSS additions, we inject custom CSS in the head section of the webpage, using the “!important” tag in order to add and/or override styles.

    In addition to that, our tag adds and listens to a Mutation Observer on the whole DOM. Each time a DOM modification is detected and relevant to us, the tag quickly re-applies its changes. A DOM modification is a change in an HTML element regarding its style or structure. We use the window.requestAnimationFrame() feature in the browser in order to interweave our modifications between two versions. With a high refresh rate of 60 times per second, the changes are applied before the human eye can see it, thereby avoiding any flickering effect.

    Automatic reload of the framework option

    The option of the settings is enabled by default and automatically detects a URL change and reinitialize the AB Tasty framework as if the page had been reloaded. If the page’s status changes while this option is turned enabled, the changes made will be reapplied.

    Server-side rendering

    When the webpage is rendered on server-side and hydrated on client-side, there might be a conflict if AB Tasty’s changes are applied before the page is fully loaded. We recommend implementing a delay in our tag’s execution and only trigger it when the page is ready.

    We provide a that consists of two parts:

    • Adding the ̀window.lockABTastyTag` which will tell the tag not to apply the modifications. It needs to be set as soon as possible and before calling the AB Tasty tag.

    • Triggering the `window.unlockABTasty()` method provided by the tag itself. This will resume the execution and display the campaigns. It as to be called when you consider the website to be ready.

    How to implement the AB Tasty tag via Shopify

    The AB Tasty Shopify app (Web pixel) is one of the two options we have build to help you integrate AB TAsty in your Shopify workflows. To know more about the two options and decide which one you should use, please refer to the AB Tasty integration with Shopify article.

    The AB Tasty extension for Shopify lets you implement the generic AB Tasty tag in your website, using your Shopify admin.

    You must be an AB Tasty customer to use the extension. You will need your AB Tasty identifier (the ID of your tag) to complete the installation.

    Installation of the AB Tasty extension via the Shopify App store

    Step 1: Install the AB Tasty extension

    The first step is to install the AB Tasty extension in your Shopify admin.

    You can either go directly to the AB Tasty extension using the following link here or search for it in the by typing “AB Tasty”.

    Once you find the extension, follow the following steps:

    1. Click Install

    2. Follow the installation procedure by accepting the set-up

    Step 2: Log in to your AB Tasty account

    Now that the AB Tasty extension is installed, you need to link it to your AB Tasty account.

    To link your account, follow the steps below:

    1. Click on the Configure App button.

    2. Add your AB Tasty identifier (ID of your tag).

    The identifier can be found in your AB Tasty account, in the .

    In section 2 of the page, you can directly copy your AB Tasty account identifier in the clipboard.

    Once done, paste it in the Shopify app field.

    1. (Optional) In the Advanced options section, you can choose to load the Tag Synchronously or Asynchronously and to track on a subdomain. Read to know more.

    2. Click Save.

    For performance reasons, Shopify recommends using the asynchronous tag : in this case, scripts load simultaneously, which can improve page load speed but may cause flickering as modifications are applied after the page loads. If you encounter flickering effects on your website, you can use the synchronous mode. In this case, scripts are loaded in order, minimizing flickering effects by applying modifications before the website loads.

    Your AB Tasty tag is now implemented on your Shopify e-commerce website. All the standard Event Trackers are immediately created in your account, ready to be used in your next campaigns.

    Step3: Verify your AB Tasty tag

    To ensure that your generic tag is correctly implemented, create an A/B test campaign from the AB Tasty interface. You can then add click trackings that you have selected in the "goals" step, and that you target on all your pages, on all your traffic, and without any particular trigger conditions.

    Launch your campaign, then go to the reporting of the test:

    • If you see data on your reporting, your tag is correctly set up.

    • If no data comes up several minutes after the campaign has been launched, please refer to this , or check that the identifier you have entered is the right one.

    Manage my Subdomain with AB Tasty Tag

    When implementing tags, it's possible to restrict their execution to specific subdomains. This ensures that tags will only function on designated subdomains and not on others.

    Subdomain Restriction Examples

    • Top domain Execution: If you set the tag to "my-website.com," it will execute on all my-website.com subdomain, including eshop.my-website.com and blog.my-website.com.

    • Specific Subdomain Execution: Setting the tag to "eshop.my-website.com" will restrict its execution to the "eshop" subdomain. It will not execute on blog.my-website.com.

    Good to know:

    • Cookie Domain Restriction: If you apply subdomain restrictions due to multiple AB Tasty accounts across different subdomains, ensure your are updated accordingly.

    • Multiple Domains: For business purposes requiring more than one domain per account, contact your usual AB Tasty representative to discuss your needs and request additional domains.

    Execution Behavior

    If a tag is implemented on a domain not listed, it will not execute on any unlisted domains or excluded subdomains. This ensures no unintended effects on those domains.

    Suggested readings :

    Hide sensitive data in URL

    If one or several URL might contain sensitive data as a URL parameter, you can tell the tag to avoid collecting it.

    Block simple URL parameter

    1. Go to the sensitive data page

    2. Set the parameter you want the tag to ignore

      1. for example, input email if you want to remove an email from this sample URL: https://www.mywebsite.com/[email protected] .

    3. You can add as many parameters as you need

    Block a parameter based on a regular expression

    1. Go to the

    2. Set the required regular expression that the tag needs to evaluate to ignore a URL parameter

      1. for example, to define the URL https://example.com/url-part-to-hide/other-part, enter the following expression (https?://example.com/).*?(/other-part)

    As evaluating a regular expression as a performance cost, always prefer a simple URL parameter filter if possible.

    Advanced options

    jQuery Library option

    By activating this option, the jQuery library will be loaded with the tag.

    Note that it's not mandatory to install the library jQuery to make AB Tasty work on your website.

    There are three options for configuring jQuery loading in the .

    • Load AB Tasty’s jQuery

    AB Tasty tag compilation

    Compiling your AB Tasty tag enables you to push the modifications you have made to your AB Tasty campaigns (since the previous update) on your website. The tag is updated automatically when you change the status of a campaign but you can also ‘force’ compilation by clicking the tag button in the header of the platform.

    Compilation process

    The tag compilation process includes 4 major steps. When the tag is being refreshed, you will be able to follow its progress via an animated tooltip.

    How to deactivate AB Tasty

    For many reasons, in particular to see if AB Tasty can cause errors on your website, you can deactivate AB Tasty on your website, meaning emptying the AB Tasty script.

    Performing this action deletes the content of the JavaScript file that is normally called to apply the modifications. The AB Tasty tag will still be present on your website, but the file it calls is empty of any JavaScript instructions. Therefore, it cannot cause any errors on your website.

    If errors persist on your website after you have emptied the AB Tasty script, you can eliminate AB Tasty from your investigations and look for other sources of errors.

    Emptying the script

    To empty the AB Tasty library, apply the following steps:

    One visitor One test on FE&R

    This article explains how to activate/deactivate the 1 visitor 1 test feature in FE&R campaigns and the prioritization mechanism.

    Prerequisites: This option is available if you have implemented the Decision API or are using an SDK in DECISION API mode.

    To learn more about it check our and our .

    JavaScript in AB Tasty

    There are different methods and levels to adding JavaScript code on AB Tasty. Select one depending on the scope you need from the JavaScript code. In most cases, you can add JavaScript code in both the visual editor and the code editor.

    The various JavaScript codes are executed in the following order:

    1. Account JavaScript

    2. Campaign JavaScript

    3. Element JavaScript

    If you need more information about how to configure JavaScript files into AB Tasty, please refer to the following articles:
    • Javascript files execution

    • Campaign JavaScript Execution

    • How to configure JavaScript

    Account JavaScript

    The AB Tasty tag enables you to inject JavaScript code into your website. This code can be used to track conversions or to send data to AB Tasty. The aim is to obtain additional information on a test.

    At times, you may need to add a JavaScript snippet on all the pages where the AB Tasty tag is present. This could be for different reasons, such as to use it as an analytics catalyst, to add a custom script to be executed on all pages, to connect with third-party tools, or to add a quick patch.

    Use cases

    Using global code is useful if you want to track certain events systematically in all your future campaigns, for example:

    • Custom tracking (scroll on a specific page, video fully viewed, etc.)

    • Global tracking

    • Flag visitors with specific information: cookies, storage variables, etc. (to filter a report or target a new campaign, for example)

    • Targeting campaigns by events (to start campaigns manually)

    • Transaction tag implementation

    Campaign JavaScript

    In order to fine-tune when your custom JavaScript is executed within your campaigns, you have the option to choose between two options: when the DOM is ready or before.

    When a webpage is loaded, the browser goes through the process of reading the code and creating a representation of the page called the Document Object Model (DOM). The DOM-ready point is when the browser has finished this process and the page is fully loaded and ready to be interacted with.

    It makes sure that the page is ready to be used and that all elements can be accessed before the code is executed.

    This option can be set up on a campaign level or globally in your account. By default, the JavaScript code is set to execute when the DOM is ready, but if you have controls in place and you want to avoid flickering, you can choose to execute the code before the DOM is ready. This feature is available for you to use and you can access it in your advanced setting in the "Javascript Execution" subsection.

    Context

    By default, the custom campaign JavaScript (JS) will be executed when the DOM is ready. This is because the custom JS may interact with elements of the DOM that may not be present before the document fully loads. It is safer to execute the JS only when there is the highest chance of reaching the targeted element, otherwise, the campaign may not be displayed. However, this can result in a potential and avoidable delay in the application of the campaign. Since the controls for checking the presence of a DOM element can be fully developed within the custom JavaScript, AB Tasty allows you to change the default JS execution behavior for one campaign or for all upcoming campaigns. This enables the execution of the custom JavaScript before the DOM is ready.

    Heads up ⚡️

    Configuring the execution of the campaign JavaScript before DOM-Ready does not mean that the JavaScript will systematically be executed before DOM-Ready. Indeed, there are many reasons why the AB Tasty tag should be executed after DOM-Ready (bad implementation, network problems, asynchronous targeting…).

    Good to know 💡

    The code a user can set up on his account JavaScript is a different feature. In this case, AB Tasty already has a setting to decide whether the JavaScript should be executed before DOM-ready or not. Both features are not linked.

    Element Javascript

    You may not want to wait for a specific element to exist on the page before you execute your JavaScript. That’s where Element JS shines.

    A JavaScript code can also be triggered when an element is present in the DOM. This means the JavaScript code related to that element will run before DOM-ready (before Window: DOMContentLoaded). In this case, the JavaScript code will be executed at the same time as the variation JavaScript but will only be triggered if the selector is pointing to an element present in the DOM.

    In this way, you can use Element JavaScript to execute all the JavaScript code of a variation, but only if a specified element exists.

    Good to know 💡

    The Element feature available in the visual editor enables a user to add JavaScript to a specific element. In this case, the AB Tasty tag will add a watcher on the concerned element in order to wait for the element to be loaded before executing the JavaScript, without waiting for DOM-ready.

    Synchronous or asynchronous tag loading
  • Multi-environment Compatibility (Web experimentation & FE&R, Reco&Merch API)

  • How to implement Shopify application
    Understanding Shopify App features
    How to set-up Shopify Custom pixel
    cookie domain settings
    About domains
    About cookies tracking
    sensitive data page
    automatic reload of the framework
    locking mechanism
    Good to know

    You can't save a domain that is not valid. Common mistakes are including a slash (/) or the protocol (https://).

    Subdomain

    When implementing tags, it's possible to restrict their execution to specific subdomains. This ensures that tags will only function on designated subdomains and not on others.

    Subdomain Restriction Examples

    • Root Domain Execution: If you set the tag to "www.my-website.com," it will only execute on the root domain.

    • Specific Subdomain Execution: Setting the tag to "eshop.my-website.com" will restrict its execution to the "eshop" subdomain.

    Good to know

    • Cookie Domain Restriction: If you apply subdomain restrictions due to multiple AB Tasty accounts across different subdomains, ensure your cookie domain settings are updated accordingly.

    • Multiple Domains: For business purposes requiring more than one domain per account, contact your usual AB Tasty representative to discuss your needs and request additional domains.

    Warning

    Execution Behavior

    If a tag is implemented on a domain not listed, it will not execute on any unlisted domains or excluded subdomains. This ensures no unintended effects on those domains.

    For further details, refer to our comprehensive article about tags.

    You can switch methods anytime before clicking “I’m done.”
    • No data is lost; your settings are preserved.

    • Changing a delegated subdomain restarts the delegation flow.

    • Switching from Delegated to Hosted requires a confirmation.

    For mor information refers to Understand Tag Domain Delegation

    The generic tag comes in two versions: synchronous and asynchronous. We recommend synchronous implementation. For more information, refer to Choose Between Synchronous and Asynchronous methods

    This is the by default procedure.

    For a step by step procedure, please refer Set-up the AB Tasty Tag in 5 minutes.

    This feature is especially useful for companies with strong security requirements, regulated environments, or those looking to optimize data collection continuity.

    To know more about it please read our tag domain delegation presentation article. For a step by step procedure, please refer to Tag domain delegation implementation article

    Good to know:

    To follow your tag performance though time, you can access the performance center in the AB Tasty platform and read this article about perfomance guidelines.

    www.my-website.com/fr
    performance center
    perfomance guidelines

    Click Tag Configuration

    5

    Select Custom HTML tag type

    6

    Add <script></script> tags

    7

    Paste the between the <script> tags

    Capitalized items are dynamic variables.

    8

    Replace all placeholder values based on your data layer variables configuration.

    Only Transaction Affiliation, ID and Revenue are required.

    9

    Make sure you have applied the appropriate format to your values, as described in t

    If the ICN (Item Count Number) parameter is not already available as a data layer variable, you might need to create a short JavaScript Code to calculate it

    10

    If you want to collect data at Item level

    1. Add the dedicated template from

    2. Match the variables according to the data layer

    Keep in mind that one item in the order = one request

    11

    Once the script is done, select your triggering:

    1. Click on the Triggering area

    2. In the opening menu, select the purchase event as a trigger: event equals purchase

    3. Optionnal: add a Blocker if the consent is not granted for AB TAsty cookies.

    12

    Click Save.

    13

    To QA

    1. Click Preview.

    2. Go to your website’s order confirmation (thank you) page.

    3. Open your browser’s Developer Tools (usually F12).

    4. Go to the Network tab.

    5. Place a test order (or simulate one if possible).

    6. Look for a request to ariane.abtasty.com—this is the endpoint where transaction data is sent.

    7. Check the request payload for transaction details (transaction ID, amount, items, etc.)

    Check our video for a guided Tutorial
    Google Tag Manager account
  • Do not use jQuery

  • Load my jQuery

  • Load AB Tasty’s jQuery

    This option is enabled by default. It enables you to load the AB Tasty jQuery library in addition to any existing library on your website.

    Do Not Use jQuery

    This option disables all jQuery libraries on your website.

    Load My jQuery

    This option enables you to load only your version of jQuery and disable the AB Tasty library.

    This decreases the weight of the AB Tasty script by 30 kB compared to loading AB Tasty's jQuery.

    In this case, the AB Tasty tag must be placed after your jQuery call in the source code of your pages and you must be using version 3.7.1 of this framework or above.

    Automatic Reload option

    By default, our tag will continue looking for the URL of the current page. If the URL is modified, then it will trigger a complete reload of the engine. This is useful for handling Single Page Applications.

    If you do not need this feature, you can safely disable it in the framework page.

    Disabling the tag: clear Script functionality

    To allow you to see whether AB Tasty causes errors on your website, you can deactivate the tag and empty the script in the framework page.

    It deletes the content of the JavaScript file that is normally called to apply the modifications. In other words, the AB Tasty tag is still present on your website, but the file it calls is empty of any JavaScript instructions. Therefore, it cannot cause any errors on your website.

    If errors persist on your website after you have emptied the AB Tasty script, you can eliminate AB Tasty from your investigations and look for other sources of errors.

    The entire AB Tasty folder is emptied of its content within two minutes.

    Emptying the AB Tasty script does not delete the tests from your account; they are just temporarily deactivated. Furthermore, the report data is not deleted either.

    Once you have debugged your website, you should restore the AB Tasty script so you can continue to run your tests. To do so, click the warning message at the top of the interface. After a few minutes, AB Tasty will be operational again and your tests will start running.

    framework page

    Step name

    Explanation

    Step 1

    Sending request

    AB Tasty has taken your action into account.

    Step 2

    Processing compilation

    All the modifications made to your campaigns are being compiled in a file.

    Step 3

    Sending to server

    The file containing all the modifications is being sent to the AB Tasty server for verification.

    Step 4

    Publishing modifications

    The modifications are being verified and implemented into your website.

    The process may take a few seconds to a few minutes. We recommend waiting until compilation is complete before performing any actions on the platform.

    Compilation result

    The compilation can either succeed or fail. When all steps are completed successfully, the following tooltip is displayed:

    In this case, all the modifications you have made in AB Tasty up until now will be in production on your website. If AB Tasty identifies an error on your account or has server issues during one step of the process, the compilation fails. In this case, the modifications made after the last successful update won’t be visible on your website.

    Server issue

    If AB Tasty encountered a server issue, the following tooltip will be displayed:

    We recommend trying to refresh the tag again and if the problem persists, contacting your dedicated CSM.

    Account issue

    If AB Tasty identifies error(s) on your account, you will see the following:

    The section displays the list of affected campaign(s) or pages with identified errors for each. AB Tasty suggests solutions to fix the issue.

    Different issues can cause these errors, but they are mainly due to incorrect pieces of code in your account or campaigns.

    To correct these errors:

    1. Select one error line. Error details are displayed.

    2. Read the description of the errors and the suggested solution.

    3. Click Go to campaign (for a campaign) or Go to page (for a settings page).

    4. Correct or remove the incorrect piece(s) of code.

    5. Repeat the process for all errors and try to refresh your tag again.

    Once you have corrected all the identified errors, tag compilation should succeed.

    The Framework compilation section also shows the date of the last successful tag update. This may be useful if you want to see whether your recent changes are visible on your website or not.

    Go to the Framework page.

  • Go to the Cleat script section and click Clear script.\

  • Click "Confirm" from the confirmation popin: the tag will automatically resfresh.

  • Once done, the tag button will take this form, informing you that the script has been emptied.

    Heads up ⚡

    Emptying the AB Tasty script does not delete the campaigns from your account; they are just temporarily deactivated. The reporting data is not deleted either.

    Rebuilding the script

    Once you have debugged your website, you must restore the AB Tasty script to continue running your campaigns and using AB Tasty properly. To do so, click the "Rebuild script" button:

    • from the Framework page (clear script section):

    • From the test or personalization list.:

    The tag will refresh again, and your live campaigns be visible on your website.

  • This option only affects Experiments (A/B Test). All Personalization and Feature management scenarios will continue to work as expected.

  • This option is compatible with . Consider that if you put several experiments inside a bucket, your visitors will only see one of those experiments.

  • Activate One visitor One Test Option on Feature Experimentation and Rollout

    • If you activate it while you have active experiments, it might create biases in your campaign results. We advise you to end all pending tests before enabling the option and launching new ones.

    • Activating this option while conducting two experiments (one on your home page and another on the cart page) impacts traffic distribution. Visitors who view the home page before the cart will only experience the home page experiment, reducing traffic allocation for the cart experiment. Consequently, gathering adequate statistics for experiments on deeper pages (like product pages or conversion funnels) will take longer. This delay is exacerbated if combined with the bucket allocation feature.

    To enable this option:

    1

    Go to User Profile > Feature Experimentation > Feature Experimentation Settings > Environment Settings.

    2

    In the Settings section, check the option 1 visitor 1 experiment.

    • If you check the option: a visitor will see only one experiment at a time.

    • If you uncheck the option: a visitor can see more than one experiment

    This option targets the environment (Prod or Preprod). Check this option for all the relevant environments.

    How does the prioritization mechanism work on Feature Experimentation and Rollout?

    • The Decision API evaluates which campaigns are eligible for a visitor based on their context keys.

    • It then sorts the eligible campaigns by creation date, from newest to oldest.

    • The first campaign in this list is the one returned by the Decision API for that visitor.

    • There is no additional prioritization logic beyond this order.

    • If the visitor falls into untracked traffic for the first campaign (i.e., they aren't assigned to it due to traffic allocation), they may still be assigned to the next eligible campaign.

    • The feature works the same, whatever the application or device, as long as the visitor stays the same.

    • For more randomized traffic distribution, use the feature.

    Decision API documentation
    SDK documentation

    Source Code inspection

    Verify tag presence in page HTML

    try.abtasty.com script tag found

    Debug mode

    Confirm correct domain configuration

    No domain errors in AB Tasty logs

    Shopify App Store
    Generic tag page
    Understanding Shopify App features

    AB Tasty "Next tag program"

    The Next tag is our Early Adopter program for the AB Tasty tag. It is a specific and early branch, where we put our latest optimizations and features that have been internally tested and validated but that are awaiting a more global validation (early adopter feedback) before being deployed to all users.

    By joining the program, you will be able to test our latest improvements and new features instantly.

    How to join the program?

    In the Framework section of your AB Tasty account, you can see which branch of the tag you are on. We currently have 3 branches running:

    • Latest: the public and most used branch, referred to as the “default” branch;

    • Next: the early and advanced branch you are able to test;

    • Unstable: an experimental and internal branch. On a normal use, you will never see this branch.

    If your tag is set on Latest, you are free to join the Next program by clicking Learn more and Join now from the popin. However, you can’t join the program on your own if you are on the Deprecated or Unstable branch.

    After joining the Next program, you must refresh your tag to push the modifications live. Otherwise, the changes will be pending.

    Next tag FAQ

    What does an enhanced cache mechanism do?

    The tag is now massively using the browser cache to drastically reduce the amount of data being downloaded from our CDN, reducing the latency and thus increasing page speed and improving our impact on your performance metrics but also decreasing the power consumption of our tag.

    All files are now cached, for up to 12 months, and regular update checks are made in the background without being render-blocking. If a change in your campaigns or account configuration is detected, it will be downloaded at a low priority in an asynchronous mode.

    This means that after the first page, which is the only moment when a new visitor has to download the full bundle, the AB Tasty tag is read directly from memory instead of doing regular polls to the network, reducing its loading time to a few milliseconds.

    Are there any limitations?`

    The first page is not impacted by the improvement as the full bundle still needs to be downloaded if there are no cached files. The impact is only visible on the 2+ pages. If you run a performance audit, it is most likely that you will run it without any cache and the improvement won't be noticeable.

    Also, as the updates are made in the background, it is most likely that you will experience an additional delay when pushing new modifications in your AB Tasty account. This delay is limited to the new page refresh only.

    Is it changing the way AB Tasty works?

    No. Your dashboard will remain the same and you will keep using AB Tasty in exactly the same way.

    You might notice minor changes in the way of QAing your campaigns or investigating the tag on your website. However, if you aren’t a tech-aware user, you shouldn’t spot any differences.

    Is it safe?

    It is safe. However, keep in mind that it is an early version for a reason. It has been tested internally, as well as with several customers that have already joined the Next program. We can’t assume we have been running this tag on 100% of the possible configurations and environments. This means you might fall under a configuration that breaks our tag, even though it shouldn’t happen. The worst-case scenario is that your campaigns and data collection will no longer work. By joining the Next program, you accept the tiny possibility that something may go wrong.

    In any case, you can switch back to the Latest tag at any time without notifying us (but we expect your feedback!). Just remember to always refresh your tag after you make a change. Due to the nature of the change in Next 3, you should be aware that an additional delay will apply before being able to push new changes in production when switching back to Latest. This delay can go up to 24 hours.

    Will there be a new iteration of the Next branch?

    Yes, and it is already planned for the future. This version is already the third iteration of our Next program. It is most likely that a fourth iteration will come after we decide to close this one.

    When closing the second iteration, we decided to automatically migrate back all Next users to Latest. We will keep you posted about the end of the current iteration.

    How to leave the program?

    From the Framework section, if you are already on the Next tag, you can choose to instantly leave the program by clicking Leave program.

    You will be able to rejoin the program anytime.

    After leaving the program, you must also refresh your tag to push the modifications live. Otherwise, the change will be pending and you will still be operating on Next.

    Set-Up your Tag domain delegation

    This feature is in the early adoption phase. To benefit from it, please get in touch with your CSM.

    The Tag Implementation Page supports two hosting methods:

    1. AB Tasty Hosted – Default

    2. AB Tasty Delegated

    This article helps you implement a Tag domain delegation implementation article. If you want to host the Tag on AB Tasty, please read Set-Up The AB Tasty Tag in 5 minutes.

    To know how to select a domain and check your implementation, please read the full procedure on .

    Good to know: You can leave and return to complete the setup anytime.

    1

    Subdomain Setup

    Warning : Do not choose a keyword that might be blocked by third-party extensions

    Good to know: For further verification, refer to our article.

    Account customization

    Some items in your account information are configurable. You can change the account name, configure a time zone, and set a default currency.

    These changes can only be carried out if you have administrator rights (admin or super admin role) for the account.

    These 3 customizations can be performed from the page Account/ General Information.

    Account information

    You change the name of the account you are one here.

    Timezone

    Definition

    A timezone is a geographic region within which the same standard time is used.

    Time zones tend to follow the boundaries between countries and their subdivisions instead of strictly following longitude, because it is convenient for areas in frequent communication to keep the same time.

    All time zones are defined as offsets from Coordinated Universal Time (UTC), ranging from UTC−12:00 to UTC+14:00. The offsets are usually a whole number of hours, but a few zones are offset by an additional 30 or 45 minutes, such as in India, South Australia and Nepal.

    Some areas of higher latitude use daylight saving time for about half of the year, typically by adding one hour to local time during spring and summer.

    AB Tasty is using the IANA database, which is a collaborative compilation of information about the world's , primarily intended for use with computer programs and operating systems.

    Choosing a Timezone for your account

    Each account has to be linked to a timezone. If your website is used in several countries or in a country that use several timezones (such as the United States of America), you’ll still need to select one reference timezone to set-up your account.

    Main usage of the timezone

    The chosen timezone will manage the timestamp for the following main use cases:

    Information:

    • Start date and hour of a campaign - appears in dashboards and reports

    • Pause date and hour of a campaign - appears in dashboards and reports

    • The dates and times at which visitors carried out actions on your site are recorded in the reports and displayed as a function of the configured timezone.

    Actions:

    • Scheduled start date and hour of a campaign - appears in dashboards and reports and triggers the campaign start action

    • Scheduled pause date and hour of a campaign - appears in dashboards and reports and triggers the campaign stop action

    In general, all the timestamps which are available and displayed into the platform are based on the offset of the selected timezone.

    How to change the timezone

    You need to select your chosen timezone in the dropdown and it will immediately become your the default timezone of your account.

    Currency

    You may choose the currency in which you transactions will be displayed in the reports of the campaigns. Make a selection among all the currencies available.

    How to manage visitor identity

    The Visitor Identity Management page allows you to choose how you want to manage the visitor ID. The options are:

    • Use AB Tasty’s visitor ID management system

    • Manage the visitor ID on your side (BYOID)

    Bring your own ID (BYOID) settings

    The Bring your own ID (BYOID) option allows you to manage the visitor ID yourself instead of using AB Tasty visitors ID management system.

    When you activate BYOID, you will be responsible for generating the visitor ID, storing the visitor ID in a first-party cookie, a JavaScript variable, or local storage, and retrieving the visitor ID from the storage location. You will also be responsible for sharing the visitor ID with AB Tasty so that AB Tasty can track the visitor’s behavior on the website and personalize the website for the visitor.

    To activate BYOID, select Manage the visitor ID on your side (BYOID)

    Once activated, you can select the three options to manage the visitor ID: - Cookie - JavaScript variable - Local storage

    Cookie

    You can select this option if you decided to store the visitor IDs in a cookie. In this case, set the cookie name and a pattern to extract the ID from the cookie. Note that you must create the cookie beforehand.

    JavaScript variable

    You can select this option if you decided to store the visitor IDs in a JavaScript variable. In this case, specify the JavaScript variable name which contains the ID.

    Local storage

    You can select this option if you decided to store the visitor IDs in the local storage. In this case, specify the local storage variable name and pattern to extract the ID from the local storage.

    Migration mode

    The migration mode allows you to either use the existing visitor ID until AB Tasty’s cookie expires or immediately switch from AB Tasty’s visitor ID management system to your own ID management.

    • Select Toggle ON to keep the existing visitor ID until AB Tasty’s cookie expire.

    • Select Toggle OFF to switch to delete all existing visitor ID and switch to BYOID immediately.

    We recommend using toggle off to start a fresh visitor ID tracking.

    How to configure JavaScript

    The enables to execute different types of JavaScript files on the website.

    To learn more about of these kinds of JavaScript files, please refer to the .

    There are different methods and levels to adding JavaScript code on AB Tasty. Select one depending on the scope you need from the JavaScript code. In most cases, you can add JavaScript code in both the visual editor and the code editor.

    The various JavaScript codes are executed in the following order:

    1. Account JavaScript

    2. Campaign JavaScript

    How to QA the Transaction tag

    Once the is implemented on your website, you need to run it through the QA process. This will ensure that for each purchase, the information is correctly collected by the AB Tasty tag and that the transaction goal is visible on the goal configuration page.

    If the transaction tag has been implemented properly, the data should be displayed after a few moment in the report. Otherwise, it means that it has not been installed the right way, and you need to review the code using . The transaction data is not retroactive and available only when the transaction tag has been implemented

    There are three different ways to verify the transaction data collection:

    • with the QA Assistant,

    • with the console’s Network

    Campaign JavaScript Execution

    DOM ready principles

    In order to fine-tune when your custom JavaScript is executed within your campaigns, you have the option to choose between two options: when the DOM is ready or before.

    When a webpage is loaded, the browser goes through the process of reading the code and creating a representation of the page called the Document Object Model (DOM). The DOM-ready point is when the browser has finished this process and the page is fully loaded and ready to be interacted with.

    It makes sure that the page is ready to be used and that all elements can be accessed before the code is executed.

    This option can be set up:

    SSO: Okta SAML Integration set-up

    This section will help you create a SAML integration and get a metadata.xml file from your SSO Identity Provider Okta.

    Configure the SAML integration

    1

    On your Okta account, go to the admin settings

    2

    How to set-up the SSO

    For security reasons, your company may choose to use single sign-on (SSO). This is a unique authentication system that enables you to connect to several platforms using the same email address and password.

    AB Tasty lets you implement SSO through SAML 2.0, an open-standard data format for exchanging authentication and authorization information. AB Tasty’s SSO feature allows you to secure your workspace and control your users’ access. All your team members can log in to AB Tasty using one set of sign-in credentials from existing authentication providers. SSO is an email-level feature that will apply across all projects and experiments.

    When you use SSO, our platform automatically links AB Tasty to your professional portal.

    Before you begin

    SSO: Microsoft Entra ID (former Azure Active Directory) SAML Integration Set-up

    This section will help you create a SAML integration and get a metadata.xml file from your SSO Identity Provider Microsoft Entra ID.

    If your organisation uses Microsoft Entra ID to access applications, you can use it to sign in to AB Tasty as well. To create an AB Tasty application in your Microsoft Entra ID tenant, you must have a Microsoft Entra ID account with one of the following permissions:

    • One of the following roles: Global Administrator, Cloud Application Administrator, or Application Administrator.

    To use Microsoft Entra ID to access AB Tasty, you first need to add it as a new SAML application within Microsoft Entra ID, then add the connection information for Microsoft Entra ID to AB Tasty.

    time zones
    Note that since this version of Next is impacting the cache mechanism, switching back to Latest might cause an additional delay in your ability to push new modifications to your website. This delay can go up to 24 hours.

    NOTE

    Note that as soon as you have saved this setting and refreshed your tag, you will be responsible for sharing the ID everywhere the tag has been implemented. The failure to provide this ID will make the tag unable to execute, display the campaigns and collect data.

    NOTE

    To make sure the visitor IDs we will collect do not include personal information on your visitors, the AB Tasty tag will automatically hash them before using and collecting them. As a result, the visitor IDs you store will be different from the one AB Tasty collects.

    NOTE

    You can configure your own cookie expiration date from the Cookie lifespan section of the Cookie settings page. By default, it is set to 13 months.

    1. In your Generic tag page > Your tag configuration zone, click on Edit configuration.

    2. In the Edit tag configuration page, select Delegation.

    3. Enter a subdomain (e.g., mysitedomain.com)

    4. Click Save to trigger infrastructure setup.

    The Status Pending status appears until the DNS records are generated. This action can take a few minutes. Once done, a Step completed status appears.

    2

    DNS Configuration

    1. When the Two DNS records are displayed, configure them in your domain provider.

    2. Click Check implementation to trigger DNS check and tag refresh. This action can take a few minutes. Once done, a Step completed status appears.

    3. Click on Simulate changes to go to the next step.

    3

    Setup validation

    1. Review your changes.

    2. If you agree with the changes, check the 2 confirmation boxes.

    3. Click Confirm and apply changes.

    4

    Code implementation

    Read our dedicated documentation to know how to choose between synchronous (recommended) and Asynchronous tag implementation.

    1. Copy the content of one the tag code (either Synchronous or Asynchronous).

    2. Open your website code.

    3. Paste one of the tag codes between the </head> tags of your pages.

    4. Go back to the Tag configuration page

    5. Click I'm done.

    6. Implementation verification is handled automatically. Your tag will be refreshed upon validation. You are redirected to the Generic Tag page.

    7. To make sure your tag is correctly implemented, click on Check your tag implementation.

    How to implement Generic Tag
    QA and validate the Generic Tag

    Element JavaScript

    In this article we will focus on how to configure these 3 types of JavaScript files.

    Good to know The AB Tasty campaign configuration interface enables you to specify, at the account level or at the campaign level, whether the JavaScript should be executed on or before DOM-Ready. Refer to this article to declare your preferences.

    How to configure JavaScript at the Account Level

    Configuration

    This code is applied to all pages where the AB Tasty tag is present. To add JavaScript code, follow these steps:

    1. Click Settings > Account > Account JavaScript

    2. Enter the code to be executed in the input window

    3. Click Save

    The newly configured behavior will apply immediately to all upcoming campaigns. Existing campaigns associated with the account will not be affected by this configuration.

    Heads up ⚡

    Do not include the opening <script> and closing </script> tags. By default, this code will run once document.ready is initialized in JQuery.

    You can select to run this JavaScript as soon as the tag is ready or only when the DOM is ready. This means the code will not run until the Document Object Model has been constructed completely, with the initial HTML document loaded and parsed (though without waiting for stylesheets, images, and subframes to finish loading).

    This option is recommended because your script might need elements on the page that won't be yet loaded on the page when executed. Once done, don't forget to save.

    Discover more about Window: DOMContentLoaded

    Code History

    Each time you click Save, the code and its creation date are saved. Once saved, a version of that JavaScript code will be created. Different versions are displayed just below the editing area. It’s possible to roll back each version by selecting it. If necessary, you can reuse a previous version. To do this, simply copy the content of the saved code and paste it into the input window.

    The code will be executed on all pages where the AB Tasty tag is present. All the conditions and restrictions need to be set up manually by developers in the code.

    How to configure JavaScript at a Campaign Level

    The JavaScript code at a campaign level will be executed each time a campaign is triggered, meaning on original version + all variations/ scenarios ; it's useful for trackers for instance.

    Visual Editor

    To add JavaScript code to an entire campaign:

    1. Click on Campaign JavaScript in the right sidebar in the visual editor of your campaign

      A modal window opens where you can insert JavaScript code:

    2. Click Save.

    Code Editor

    To add JavaScript code to a whole campaign:

    1. Go to the JS - Campaign tab in the code editor of your campaign (3rd tab of the right)

    2. From here, you can paste or edit JavaScript code to be executed at campaign level.

    3. Once done, don't forget to click the Save step.

    How to configure JavaScript at the Variation level

    The JavaScript code at a variation/ scenario level will be executed each time a variation/ scenario is triggered, meaning only on the selected variation. Do not use to set-up trackers because trackers should be fired at the campaign level. It's useful to code specific modifications as an alternative to the usage of widgets or wysiwyg editor.

    Visual Editor

    To add JavaScript code to one variation only in the editor of your campaign, on the variation:

    1. Click Variation Javascript from the Variation dropdown menu. \

    2. This opens a modal where you can insert JavaScript code. \

    3. Once done, don't forget to save.

    Code Editor

    One of the main features of the Code Editor is that it lets you insert JavaScript code. Take a look at this article about the Code Editor, if you haven’t already done so. Once you've accessed the Code Editor, the CSS tab opens by default.

    To switch to the JavaScript tab, click JavaScript. Once done, don't forget to click the Save step.

    How to set-up Element Javascript

    You may want to wait for a specific element to exist on the page before you execute your JavaScript. That’s where Element JS could be the right option.

    A JavaScript code can also be triggered when an element is present in the DOM. This means the JavaScript code related to that element will run before DOM-ready (before Window: DOMContentLoaded). In this case, the JavaScript code will be executed once the element exists.

    Visual Editor

    To use the Element JavaScript feature, select an element by clicking on it, then select Element JavaScript in the contextual menu.

    A modal window opens with a selector already specified.

    Add your JavaScript code and don't forget to save.

    Code Editor

    In the Code Editor, you need to specify directly in the code which element will trigger the snippet.

    Campaign JavaScript, Variation JavaScript, and Element JavaScript are all executed in the Visual Editor. Account JavaScript is not executed in the Visual Editor.

    AB Tasty generic tag
    following article
    tab,
  • with the Application/Local Storage tab of the console

  • The first part of the transaction tag generates a type=TRANSACTION query and the second part generates a type=ITEM query. Use the Chrome browser console to make sure the transaction tag hits are collected properly. Do this via your browser’s Network tab, in the Local Storage section.

    With the QA Assistant

    The QA Assistant allows you to QA both tracking and transactions. Transaction data can be found in the dedicated tab:

    You can place a fake order on your website and access the confirmation page. If the transaction tag is correctly installed, you should see the transaction data accordingly. If nothing is sent to the QA Assistant, it means that data is not collected and that the transaction tag has not been implemented correctly. If that is the case, refer to How to implement the transaction tag? or to the

    With the Console’s Network Tab

    Depending on the settings configured when implementing the transaction tag, these will also be listed with the transaction hit. Follow the steps below to make sure the transaction tag is sending hits properly:

    1. Access your website.

    2. Open your Chrome browser console.

    3. Open the Network tab.

    4. On the web page, add products to your cart and confirm your purchase.

    5. In the console, select the ariane.abtasty.com transaction hit.

    6. Click the Headers tab and make sure the TRANSACTION and ITEM settings are there.

    Good to know

    The transaction name (ta) appears just as you configured it when implementing the transaction tag. The AB Tasty tag automatically fills in the generic settings such as vid, vp, ul, sn, sen, sd, etc. to qualify the hit.

    With the Application/Local Storage Tab of the Console

    You must also make sure the transaction and item type data has been collected and is present in your browser’s local storage. Follow the steps below to make sure the transaction and item type data has been collected and is present in your browser’s local storage:

    1. Open the Application tab of the console.

    2. In the left-hand column, unfold the Local Storage entry.

    3. Select the ABTastyData key: All transaction and item type information is displayed.

    Good to know 💡

    You check that your transaction tag is correctly setup, you can also run an A/A test to check if the data is pulling through the reporting.

    Once the transaction hit has been collected and the usual processing time is up (between 45 minutes and 4 hours), you can add the transaction goal to your campaigns. For further information, refer to the Configuring Goals guide.\

    Follow the steps below to add the transaction goal to your campaigns:

    1. Create a new campaign in QA mode.

    2. Access the Goals step of your campaign.

    3. Click the Transaction goal.

    4. Select your transaction goal to add it as a main or secondary goal.

    Good to know The goal name matches the value assigned to the ta setting during transaction tag implementation.

    transaction tag
    this article

    on a campaign level

  • or globally in your account.

  • By default, the JavaScript code is set to execute when the DOM is ready, but if you have controls in place and you want to avoid flickering, you can choose to execute the code before the DOM is ready. This feature is available for you to use and you can access it in your advanced setting in the "Javascript Execution" subsection.

    Campaign Javascript and DOM ready

    By default, the custom campaign JavaScript (JS) will be executed when the DOM is ready. This is because the custom JS may interact with elements of the DOM that may not be present before the document fully loads.

    It is safer to execute the JS only when there is the highest chance of reaching the targeted element, otherwise, the campaign may not be displayed.

    However, this can result in a potential and avoidable delay in the application of the campaign. Since the controls for checking the presence of a DOM element can be fully developed within the custom JavaScript, AB Tasty allows you to change the default JS execution behavior for one campaign or for all upcoming campaigns. This enables the execution of the custom JavaScript before the DOM is ready.

    Configuring the execution of the campaign JavaScript before DOM-Ready does not mean that the JavaScript will systematically be executed before DOM-Ready. Indeed, there are many reasons why the AB Tasty tag may be executed after DOM-Ready (bad implementation, network problems, asynchronous targeting…).

    The code a user can set up on his account JavaScript is a different feature. In this case, AB Tasty already has a setting to decide whether the JavaScript should be executed before DOM-ready or not. Both features are not linked.

    The Element JS option is available in the visual editor and enables a user to add JavaScript to a specific element. In this case, the AB Tasty tag will add a watcher on the concerned element in order to wait for the element to be loaded before executing the JavaScript, without waiting for DOM-ready. More information in this article.

    Configuring Campaign JavaScript Execution

    We enable you to specify whether the JavaScript should be executed on or before DOM-Ready, at the account's level (anytime) or at the campaign level (for a specific campaign).

    At the Account’s Level (anytime)

    Custom JS execution can be configured at the account’s level, for all upcoming campaigns of the account.

    To configure the custom JS execution for upcoming campaigns, follow the steps below:

    1. In the Settings click Advanced Settings.

    2. Click JavaScript execution.

    3. On the Campaign JavaScript Execution page, disable the Wait for DOM-ready to execute JavaScript option if you want the custom JavaScript to be executed before DOM-ready.

    The newly configured behavior will apply immediately to all upcoming campaigns.

    Existing campaigns associated with the account will not be affected by this configuration.

    At a Campaign Level (for a specific campaign)

    Custom JS execution can be configured at a campaign’s level in the visual editor or in the code editor. This way, the default behavior of the execution of the campaign's JavaScript will not be affected.

    To configure the custom JS execution at a campaign’s level, follow the steps below:

    1. From the Campaign dashboard, open the Visual editor page or the Code editor page.

    2. From the menu bar, open the Campaign JavaScript editor.

    3. On the JavaScript editor page, uncheck the Wait for DOM-ready to execute JavaScript option.

    4. Click Save.

    On the left panel, click on Applications > Applications > Create App Integration

    3

    Create a new application integration by selecting SAML2.0, then go Next

    Complete each step as follows:

    1. General Settings

    App name

    AB Tasty

    App logo (optional)

    1. Configure SAML

    1. Feedback

    Select the following answers:

    4

    Click on Finish.

    Get metadata.xml file

    SAML signing certificates

    1

    Go back to the App settings.

    2

    Click on the Sign On tab.

    3

    Scroll down to the SAML Signing Certificates section.

    4

    Make sure the current certificate is Active

    5

    Click on Actions>View IdP metadata

    Your metadata.xml file is created.

    .

    6

    Save the file named yourcompany.xml.

    7

    Once the configuration is done, use the metada.xml along with your testing credential to .

    If you can’t create those testing credentials, ask your CSM to plan a screen-shared video call to activate the QA and login with SSO on your AB Tasty account.

    User assignments

    This section will allow access to abtasty-idp for a single user or a group:

    1

    On your Okta account, go to the admin settings http://{your-workspace}-admin.okta.com

    2

    On the left panel, click on Applications > Applications > Assign

    3

    Select Assign to people for a single user access, or Assign to group to grant access for a previously created group.

    4

    Use the search bar to find the targeted user or group

    5

    Click Assign beside every entity you want to grant access.

    6

    To save the selection and grant SSO access, click Done.

    http://{your-workspace}-admin.okta.com

    You must have Super Admin or Admin rights to access SSO settings.

  • Make sure your Identity Providers can communicate with AB Tasty – some Identity Providers are limited to internal communication, which blocks the use of SSO with AB Tasty

  • AB Tasty only manages SP-initiated SSO, so please ensure your Identity Provider is compatible

  • Set-up your SSO

    1

    Access the SSO configuration page

    1. In the upper right corner of AB Tasty, go to Settings.

    2. Select Organization.

    3. Click Single Sign-On.

    2

    Configure your SSO

    1. Click Configure SSO.

    3

    Manage email domains

    1. In the SSO configuration page, go to Email Domains section.

    4

    Activate your SSO

    1. On the Activation section, toggle on the SSO.

    Activate or deactivate SSO

    Troubleshooting

    • If you encounter errors during setup, verify your IdP metadata file.

    • Ensure all allowed domains are correct and match your users’ email addresses.

    • For further help, contact your internal IT team.

    • For more information on our SSO system, please read

    To perform this configuration, you need an Admin profile in Microsoft Entra ID. If you do not have one, please contact your IT team.

    Configure a new SAML integration

    1

    Log in to your Microsoft Entra ID account with the required permissions.

    2

    In the home page left panel, select Enterprise applications.

    3

    On the Enterprise Applications page, select + New Application.

    The Microsoft Entra Gallery opens.

    4

    In the Microsoft Entra ID Gallery, select + Create your own application.

    5

    In the Create your own app window, name your new app "AB Tasty".

    6

    Select Integrate any other application you don't find in the gallery (Non-gallery).

    7

    At the bottom of the window, select Create to create your new app.

    8

    On the Overview page select Single sign-on from the navigation menu, or click on Set up Single sign on card.

    9

    On the Single sign-on page, select SAML.

    10

    Go to Basic SAML Configuration section (1) and select Edit.

    11

    Fill these values in Microsoft Entra ID under Basic SAML Configuration

    12

    Select Save to save these changes

    13

    Go to the SAML Certificates section (3) on the SAML-based Sign-on page.

    14

    Download Federation Metadata XML.

    .

    15

    Navigate to User Attribute & Claims

    1. Navigate to User Attributes & Claims.

    Manage users and groups

    Go to the Users and Groups section in your Microsoft account to allow users/groups to access the new application on Microsoft Entra ID and/or log in from the AB Tasty login page (https://app2.abtasty.com/ssologin).

    Please make sure all Microsoft Entra ID users authorised to log in to AB Tasty also have an AB Tasty account.

    Javascript files execution

    There are different methods and levels to adding JavaScript code on AB Tasty. Select one of these depending on the JavaScript code you need to execute.

    The various JavaScript codes are executed by the tag in the following order:

    1. Account JavaScript

    2. Campaign JavaScript

    3. Variation JavaScript

    Specific rule for Element JavaScript: the code is executed once the element is loaded on the page, meaning that this execution can happen at any time, even never.

    Where and when do these javascript files run?

    • Account JavaScript: on all pages on which the tag is set, after the DOM ready (depends of preferences set-up in the settings)

    • Campaign JavaScript: on all the pages where the targeting is valid, on all variations, after the DOM ready (depends on your choices in the editors)

    • Variation JavaScript: on all the pages where the targeting is valid, when the visitor is assigned to the variation, after the DOM ready (depends on your choices in the editors)

    Where to configure these JavaScript files?

    Account JavaScript

    Please refer to this to follow the steps to implement account JavaScript.

    The AB Tasty tag enables you to inject JavaScript code into your website. At times, you may need to add a JavaScript snippet on all the pages where the AB Tasty tag is present. This could be for different reasons, such as to use it as an analytics catalyst, to add a custom script to be executed on all pages, to connect with third-party tools, or to add a quick patch.

    This code is applied to all pages where the AB Tasty tag is present.

    You can select to run this JavaScript as soon as the tag is ready or only when the DOM is ready. This means the code will not run until the Document Object Model has been constructed completely, with the initial HTML document loaded and parsed (though without waiting for stylesheets, images, and subframes to finish loading). This option is recommended because your script might need elements on the page that won't be yet loaded on the page when executed. Once done, don't forget to save. Discover more about Window: DOMContentLoaded

    Code History

    Each time you click Save, the code and its creation date are saved. Once saved, a version of that JavaScript code will be created. Different versions are displayed just below the editing area. It’s possible to roll back each version by selecting it. If necessary, you can reuse a previous version. To do this, simply copy the content of the saved code and paste it into the input window.

    The code will be executed on all pages where the AB Tasty tag is present. All the conditions and restrictions need to be set up manually by developers in the code.

    Use cases

    Using global code is useful if you want to track certain events systematically in all your future campaigns, for example:

    • Custom tracking (scroll on a specific page, video fully viewed, etc.)

    • Global tracking

    • Flag visitors with specific information: cookies, storage variables, etc. (to filter a report or target a new campaign, for example)

    • Targeting campaigns by events (to start campaigns manually)

    Campaign JavaScript

    You can also scope your JavaScript code to one single campaign (it will be executed on all variations and sub-tests of this campaign, including the original version). You can do this in two different environments: visual editor and code editor.

    Please refer to this to follow the steps to implement campaign JavaScript.

    Use cases

    Using Campaign JavaScript is useful to code directly the events you need to track on your campaign, and that are not configurable via the Action Tracking options in the visual editor.

    • Custom tracking (scroll on the page, video fully viewed, etc.)

    • Action tracking on an element which is not loaded on DOM ready

    • etc.

    For more information about campaign JavaScript file execution and options, see this specific .

    Variation JavaScript

    Variation JavaScript is executed in a single variation of a campaign. You can do this in two different environments: visual editor and code editor.

    Please refer to this to follow the steps to implement Variation JavaScript.

    Use cases

    This kind of JavaScript code should not be used to track events at all. It's useful to code your modifications instead of using the wysiwyg capabilities. But it's totally compatible with other modifications in wysiwyg and the usage of widgets.

    Element Javascript

    You may want to wait for a specific element to exist on the page before you execute your JavaScript. That’s where Element JS could be the right option.

    A JavaScript code can also be triggered when an element is present in the . This means the JavaScript code related to that element will run before DOM-ready (before Window: DOMContentLoaded). In this case, the JavaScript code will be executed once the element exists.

    Please refer to this to follow the steps to implement Element JavaScript.

    Use cases

    This kind of JavaScript code should not be used to track events at all. It's useful to code your modifications instead of using the wysiwyg capabilities. But it's totally compatible with other modifications in wysiwyg and the usage of widgets.

    How to integrate Product hits

    Integrating Product Hits is a mandatory step if you want to launch campaigns using segment criteria such as Cart abandonment and Content interest.

    To learn more about how to set-up these 2 criteria, please refer to the following article.

    AB Tasty lets you save the data related to what kind of product your visitors view and add to their cart during their visits on your website. This integration enables AB Tasty to offer you complementary services to improve your testing and personalization strategy.

    Every “hit” integration works the same way, you can follow the same process whether you are interested in using Cart abandonment or Content interest criteria.

    Like every JS snippet, you have different ways to proceed with the integration. We will present you three options we consider the best to integrate the hits product script:

    • Directly on your website:

      • In your code base

      • Through a tag manager (like GTM for instance)

    • From your AB Tasty account, inside the account's global JavaScript menu

    To learn more about Product hits and its principles, refer to .

    How to integrate Product hits

    From your website

    We recommend integrating this script directly into your website codebase. You will easily be able to execute it on the right page depending on the context and type of hits you want to send to AB Tasty:

    • On every product page for the ‘VIEW’ type of hit product. AB Tasty will receive a precise hit of navigation from your visitors

    • As soon as a visitor adds a product to its cart for the ‘CART_ITEM’ type of hit product

    • As soon as a visitor initiates a cart for the ‘CART_TOTAL’ type of hit product

    You can encapsulate the script given above in the "what to implement" section in the right context that will match your requirements and specificities.

    From your AB Tasty account

    You can integrate this script from your . The main difference is that it will be executed directly by our tag.

    You can integrate the same conditions as you would do with a proper integration in your codebase, but you are not dependent on developers to plan a release as it’s our tag that will execute it on your website.

    On the , the basic “hit” integration should look like this:

    From your Tag Manager System

    If you use a Tag Manager System like Google tag Manager, you can integrate the hit product as every other JS script (like AB Tasty generic tag for example) in this environment. You just need to follow the basic steps - here an example with Google tag Manager:

    1. Create a new tag

    2. Choose Custom HTML as a tag type

    3. Integrate into the “HTML” field the hit product. Do not forget to pass you real variables to replace the values we passed as examples in the documentation. You may have those variables already configured in your GTM, which would make the process quick to proceed with

    4. Choose the “triggering” rule to define in which context the script will be called from GTM. We advise firing it on all pages where a user can proceed with an “add to cart” action.

    In context example

    Here you will find complete codes example that properly respects three essentials to fire the hit product events:

    1. Incorporate the hit product JS script, to fill in the right data/variables of your website context

    2. Securely wait for the tag to be executed by using a native function that the AB Tasty generic tag will interpret

    3. Wait for your add-to-cart event to fire the hit product in the right context

    Good to know 💡

    AB Tasty gives its customers some solutions to help them with this kind of integration. Please contact your CSM or your main AB Tasty interlocutor, they will be happy to help you with this. We have a dedicated technical team that can help you with this integration, to go further and accompany you until it’s up and running on your website!.

    How to check the integration

    To verify the integration, you can look into the payload of the "ariane.abtasty.com" request through the network tool:

    You will find all the data in a specific index.

    Please refer to

    How to use the Transaction Tag Generator

    Transaction tag generator enables you to implement your transaction tag easily as you just need to indicate where to find the transaction data. The transaction tag will be automatically embedded in the generic tag with no need for creating or modifying any code.

    This feature is deprecated. Please read our How to implement the transaction tag article for alternative methods.

    Transaction tag generator enables you to implement your transaction tag easily as you just need to indicate where to find the transaction data. The transaction tag will be automatically embedded in the generic tag with no need for creating or modifying any code.

    Benefits:

    👉 Debugging is made easier since we have more visibility on what has been set up compared with a code you have to add to your source code or your TMS.

    👉 The transaction tag generator is based on data layer variables or CSS selectors you have defined. These parameters are more stable than using a custom code.

    Heads up ⚡

    👉 You must implement and find the exact variable names to make the transaction tag generator work.

    👉 If the variables are modified on your website, it will also impact the transaction tag collection. You will need to adapt the transaction tag implementation accordingly.

    When implementing the transaction tag directly in the settings, you do not need to implement it again into your source code.

    Configuration

    You can implement your transaction tag using one of the three following methods:

    👉: by declaring the variables from your data layer containing the transaction-related information.

    👉: by declaring the CSS selectors containing the transaction-related information.

    👉: by completineg the code snippet.

    To use the data layer mode, you first need to integrate.

    Depending on the settings you specified, a JavaScript code is created and will be automatically included in the AB Tasty tag. This code is updated each time the configuration is modified and saved with the tag up-to-date.

    First, you need to create an affiliation, which coincides with the name you will give to your transaction tag.

    Then, you must specify the URL(s) of your website on which the transaction information is available, such as the confirmation page.

    You can create as many affiliations as you want and you can edit and delete them.

    You need to select the method with which you want to implement your transaction tag:

    Data Layer Mode

    The data layer mode enables you to implement your transaction tag based on the variables defined in your data layer.

    For each mandatory field, you need to enter the name of the key that will be extracted from the corresponding variable. These keys can be found in your data layer.

    For example, to fill in the transaction ID, you need to enter the key corresponding to the transaction ID you configured in your data layer. If the transaction is available in the key order_id with a corresponding value OD564, this means that you need to enter the order_id in the transaction ID field.

    Please note that the tag will try its best to automatically format your data to the correct data type, ie. transform a character string into a number, but some specific data conversion will not be possible. You should type in already formatted data rather than let the tag automatically convert them to avoid any issues.

    Selector Mode

    The selector mode can be used if the transaction data is available directly in the code of your confirmation page. In this case, you need to fill in each field with the corresponding CSS selector that can be used in the document.querySelector function.

    The item count number (icn) coincides with the total number of items purchased during the transaction. It can be calculated via three different methods.

    Example:

    👉 If your key (data layer mode) or selector (selector mode) contains the total number of purchased items, select Default.

    In the code example, the key would be items_count (returns 5)

    👉 If your key or selector contains unitary purchased items, select Count.

    In the code example, the key would be products[] (returns 2) 👉 If your key or selector contains the quantity of each purchased item, select Sum.

    In the code example, the key would be products[].quantity (returns 5)

    Expert mode

    The Expert mode enables you to implement your transaction tag via a JavaScript code. By default, there is a code example that you can edit and replace with your own data, available in your source code or Datalayer. You also need to apply the appropriate format to your values (string, float or integer) as described in our .

    The transaction affiliation/name (ta), transaction id (tid), transaction revenue (tr) and item count number (icn) must be declared during transaction tag implementation. The other settings are optional, however we recommend configuring them also in order to enable the application of matching filters in the reports later on.

    Adding Purchased Items Data

    Information related to the purchased items can be linked to each transaction to apply matching filters in the campaign reports or to use purchase-related targeting criteria.

    Purchased items data can be collected via the three available methods: Datalayer, Selector, or Expert.

    • First, select Array of items as an optional value and enter the key or selector corresponding to the array of objects of all items purchased during the transaction.

    In the above example, all item-related data are stored in the transactionProducts array of the data layer, on the purchase confirmation page.

    • Click Add optional value: All the data corresponding to items’ characteristics appear as additional fields where you can insert the data layer key or selector corresponding to the item name, price, quantity, ID, and category:

    In this example, on the data layer, the item name can be found in the name key, the ID in the SKU key, and so on.

    To add the purchased items data in the Expert mode, apply the following steps:

    1. Complete the variable corresponding to “__TRANSACTION _ITEMS_ARRAY__”.

    2. Complete all the items characteristics with their corresponding variables in tid, in, ip, iq, ic and iv.

    Preview

    The preview enables you to verify that your transaction tag has been correctly configured by showing the latest transactions registered on your website.

    The Transaction Tag Generator is using universal collect data. This is why, after you have implemented your transaction tag, it may take a few hours for the first transactions to be visible in the preview.

    Once the new affiliation has been saved, do not forget to refresh the tag (in the header right) to be sure that all your modifications are taken into account in production.

    For each transaction, the values corresponding to the keys you specified in your transaction tag are displayed:

    If the preview is still empty after several hours, it probably means that one of the fields has not been implemented correctly. Please, check the URL page and all the fields again to be sure that everything is set up correctly. If not, you should ask your technical team or your dedicated AB Tasty consultant to do it for you.

    Set up MFA and get a secure profile

    What is a secure profile?

    A secure profile is a profile that does not rely solely on a login and a password. This is why a user who has configured Multi-Factor Authentication (MFA) will be considered secure since additional information required from the user will be asked to login.

    MFA means that besides requesting you to sign-in through your login and password, you will also be asked to provide a secret code you will get through other means like an Authenticator app, via email or SMS.

    Why is securing your profile mandatory?

    One of the main reasons is to prevent yourself from being a victim of a phishing campaign. A phishing campaign aims at retrieving your login and password through fake emails, SMS or a website that will mimic the communications or a product that you are used to. Though, you can usually spot the fakes, they tend to be more and more accurate and it's easier and easier to fall in their traps.

    But if you have secured your profile with MFA, they will not be able to log into your account even though they got your login and password since they will still be missing one key component: MFA.

    Obviously, if you have a secured profile and you somehow divulged your login and password through a phishing campaign, you should still reset your password as a precaution.

    Configuration

    You have 3 MFA methods at your disposal:

    • Authenticator app

    • Email

    • SMS

    An authenticator app is an application that, once set up, will provide time-based codes to use for the different applications that you linked it to.

    Here is a list of several Authenticator apps that you can use:

    • Google Authenticator

    • Microsoft Authenticator

    • Authy

    Once you access your AB Tasty account for the first time, you'll have to set-up your MFA entirely.

    Activating MFA with an Authenticator app

    To activate MFA with an Authenticator app, go to the :

    1. Click the Setup MFA CTA

    2. Choose App authentication

    3. A QR code is displayed;

      • You can either scan it with your Authenticator app or

    MFA is now active on your profile. You can download and save the backup codes that are generated for you.

    Activating MFA with Email

    To activate MFA with Email, follow the steps below:

    1. Click the Setup MFA CTA.

    2. Choose Email authentication

    3. A code is sent to the email address filled in your profile

    4. Enter the code in the appropriate field and click Verify.

    MFA is now active on your profile. You can download and save the backup codes that are generated for you.

    Activating MFA with SMS

    To activate MFA with SMS, follow the steps below:

    1. Click the Setup MFA CTA.

    2. Choose SMS authentication

    3. Fill in your phone number. You will receive a code by SMS.

    4. Enter the code in the appropriate field and click Verify.

    MFA is now active on your profile. You can download and save the backup codes that are generated for you.

    Signing-in with MFA

    Once the configuration is complete, when logging in to the AB Tasty platform, follow these steps:

    1. Sign-in like you are used to with an email and password, through SSO or via Google Sign-in

    2. Once done, you will be asked to enter an authentication code

    3. Depending on the MFA method you chose, you can either

      1. Get a code from your authenticator app

    If you are not able to get a code on Step 3, then you can select the method "Backup code" and try and enter one of your backup codes so you can login.

    Good to know You can also check the Don’t ask me again for the next 2 weeks option if your device is fully secured and if you do not want to enter a code on this one specifically for the next 2 weeks.

    How to set-up Shopify Custom Pixel App

    The Custom pixel is one of the two options we have built to help you integrate AB Tasty in your Shopify workflows. It specifically ensures transactional hits during checkout through Shopify's checkout extensibility. However, you'll still need to inject the AB Tasty tag manually on other pages of your site to capture full user interactions. To learn more about the two options and decide which one you should use, please refer to the article.

    To use the extension you must be an AB Tasty customer. To complete the installation, you will need your AB Tasty identifier (the ID of your tag). Your store must use Shopify Hydrogen or another Headless Framework This application works as a standalone

    Installation steps

    1. Log In Shopify

    You can display the secret key, copy it and add it inside your Authenticator app

  • Copy the code that your Authenticator app provides

  • Enter the code in the appropriate field and click Verify.

  • Receive a code on your email address

  • Receive a code on your phone via SMS

  • Enter the 6-digit code in the relevant field

  • Click Validate and you will be logged in

  • Login management & security page
    Add a new claim for the user’s email:
    • Name: mail (or user.mail)

    • Value: set to the user’s email attribute in Entra ID (e.g., user.mail).

    Identifier (Entity ID):

    Retrievable from your AB Tasty SSO configuration module on AB Tasty as Entity ID

    Reply URL (Assertion Consumer Service URL):

    Retrievable from your AB Tasty SSO configuration module on AB Tasty as ACS URL

    Sign on URL (Optional):

    https://app2.abtasty.com/ssologin

    Relay State (Optional):

    should be left empty

    Logout Url (Optional):

    https://app2.abtasty.com/logout

    You can now import it on AB Tasty
    Datalayer mode
    Selector mode
    Expert mode
    your data layer into your AB Tasty account settings
    developer portal
    How_to_Implement_the_Transaction_Tag_05.png
    How_to_Implement_the_Transaction_Tag_04.png
    Navigate to Your store > Settings > Customer events.
  • Copy and adapt the provided code snippet (see example below)

  • To retrieve your AB Tasty identifier, access the Generic tag page

  • Copy your AB Tasty account identifier in REPLACE_WITH_YOURABTASTY_IDENTIFIER section.

  • Complete the creation of the custom pixel

  • Code snippet for Custom Pixel example:

    Injecting the AB Tasty Tag on Other Pages:

    To ensure comprehensive tracking across your store, it's essential to inject the AB Tasty tag on pages outside of the checkout process. Here's how you can do it:​

    1. Using the theme.liquid File for Global Scripts:

      • From your Shopify admin, navigate to Online Store > Themes > Actions > Edit Code.

      • Open the theme.liquid file located in the Layout folder.

      • Insert your script tag just before the closing </head> tag for scripts that need to load early, or before the closing </body> tag for scripts that can load later. For example:​

        <!-- For scripts in the Assets folder --> <script src="{{ 'your-script.js' | asset_url }}" defer></script>

        <!-- For external scripts --> <script src="https://example.com/your-script.js" defer></script>

    AB Tasty integration with Shopify
    {
    "transaction_id": "transac1234",
    "items_count": 5
    "products": [
    {
    "name": "item 1",
    "quantity": 2
    },
    {
    "name": "item 2",
    "quantity": 3
    }
    ]}
    // REQUIRED
    const ABTASTY_IDENTIFIER = "REPLACE_WITH_YOURABTASTY_IDENTIFIER";
    
    // OPTIONAL
    const FEATURE_EXP_ENVIRONMENT_ID = "REPLACE_WITH_YOURFLAGSHIP_IDENTIFIER"; // see more https://www.abtasty.com/feature-experimentation/
    
    // Load AB Tasty tag
    (function (i, s, o, g, r, a, m) {
    i.abtiming = 1 * new Date();
    (a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
    a.async = 1;
    a.src = g;
    m.parentNode.insertBefore(a, m);
    console.log("ABTASTY: loading tag with identifier:", ABTASTY_IDENTIFIER);
    })(window, document, "script", `//try.abtasty.com/${ABTASTY_IDENTIFIER}.js`);
    
    const visitorId = document.cookie.match(/FLAGSHIP_VISITOR_ID=([^;]+)/i)?.[1];
    
    analytics.subscribe("checkout_completed", async (event) => {
    const {
    order,
    lineItems,
    transactions,
    currencyCode,
    discountApplications,
    totalPrice,
    shippingLine,
    totalTax,
    delivery,
    } = event.data.checkout;
    
    const discountCodes = discountApplications.filter(
    ({ type }) => type === "DISCOUNT_CODE",
    );
    
    const transactionId = order?.id ?? Math.random().toString(36).substring(7);
    const payment = transactions[0];
    const paymentMethod = payment?.paymentMethod?.name ?? payment?.gateway ?? "";
    
    const shipping = delivery?.selectedDeliveryOptions[0];
    const shippingMethod =
    shipping?.title ?? shipping?.description ?? shipping?.type ?? "";
    
    const transactionPayload = {
    ta: "Purchase",
    tid: transactionId,
    tr: totalPrice?.amount ?? 0,
    tt: totalTax.amount,
    tc: currencyCode ?? "",
    tcc: discountCodes.map(({ title }) => title).join(", "),
    icn: lineItems.reduce((acc, item) => acc + item.quantity, 0),
    ts: shippingLine?.price.amount,
    pm: paymentMethod,
    sm: shippingMethod,
    };
    
    await waitFor(() => typeof window.abtasty !== "undefined");
    
    const itemPayloads = lineItems.map((lineItem) => ({
    tid: transactionId,
    in: lineItem.variant?.title || lineItem.variant?.product.title,
    ip:
    (lineItem?.finalLinePrice?.amount ?? lineItem.variant?.price?.amount) /
    lineItem.quantity,
    iq: lineItem.quantity,
    ic: lineItem.variant?.sku || lineItem.variant?.product.id,
    iv: lineItem.variant?.product.type ?? undefined,
    }));
    
    window.abtasty.send("transaction", transactionPayload);
    itemPayloads.forEach((itemPayload) =>
    window.abtasty.send("item", itemPayload),
    );
    
    if (FEATURE_EXP_ENVIRONMENT_ID && visitorId) {
    const common = {
    ds: "app",
    cid: FEATURE_EXP_ENVIRONMENT_ID,
    vid: visitorId,
    };
    
    window.abtasty.send("transaction", {
    ...transactionPayload,
    ...common,
    });
    
    itemPayloads.forEach((itemPayload) =>
    window.abtasty.send("item", { ...itemPayload, ...common }),
    );
    }
    });
    
    const waitFor = (condition) => {
    const TIMEOUT = 5000;
    
    return new Promise((resolve, reject) => {
    const startTime = Date.now();
    
    function checkCondition() {
    // Check if the condition is met
    if (condition()) {
    resolve();
    return;
    }
    
    // Check if timeout has been reached
    if (Date.now() - startTime > TIMEOUT) {
    reject(new Error("Timeout waiting for condition"));
    return;
    }
    
    // If not met, try again after a short delay
    setTimeout(checkCondition, 100);
    }
    
    // Start checking
    checkCondition();
    });
    };
    
    if (FEATURE_EXP_ENVIRONMENT_ID && !visitorId) {
    console.log(
    "ABTASTY: No visitor id found. Make sure you have the FLAGSHIP_VISITOR_ID cookie",
    );
    }
    
    Review the automatically generated ACS URL and Entity ID.
  • In a separate window, log in your identity provider platform and generate your Identity Provider (IdP) metadata file (XML format).

    • If your provider is Okta, please read our article dedicated to Okta SAML integration

    • If your provider is Microsoft, please read our article dedicated to Microsoft Entra ID SAML integration

  • Upload your IdP metadata XML file in AB Tasty SSO configuration module.

  • Click Save.

  • The SSO page displays Email Domains and Activation sections

    Click Add Domain and enter the domain (e.g., company.com).
  • To remove a domain, click the trash icon next to the domain.

  • You cannot remove the last domain if SSO is active.

    Choose the authorized login method for your organization.

    Once SSO only login is enabled on your account, the ability to log in with an email password will be disabled, meaning that you can no longer log in to your AB Tasty account by manually entering your password.

    Your SSO provider is added and pending activation.

    Element Javascript: on all the pages where the targeting is valid, when the visitor is assigned to the variation and at the moment the element appears on the page.

    Transaction tag implementation

    Type

    Where in the application

    Account JavaScript

    Account JavaScript in settings

    Campaign JavaScript

    Campaign JS in the visual Editor Campaign JS in the code Editor

    Variation JavaScript

    Variation JS in the visual Editor Variation JS in the code Editor

    Element Javascript

    Element JS in the visual Editor

    how-to article
    how-to article
    article
    how-to article
    DOM
    how-to article

    After that, you just need to proceed with your validation process by submitting these new changes in GTM

    Product hits integration principles
    Account JavaScript
    Account JavaScript page
    Capture_d_e_cran_2022-08-23_a__14.18.38.png
    Capture_d_e_cran_2022-10-06_a__16.13.42.png

    Single Sign on (url)

    Retrievable from your AB Tasty SSO configuration module on AB Tasty as ACS URL

    Audience URI (SP Entity ID):

    Retrievable from your AB Tasty SSO configuration module on AB Tasty as Entity ID

    Default Relay State (optionnal)

    should be left empty

    Name ID format

    EmailAddress

    Application user name

    Email

    Attribute Statements (optional)

    Name: mail
    Value: user.email

    Are you a customer or partner?

    I'm an Okta customer adding an internal

    App Type

    This is an internal app that we have created

    You can now import it on AB Tasty
    configure the SSO on your AB Tasty account
    https://www.abtasty.com/wp-content/uploads/2024/03/ABTasty_Marque_Blue_150.png

    How to choose your cookies deposit method

    Definitions

    The restrict cookie deposit option enables you to manage the AB Tasty tag’s behavior to comply with regulations and adapt the configuration to user specificities. Since the implementation of the Guidelines on consent under Regulation 2016/679 (GDPR) by the European Data Protection Board on May 4, 2020, you have a legal obligation to ask your visitors for their explicit consent before tracking them and collecting their personal information through the acceptance of a cookie banner (either fully or partially).

    Moreover, you must provide proof of this consent and AB Tasty must help you do so.

    As soon as consent is given, proof of this consent is automatically sent to AB Tasty’s servers and stored for 13 months.

    Stored consent information includes the date and time, the condition and mode used, the visitor ID, and the perimeter.

    It remains your full responsibility to implement the cookie banner on your website and make its content compliant with local data protection regulations.

    In the page in the settings, you must select one of these three options:

    • Not restricting cookie deposits. This means no consent is requested from the visitors and the campaign is automatically displayed and data tracked.

    Select this option only if your country / geographical area does not require you to ask for consent before collecting data or if this account is a test account not meant to go live.

    • Managing the consent proper to AB Tasty within a third-party tool, such as a CMS. In this case, the TMS automatically checks the visitor’s consent before triggering the tags it contains. Proof of consent will still be collected; however, the consent will specify that it was collected by an uncited third-party source.

    • Delegating the consent to the AB Tasty. In this case, the tag will try to determine whether the visitor gave their consent on the website before tracking them and collecting their data.

    For more information about privacy and storage methods, please refer to this reference .

    Using your assistant to discover the right deposit method

    To help you to choose the right method for your cookie deposit policy, you can trigger our virtual assistant Ally by clicking on Start on the banner.

    The tour explains all the options you can choose and the benefits and risks of each of them.

    Option 1: Never verify visitor's consent to collect their data

    If you select the ‘Do not ask for visitor consent and track data anyway’ option, you won’t ask your visitor’s consent to track their data.

    AB Tasty campaigns will be automatically displayed, and all the actions they will perform will be tracked and stored.

    No proof of consent will be collected. We don’t recommend selecting this option as it may not comply with your local legislation.

    Options 2: Manage consent via a third-party tool

    To activate the consent obtained by a third party, just choose the option.

    When activating this option, the visitor’s consent is considered to have been given as soon as the tag is executed. The proof of consent will be written in the AB Tasty infrastructure instantly without checking any other trace of consent on the website.

    When selecting this option, AB Tasty won’t be responsible for checking the consent of your visitors.

    💡 We recommend selecting this option only if you are currently centralizing consent management for your website in a specialized tool.

    Option 3: Manage visitor consent directly in AB Tasty

    AB Tasty will automatically check the visitor’s consent before displaying campaigns. 💡 We recommend selecting this option as it complies with the European legislation and it enables campaigns to display without waiting for the visitor‘s consent.

    Campaign execution restriction

    You now need to choose how the tag will operate on your website when the visitor has not given their consent according to the campaign type.

    • If you tick a campaign type: campaigns of this type are triggered and the visitor can be assigned to a variation, or to the original version. As data is not tracked, the visitor may see different variations when browsing the website.

    • If you don’t tick a campaign type: campaigns of this type are not triggered and the visitor sees the original version.

    In both cases, data is neither collected nor stored until consent has been given. Data will be collected as soon as the visitor gives their consent.

    Test

    • If you tick the box, the visitor may be assigned to a variation, but the actions they perform won’t be collected and stored, so they won’t count in the reporting.

    • If you don’t tick the box, the visitor will see the original version so the actions they perform won’t impact the results of the test either.

    We recommend not ticking this box as you need to collect data to analyze the results of a test. If a visitor doesn’t give their consent, they will see the test but your reporting will be empty. Also, the visitor may see different variations of a campaign across their website journey.

    Personalization

    • If you tick the box, the visitor will see the personalization, but the potential actions they perform won’t be collected and stored.

    • If you don’t tick the box, the visitor won't see the personalizations.

    💡 We recommend ticking this box as you don’t necessarily need to collect data. If a visitor doesn’t give their consent, they will still be able to see the personalization.

    Split/redirect campaign

    • If you tick the box, the visitor may be assigned to a redirection, but the actions they perform won’t be collected and stored, so they won’t count in the reporting.

    • If you don’t tick the box, the visitor won't see the redirection so the actions they perform won’t impact the results of the campaign either.

    We recommend not ticking this box as you need to collect data to analyze the results of a split campaign. If a visitor doesn’t give their consent, they will see the campaign but your reporting will be empty.

    A/A test

    • If you tick the box, the visitor may be assigned to a variation, but the actions they perform won’t be collected and stored, so they won’t count in the reporting.

    • If you don’t tick the box, the visitor will see the original version so the actions they perform won’t impact the results of the test either.

    We recommend not ticking this box as you need to collect data to analyze the results of an A/A test. If a visitor doesn’t give their consent, they will see the test but your reporting will be empty.

    Patch

    • If you tick the box, the visitor will see the patch, but the potential actions they perform won’t be collected and stored.

    • If you don’t tick the box, the visitor won't see the patch.

    We recommend ticking this box as you don’t need to collect data at all when launching a patch. If a visitor doesn’t give their consent, they will still be able to see the patch.

    AB Tasty cookies placement

    You now need to choose how AB tasty will determine that a visitor has given their consent and therefore that their actions can be tracked and stored : you need to choose between the following options:

    • The user completes an action on the page

    • My website deposits its cookies

    • A specific cookie is placed

    • Didomi consent

    Heads up ⚡

    If AB Tasty detects the revocation of the visitor’s consent (that is to say, if the visitor uses functionality that cancels the consent they have previously given, or deletes the cookies from their browser), all standard data stored by AB Tasty on the visitor’s browser will be deleted and the visitor will no longer be tracked.

    The user completes an action on the page

    If you choose this option, the consent of the visitor is considered to have been given as soon as the user completes an action on the page (a scroll, a click, or any other action).

    We don’t recommend selecting this option as it is no longer compliant with the European legislation (ePrivacy). Only select this option if you want to implement the AB Tasty tag on your pre-production/staging environment and for testing purposes.

    My website deposits its own cookies

    If you choose this option, the consent of the visitor is considered to have been given if the AB Tasty tag detects any other cookies on the page (from the website itself or a third-party tool).

    We don’t recommend selecting this option as it is no longer compliant with the European legislation (ePrivacy). Only select this option if you want to implement the AB Tasty tag on your pre-production/staging environment and for testing purposes.

    Heads up ⚡

    The first two options are legacy methods that do not comply with the GDPR. Only select one of these two options if you want or plan to implement the AB Tasty tag on your pre-production or staging environment, and for testing purposes.

    A specific cookie is placed

    Choose this option if your visitor’s consent is stored in a specific cookie. To configure this option, follow these steps:

    • Specify the name of your cookie

    • Select an option from the drop-down list: contains expression, regular expression or corresponds exactly

    • Enter the expected value of your cookie

    As soon as the tag is executed, it will seek to confirm this condition and visitor tracking will only begin once consent has effectively been acknowledged. The tag will then conduct regular checks (upon each reload) to ensure the condition is still valid. If not, it will apply the effects specific to the revocation of consent.

    Didomi consent

    Choose this option if you want visitor consent to be managed by Didomi. Didomi is a Consent Management Platform (CMP) that enables you to manage your vendors (or third-party tools), and their associated purposes, and to configure the way your visitors can consent to data usage.

    For more information about the Didomi integration, please refer to the following .

    A JavaScript is triggered

    Select this option if you manage consent with specific JavaScript events when a visitor has given or revoked their consent. For more information, refer to this .

    Custom condition (JavaScript)

    Select this option if you want to create a custom JavaScript function to personalize the way consent is given by the visitor. This function must return ‘true’ if the condition is valid and if consent was obtained by the visitor. In this case, the AB Tasty tag will trigger and execute the JS function and start tracking.

    💡 We recommend selecting this option only if the above options don’t meet your needs.

    Understanding Shopify App features

    The AB Tasty Shopify app (Web pixel) is one of the two options we have build to help you integrate AB TAsty in your Shopify workflows. To know more about the two options and decide which one you should use, please refer to the AB Tasty integration with Shopify article.

    To install the app, please read How to implement Shopify app article.

    Basic functionalities

    Once set-up, the app will allow you to

    Retrieve Transaction & Checkout Events from Shopify through our Web Pixel

    These events are available on:

    • AB tasty reporting

    • Data Explorer

    Select Shopify custom trackers in the AB Tasty editor to track Shopify standard events.

    More than 10 events are automatically added to your custom trackers, (both for FE&R and Web experimentation platforms).

    These events can be added as Campaign Goals on the Web experimentation platform.

    You can Subscribe / Unsubscribe to any event from Shopify Admin.

    Two layers of consent

    The Shopify app will only run either

    If AB Tasty Tag Consent has been granted / giving it authorization to run in the AB Tasty page. (If you inspect the page, Analytics Should be “true”)

    If Shopify Consent has been granted in Shopify in the Customer Privacy API page (if you inspect the page consentReady should be “true”)

    If one of these 2 is missing, then web pixels won’t run.

    Advanced functionalities

    Choose to load the Tag Synchronously or Asynchronously

    For performance reasons, Shopify recommends using the asynchronous tag: in this case, scripts load simultaneously, which can improve page load speed but may cause flickering as modifications are applied after the page loads. If you encounter flickering effects on your website, you can use the synchronous mode. In this case, scripts are loaded in order, minimizing flickering effects by applying modifications before the website loads.

    Synchronous loading can help reduce flickering effects if it occurs, enhancing the overall user experience on Shopify stores.

    To enable one option or the other:

    1. Go on AB Tasty app homepage.

    2. Click on edit app configuration.

    3. Scroll down to advanced options

    4. Toggle on or off the Load the Tag synchronously feature.

    Track on a subdomain

    Even if your checkout workflow is on a subdomain, you can track it. This option will:

    • Create a dedicated cookie

    • Keep the standard configuration on localstorage

    • In case of 2 events sent at the same time, AB Tasty Tag will ensure reconciliation to avoid double-positive

    To enable this feature:

    1. Go on AB Tasty app homepage.

    2. Click on edit app configuration.

    3. Scroll down to advanced options

    4. Toggle Handle checkout on Subdomain on.

    How the Shopify App is functionning?

    The AB Tasty generic tag will be placed on all pages of your website, except for checkout pages (by checkout, we mean the whole payment funnel, excluding the shopping cart). This restriction applies to all Shopify partner tools. More information in the Shopify .

    This means that you will be able to:

    • Test and personalize your entire website, including the shopping cart page, except for checkout pages.

    • Track any event on your website, including transactions, since the AB Tasty Shopify app retrieves the Shopify transaction natively. There is no need to install a transaction tag.

    The AB Tasty tag or the Shopify app can be blocked by browsers add-ons, privacy settings, etc. Some discrepancies in transactions reports should be expected.

    Shopify events

    Standard events

    With Shopify, you can track a variety of events that occur on your website. Once you have installed the AB Tasty app on Shopify, these events are automatically created.

    You can retrieve them in the (in the Custom trackings tab, marked with a Shopify label) of the Web experimentation & Personalization platform. These events can be used as goals for your campaigns from the Goal step of any campaign, under the Custom trackings category to monitor your campaign performance. For more information on goals, refer to

    You can't edit, delete or hide a Shopify event from the WE&P interface.

    Here is the list of Shopify events available in Web Experimentation & Rollouts:

    Checkout events

    To track events on the checkout, it is not possible to directly use the AB Tasty tag (which cannot be executed there). For these pages, the extension uses the Shopify API. This way, you'll be able to track, for all your campaigns:

    • Transactions and associated metrics: transaction rate, number of visitors who have done at least one transaction, total number of transactions, average basket, number of items per transaction, average item price per transaction, and so on.

    The name of the associated transaction goal will be "Purchase".

    • The dimensions associated with each transaction: currency, voucher use, payment method, delivery method, and so on.

    • Page views: cart page, review page

    For other click tracking and custom tracking events, you need to declare the events to be tracked directly in your Shopify admin. See tracker set-up section.

    Collecting the "voucher" dimension

    If a discount code ("voucher") has been entered by the buyer, it will be sent to data collection and available in AB Tasty reporting. The associated transaction amount will be the one with the discount applied.

    Privacy

    When using Shopify, privacy is based on the configuration you have set up in the Web Experimentation & Personalization platform ( of the Settings). You don't have to configure anything privacy-related in Shopify. This way, when using Shopify, visitor tracking is consistent and campaigns reliable.

    Product Hits integration principles

    For different purposes, AB Tasty lets you save the data related to what kind of product your visitors view and add to their cart during their visits on your website. This integration enables AB Tasty to offer you complementary services to improve your testing and personalization strategy.

    We built two in-house targeting criteria to help our customers to go further in their experimentation and personalization strategy:

    • Cart abandonment: these criterion helps our user to target their “abandonist” visitors

    • Content interest: this criterion helps identify and target visitors based on their specific interests detected on your website. It can either work through the page title (which it does natively) or through product hits that you can send us if you find it more accurate. The hit product integration will also allow AB Tasty to display some conversion data on content interest audiences.

    To make those solutions work, we just need some data that our can not properly detect, read, and interpret. To answer that limitation, we developed a specific JS function, that we call “product hit”, for you to send us the right data in the right context, which we will leverage in the AB Tasty platform to offer you new services (inside the targeting for example).

    To send those product data to AB Tasty, you need to add a Javascript script on every product page, while your visitors are doing two types of events: viewing a product (i.e: loading any product page), and adding a product to their cart.

    To learn how-to integrate Product hits, refer to .

    What to implement for the Cart abandonment criterion

    We are going to see how the hit JS event is built, with a quick overview of its key components.

    The event uses the ‘window.abtasty.send’ function to call the global ‘abtasty’ object integrated into your website through the generic tag. This is how the collection will work. The script will pass some specific product data to our generic tag to be sent to our data pipeline. From this collection, we can build up services for you to leverage those data.

    Inside the script, you will find a list of parameters that you will need to fill in to send us the appropriate data depending on your visitor's context. Some parameters are mandatory for some specific kind of hits, defined by the first parameter, the product interaction type (first line of the following table). Apart from that, to succeed in your implementation, you just need to respect the value type of each parameter and link the right data on your side to the right parameters. Let’s deep dive into each parameter:

    .

    What to implement for the Content Interest criterion

    Please refer to our specific about the criterion in themselves to have a wide overview of how the criteria work.

    The hit product is not mandatory to use this segmentation criterion. It works with page titles and the generic tag can analyze and recognize some content interests based on general navigation data.

    But to go further with the analysis of your content interest audiences, we created in our targeting interface a table with both traffic and conversion data. And this is where the hit product integration comes in: to reconcile a specific product with a specific transaction, we need you to send us the right information when a visitor sees a product. With that good setup, you will be able to have precise conversion data for every content interest audience, and base your decisions on those every time you are setting up a campaign!

    We are going to see how the hit JS event is built, with a quick overview of its key components.

    The event uses the ‘window.abtasty.send’ function to call the global ‘abtasty’ object integrated into your website through the generic tag. This is how the collection will work. The script will pass some specific product data to our generic tag to be sent to our data pipeline. From this collection, we can build up services for you to leverage those data.

    Inside the script, you will find a list of parameters that you will need to fill in to send us the appropriate data depending on your visitor's context. Some parameters are mandatory for some specific kind of hits, defined by the first parameter, the product interaction type (first line of the following table). Apart from that, to succeed in your implementation, you just need to respect the value type of each parameter and link the right data on your side to the right parameters. Let’s deep dive into each parameter:

    How to set-up segment criteria "Content Interest" and "Cart Abandonment"

    Why specific hits Content interest and Cart abandonment

    For different purposes, AB Tasty lets you save the data related to what kind of product your visitors view and add to their cart during their visits on your website. This integration enables AB Tasty to offer you complementary services to improve your testing and personalization strategy.

    We built two in-house targeting criteria to help our customers to go further in their experimentation and personalization strategy:

    • : these criterion helps our user to target their “abandonist” visitors

    • this criterion helps identify and target visitors based on their specific interests detected on your website. It can either work through the page title (which it does natively) or through product hits that you can send us if you find it more accurate. The hit product integration will also allow AB Tasty to display some conversion data on content interest audiences.

    To make those solutions work, we just need some data that our can not properly detect, read, and interpret. To answer that limitation, we developed a specific JS function, that we call “product hit”, for you to send us the right data in the right context, which we will leverage in the AB Tasty platform to offer you new services (inside the targeting for example).

    To send those product data to AB Tasty, you need to add a Javascript script on every product page, while your visitors are doing two types of events: viewing a product (i.e: loading any product page), and adding a product to their cart.

    What to implement for the abandoned cart

    We are going to see how the hit JS event is built, with a quick overview of its key components.

    The event uses the ‘window.abtasty.send’ function to call the global ‘abtasty’ object integrated into your website through the generic tag. This is how the collection will work. The script will pass some specific product data to our generic tag to be sent to our data pipeline. From this collection, we can build up services for you to leverage those data.

    Inside the script, you will find a list of parameters that you will need to fill in to send us the appropriate data depending on your visitor's context. Some parameters are mandatory for some specific kind of hits, defined by the first parameter, the product interaction type (first line of the following table). Apart from that, to succeed in your implementation, you just need to respect the value type of each parameter and link the right data on your side to the right parameters. Let’s deep dive into each parameter:

    You can refer to our technical documentation .

    What to implement for the content interest criteria

    Please refer to our specific about the criterion in themselves to have a wide overview of how the criteria work.

    The hit product is not mandatory to use this segmentation criterion. It works with page titles and the generic tag can analyze and recognize some content interests based on general navigation data.

    But to go further with the analysis of your content interest audiences, we created in our targeting interface a table with both traffic and conversion data. And this is where the hit product integration comes in: to reconcile a specific product with a specific transaction, we need you to send us the right information when a visitor sees a product. With that good setup, you will be able to have precise conversion data for every content interest audience, and base your decisions on those every time you are setting up a campaign!

    We are going to see how the hit JS event is built, with a quick overview of its key components.

    The event uses the ‘window.abtasty.send’ function to call the global ‘abtasty’ object integrated into your website through the generic tag. This is how the collection will work. The script will pass some specific product data to our generic tag to be sent to our data pipeline. From this collection, we can build up services for you to leverage those data.

    Inside the script, you will find a list of parameters that you will need to fill in to send us the appropriate data depending on your visitor's context. Some parameters are mandatory for some specific kind of hits, defined by the first parameter, the product interaction type (first line of the following table). Apart from that, to succeed in your implementation, you just need to respect the value type of each parameter and link the right data on your side to the right parameters. Let’s deep dive into each parameter:

    How to proceed with the integration?

    For more information about the integration of the product hits, please refer to this specific .

    How to implement the Transaction tag

    AB Tasty lets you save the data related to transactions on your website (e.g., transaction amounts, payment methods, number of purchased items, average cart value, item price, etc.).

    This data is available in the reports of each campaign in the form of indicators or filters. Please refer to the article Campaign reportings for further information.

    The first thing to know about the transaction tag is that it is not a tag itself (as the generic tag can be) but rather a revenue tracker that must be placed on the order confirmation page (checkout page).

    To send transaction data to AB Tasty and display it in the reports, you need to add the transaction tag to your purchase confirmation page after the generic AB Tasty tag.

    Please note that transactions will be linked to the campaign(s) the user has seen.

    To learn more about transaction metrics, read .

    For other questions regarding the Transaction tag,

    There are 4 ways to implement the transaction tag:

    • Option 1 - which uses your dataLayer (Google Tag Manager, Tealium or CommandersAct to collect data (medium level of complexity)

    • Option 2: (advanced level of complexity - a developer is needed)

    • Option 3: (TMS - advanced level of complexity - a developer is needed)

    To access the former method using our , please refer to this specific article.

    Once the transaction tag is implemented on your website, you can go ahead and run the QA process. For further information, refer to .

    Learn how to implement the transaction tag thanks to our videos: Please note that Video 1 advises about our legacy implementation (Transaction Tag Generator), it explains r beginning at 8'13.

    Video 2 explains and methods

    Option 1 - The Transaction Tracking via dataLayer

    This new method will replace progressively the .

    It uses your dataLayer (Google Tag Manager, Tealium or CommandersAct) to collect transactional data.

    For more information about how to use it, please refer to the following specific article :.

    Option 2: A dedicated code

    Advanced Level of Complexity – A Developer is Needed

    All the needed information is accessible in .

    You can create and code your transaction script you will then integrate into your confirmation page’s source code or your Tag Management System (e.g GTM or Tag Commander).

    The transaction tag features two parts:

    • the first part enables the transmission of information related to the transaction (ID, name, amount, delivery fees, etc.)

    • the second part enables the transmission of item or product details related to purchases made by customers visiting your website.

    You can use the code template provided below.

    Follow the steps below to implement the transaction tag:

    1. Copy all of the code below and paste it into your confirmation page.

    This is the generic transaction tag. Variables are specific to your website.

    1. Replace the __TRANSACTION_[OBJECT]__values with your data, available in your source code or data layer.

    2. Apply the appropriate format to your values (string, float, or integer) as described in our .

    3. Create a loop in the code so that it is triggered as many times as there are items in the transaction.

    For Transaction Items, the key/value pair is unique to each item of the transaction.

    If the transaction includes more than one item, the Transaction Items must be sent as many times as there are items in the transaction.

    The Transaction Items must be sent independently for each item.

    Recommendations When Implementing in the Source Code

    When implementing in the source code, we recommend the following:

    • the names of transaction and item parameters must not be modified;

    • when replacing the__TRANSACTION_[OBJECT]__ values, do not keep the opening or the closing double underscore `__`;

    • there should always be a comma, at the end of each line (except for the last line, for which it is not mandatory).

    • never place double “ ”

    Option 3: Via a Tag Management System

    When implementing via a Tag Management System, we recommend the following:

    • always implement the generic tag in the first position at the top of the page, then execute it.

    • implement the transaction tag in the second position, i.e after the generic tag. Otherwise, the AB Tasty undefined error message will be displayed.

    For more information about how to implement the transaction tag with your Tag management System, please refer to , which is relative to the transaction tag set-up in Google Tag Manager.

    Option 4: Via the Shopify app

    The enables to set-up your generic tag and to send transactional events to AB Tasty such as the transaction tag does it. Please refer to .

    How to declare my Account Domain?

    To secure the implementation of your tag on your domain and prevent its execution on any other domain, you have to define your account domain in your account settings.

    To declare your domain(s), go on the page settings/ implementation/ generic tag.

    What is my domain?

    Your domain is everything that goes before the first slash (the path) and after the potential subdomains.

    Hence, if you have implemented your tag on www.my-website.com/fr , then the domain you need to set here is "my-website.com".

    You can't save a domain that is not valid. Common mistakes are including a slash (/) or the protocol (https://).

    Validity matrix

    About subdomains

    You can restrict the tag implementation to a specific subdomain. In this case, the tag will refuse to execute on a subdomain that is not listed.

    For example, you can set "www.my-website.com" and the tag will only execute on the root domain.

    You can set "eshop.my-website.com" and the tag will only execute on this specific subdomain ("eshop").

    If you decide to add a subdomain restriction because you have other AB Tasty accounts for the other subdomains, then we strongly advise you to make sure your is also up-to-date.

    Cookies and tracking

    The tag will use the listed domain-s to set the tracking cookie.

    If you have set your domain as `website.com`, the cookie will be set to `.website.com`.

    However, if you have set your domain as `www.website.com`, the cookie will be set to `.www.website.com`.

    The tag is always using the widest possible domain. If you have set `order.website.com` and `website.com`, the cookie will be set on `.website.com`.

    Cookies are shared following the descending tree domain, but not the other way around!

    In other words, cookies set on `.domain.com` will be shared with `.subdomain.domain.com` but cookies set on `.subdomain.domain.com` won't be shared with `.domain.com`.

    Keep that in mind when setting up your domain and ensure this won't cause tracking issues.

    For more information about AB Tasty cookies, please refer to the following .

    Do not declare a subdomain if you don't have a good reason to do so!

    Tracking matrix

    How to QA my domain configuration

    A wrong or missing domain in the account settings can have an impact on the behavior of the tag on the website, hence impacting the campaign execution and data collection.

    The tag will provide feedback about potential issues directly through its debug module.

    First, you need to activate of your tag by creating the needed cookie. The easiest way to do that is to type the following command in your browser's console when you are on your website:

    This will create a cookie named "abTastyDebug" with a value of "true". At the end of the QA, you can safely remove this cookie manually or by typing the following command:

    Once the debug mode is active, the tag will start logging everything that happens regarding your campaigns, trackers and settings. This might seem overwhelming depending on the amount of campaigns you have, however, the information you are looking for about the domain restriction will always be displayed at the very beginning of the AB Tasty logs. You can scroll up until the very beginning of it.

    If everything is correct

    No specific log will be displayed. The tag will log its usual information and everything will run as expected.

    If at least one domain is set, but incorrect

    The tag will specify that the current domain it is operating on does not match its configuration. However, it will continue its regular execution without any other impact.

    This probably means that either you set the wrong domain (check the spelling) or you forgot to include one or all subdomains.

    For example, if you have put "www.mywebsite.com", all subdomains will be excluded. Put "mywebsite.com" if you want them all to be included.

    Also, if you have put "eshop.mywebsite.com", only "mywebsite.com" and "eshop.mywebsite.com" will be considered valid domains for the tag to execute.

    Please refer to the matrix above to adjust your settings.

    If no domain has been set

    The tag will throw an error saying that it has stopped. No campaign will be displayed to anyone and no data will be collected. You must fix your configuration in your AB Tasty account immediately and refresh your tag.

    We encourage you, as part of the QA, to check all your domains (including subdomains) on which your tag is implemented.

    Note that, by default, the abTastyDebug cookie will be set on the root domain where you have entered the command line. If you don't see the debug logs, make sure the cookie exists and repeat the cookie insertion.

    Frequently asked questions

    Can I have more domains for my account?

    You might have business purposes to need more than 1 domain per account. You can get in touch with your AB Tasty usual contact to explain your situation and request more domains.

    What will happen if I implement my tag on a domain that is not listed here?

    The tag will simply refuse to execute on all domains that are not listed or subdomains that are excluded. No harm will be done to the said domains and subdomains.

    What are the benefits of declaring a domain?

    First of all, for the sake of security. Only you can decide where your tag is implemented. Someone stealing your tag won't be able to make it work on their own domain.

    Then, for performance, as having only one domain per account make our tag and reportings lighter and faster to execute

    Finally, it allows us to get rid of technical cookies that serve as automatic domain checker and let us move towards a cookieless world.

    const sendProductHit = (cartContent) => {
    const hitToSend = {
    pit: "CART_ITEM", // Or “VIEW” if you are integrating the content interest
    pcid: cartContent.id,// This is an example. You need to replace this variable with the right one corresponding to the cart ID on your website context. Not useful for content interest
    pq: cartContent.quantity, // This is an example. You need to replace this variable with the right one corresponding to the number of products on your website context. Not useful for content interest
    pp: cartContent.price, // This is an example. You need to replace this variable with the right one corresponding to the product price on your website context. For both abandoned cart and content interest.
    ps: cartContent.sku, // This is an example. You need to replace this variable with the right one corresponding to the product SKU on your website context. For both abandoned cart and content interest.
    pn: cartContent.name // This is an example. You need to replace this variable with the right one corresponding to the product name on your website context. For both abandoned cart and content interest.
    };
    window.ABTasty.send('PRODUCT', hitToSend);
    }
    const getCartContent = () => {
    const cardContent = window.dataLayer[0].cardContent; // This is an example using a datalayer event to listen to for the “add to cart” event. You need to replace this variables with the right one corresponding to the cart content object on your website context
    return cardContent;
    }
    const waitForABTasty = () => { // This is a security to make sure we wait for ABTasty to load before firing the event. No need to keep it. If you keep, no changes expected for this function
    if (
    // Waiting for AB Tasty to be ready to track hits
    typeof window.ABTasty !== 'undefined' &&
    typeof window.ABTasty.eventState !== 'undefined' &&
    !!window.ABTasty.eventState['tagContentExecuted'] &&
    window.ABTasty.eventState['tagContentExecuted'].status === 'complete'
    ) {
    sendProductHit(cartContent(getCartContent()));
    } else {
    window.addEventListener('abtasty_tagContentExecuted', sendProductHit(getCartContent()));
    }
    }
    window.addEventListener('add_to_cart', waitForABTasty); // The “add to cart” is an example, you can replace it with the real add to cart event of your website context 

    When a user submits their shipping information during checkout.

    Useful for analyzing the shipping step in the checkout process.

    checkout_started

    When a user initiates the checkout process.

    Helps in identifying the number of users who start the checkout process.

    collection_viewed

    When a user views a product collection page.

    Helps in tracking user interest in different product categories.

    page_viewed

    Whenever a user views a page on the site.

    Essential for understanding user navigation and page popularity.

    payment_info_submitted

    When a user submits their payment information.

    Crucial for tracking the payment step in the checkout process.

    product_added_to_cart

    When a user adds a product to their cart.

    Helps in analyzing product interest and cart additions.

    product_removed_from_cart

    When a user removes a product from their cart.

    Useful for understanding cart abandonment behavior.

    product_viewed

    When a user views a product page.

    Helps in tracking product interest and engagement.

    search_submitted

    When a user performs a search on the site.

    Helps in understanding user search behavior and popular search terms.

    Event name

    Description

    Usage

    cart_viewed

    When a user views their shopping cart.

    Helps track user engagement with the cart page.

    checkout_address_info_submitted

    When a user submits their address information during the checkout process.

    Useful for tracking the progression through the checkout stages.

    checkout_completed

    When a user successfully completes a purchase.

    Crucial for tracking conversions and sales performance.

    checkout_contact_info_submitted

    When a user submits their contact information during checkout.

    Helps in understanding user interactions at this stage.

    Privacy
    developer documentation
    Trackers page
    Campaign flow: Goals step.
    Privacy page

    checkout_shipping_info_submitted

    How to Check if the AB Tasty Tag Is Installed on My Website?
    troubleshooting article
    Transaction tag FAQ.
    our dedicated FAQ
    Custom deposit (JavaScript)
    Privacy
    article
    article

    Coincides with the number of products inside the visitor cart

    Yes

    ‘pp’ (product price)

    Float value. This parameter accepts any numbers

    Coincides with:

    • The product price for the ‘CART_ITEM’ scenario

    • The total cart amount for the ‘CART_TOTAL’ scenario

    Yes

    ‘ps’ (product SKU)

    String value.

    Coincides with the ID of the product concerned with the page view or product put into the cart

    Yes

    ‘pn’ (product name)

    String value

    Coincides with the name of the product. It should be an exhaustive reference to the product concerned with the visitor's action

    No

    ‘pn’ (product name)

    String value

    Coincides with the name of the product. It should be an exhaustive reference to the product concerned with the visitor's action

    No (but recommended)

    Parameter

    Value

    Definition

    Mandatory

    Example

    ‘pit’ (product interaction type)

    Two values are possible:

    • ‘CART_ITEM’: when a new item is added to your visitor card

    • ‘CART_TOTAL’: when you want to declare an entire cart being initiated

    Coincides with the type of action we want to track.

    Yes

    ‘pcid’ (product cart id)

    String value. You can insert here the ID of the cart you are collecting

    Coincides with the ID of the cart initiated by your visitor.

    Yes

    ‘Pq’ (product quantity)

    Parameter

    Value

    Definition

    Mandatory

    ‘pit’ (product interaction type)

    ‘VIEW’: when a product is being viewed by your visitor. The hit we are about to collect is about a visitor that is viewing a specific product during its navigation.

    This is a default value that you won’t have to change.

    Yes

    ‘pp’ (product price)

    Float value. This parameter accepts any numbers

    Coincides with the product price the visitor is seeing

    No (but recommended)

    ‘ps’ (product SKU)

    String value.

    Coincides with the ID of the product being viewed

    Yes

    generic tag
    How to integrate Product hits
    You can refer to our technical documentation
    documentation

    Integer value. This parameter accepts only numbers

    Coincides with the number of products inside the visitor cart

    Yes

    ‘pp’ (product price)

    Float value. This parameter accepts any numbers

    Coincides with:

    • The product price for the ‘CART_ITEM’ scenario

    • The total cart amount for the ‘CART_TOTAL’ scenario

    Yes

    ‘ps’ (product SKU)

    String value.

    Coincides with the ID of the product concerned with the page view or product put into the cart

    Yes

    ‘pn’ (product name)

    String value

    Coincides with the name of the product. It should be an exhaustive reference to the product concerned with the visitor's action

    No

    ‘pn’ (product name)

    String value

    Coincides with the name of the product. It should be an exhaustive reference to the product concerned with the visitor's action

    No (but recommended)

    Parameter

    Value

    Definition

    Mandatory

    Example

    ‘pit’ (product interaction type)

    Two values are possible:

    • ‘CART_ITEM’: when a new item is added to your visitor card

    • ‘CART_TOTAL’: when you want to declare an entire cart being initiated

    Coincides with the type of action we want to track.

    Yes

    ‘pcid’ (product cart id)

    String value. You can insert here the ID of the cart you are collecting

    Coincides with the ID of the cart initiated by your visitor.

    Yes

    ‘Pq’ (product quantity)

    Parameter

    Value

    Definition

    Mandatory

    ‘pit’ (product interaction type)

    ‘VIEW’: when a product is being viewed by your visitor. The hit we are about to collect is about a visitor that is viewing a specific product during its navigation.

    This is a default value that you won’t have to change.

    Yes

    ‘pp’ (product price)

    Float value. This parameter accepts any numbers

    Coincides with the product price the visitor is seeing

    No (but recommended)

    ‘ps’ (product SKU)

    String value.

    Coincides with the ID of the product being viewed

    Yes

    Cart abandonment
    Content interest:
    generic tag
    just here
    documentation
    documentation

    Integer value. This parameter accepts only numbers

    Option 4: With the Shopify app (one click activation) if you are using Shopify as your CMS.

    or single
    ‘ ’
    quotes around the value of the
    in
    parameter, even if the expected format of the value is a character string;
  • implement the transaction tag at the bottom of the page - far from the generic tag. The transaction tag does need to be triggered after the generic tag. However, placing it at the bottom of the page will ensure the generic tag has fired already and that all values the transaction tag relies on have loaded as well.

  • Metrics based on transactions article
    With the Transaction Tracking via dataLayer
    With the dedicated code
    Via a Tag Management System
    Transaction Tag generator
    How to
    QA the Transaction Tag
    Transaction Tracking via DataLaye
    TMS
    Source Code
    Transaction Tag Generator method
    How to create a Transaction Tracking via DataLayer
    the following article
    AB Tasty Shopify app
    this specific acticle
    read our dedicated FAQ

    no

    You must not input the path (/xxx)

    Input

    Validity

    Comment

    example.com

    yes

    The tag will execute on example.com and all its subdomains.

    sub.example.com

    yes

    The tag will only execute on sub.example.com and corresponding subdomains (eg. eshop.sub.example.com).

    www.example.com

    yes

    The tag will execute on www.example.com only, excluding all others subdomains.

    https://example.com

    no

    You must not input the protocol (http.s).

    Set domain-s

    Risk

    Comment

    website.com

    No

    The cookie will be set on .website.com

    order.website.com website.com

    No

    The cookie will be set on .website.com. You should remove the subdomain as it is already included in the domain.

    Visitors will be tracked along all subdomains.

    order.website.com www.website.com

    Yes

    The cookie will be set either on order or on www, depending on where it is currently executed. Both cookies won't be shared. A visitor on order won't be recognized on www.

    We strongly advise you to make sure this is what you want.

    website.com other-website.com

    No

    Cookie will be set depending on the domain it is currently executed.

    cookie domain restriction
    article
    image-20231204-164106.png
    image-20231204-163459.png

    example.com/en_GB

    How to create a Transaction Tracker via DataLayer

    Good to Know 💡

    This feature is currently available only to new clients and AB Tasty accounts not using the legacy Transaction Tag Generator feature. If you need access, please contact your Customer Success Manager (CSM).

    The page of transaction trackers enables you to create some transaction tracker rules directly linked to your DataLayer.

    Thanks to this feature, you will be able to catch all purchase events based on the rules of the DataLayer. Each time one of your visitors complete one transaction, an automatic hit will be sent into the goals metrics page, and you’ll be able to analyze them:

    • Inside the reporting

    • To extract them from our Data Explorer

    Requirements

    Inside AB Tasty

    To create a Custom Tracker via DataLayer you must toggle on the button from the , select a DataLayer and save the step:

    The available DataLayers are the following:

    • Google Tag Manager

    • Tealium

    • CommandersAct

    Heads Up❗- Custom DataLayers

    We don’t manage Custom DataLayers as we can’t predict its structure, we only support GTM, CommandersAct and Tealium providers.

    On your DataLayer

    Google Tag manager

    If you use Google Tag Manager as a DataLayer. This feature is based on the documentation provided by Google here:

    Here is a basic structure of one GTM purchase event:

    That’s why, once an order is made on your website and once a purchase event is triggerred on your DataLayer, the event must be pushed inside your Google Tag Manager DataLayer this way (see items 10 of this DataLayer):

    Event name

    Our transaction tracker is currently able to track any event with the name “purchase” which is the default event name. Soon, we will allow you to specify it.

    Tracking the value of a key in your DataLayer

    Create a rule of Transaction Tracker

    To create a new rule of Transaction tracker via DataLayer:

    1. From the Transaction Tracker page (Settings > Implementation > Transaction Tracker Management) :

    2. Click New Transaction Tracker on the top right of the table. A modal is displayed:

    Good to Know 💡- Custom keys in your DataLayer

    In order to avoid bugs or wrong configuration, and if you have some basic GA4 event, most of the inputs are already set up by default.

    Please verify them and, if needed, enter the correct information in order to have a match between our keys (name of the field you can have on this modal and the keys/values provided by the GA4 event purchase).

    Mandatory Fields:

    • Specify the event to check: By default, the name of this event is purchase. But it can be another one, and it’s not necessary to enter “purchase”. You need to define which event corresponds to your own purchase event on your datalayer. (e.g : transaction_collected, achat, checkout_completed, etc ..)

    • Enter a name for your Transaction Affiliation (ta) : Here you can define a name of the transaction. It’s not necessary to enter “purchase” (but you can). You can enter the name of your choice.

    • Transaction ID (tid)* : Refers to the transaction_id field (ex : T_12345_2 of the event inside ).

    Optional Fields:

    In addition to the required fields, you can add some optional fields in order to have more details inside your transaction.

    • Shipping (ts) : Refers to the shipping field (ex : 5.99 of the event inside ).

    • Transaction tax rate (tt) : Refers to the tax field (ex : 4.90 of the event inside ).

    • Currency (tc): Refers to the currency field (ex : USD of the event inside ).

    Matching between the purchase GA4 event and the transaction Hit from AB Tasty

    Native purchase GA4 event

    If you have some purchase events from GA4 with the same structure as in the screenshot (or inside the documentation of GA4), you don’t need to edit the fields. The only action you have to is:

    • Define one Transaction Name (not necessarily purchase. It’s at your discretion)

    • Click Save

    Custom purchase GA4 event

    You can have another structure for your purchase event. The only requirement is that the name of the event must be purchase.

    USE CASE 1

    If you have another structure, you could define by yourself the correct key. Let’s imagine you have one purchase event with this structure:

    You must enter the correct values inside the input. To illustrate and to track Coupon code (tcc) the correct input in our modal would be as follows: Coupon Code (tcc) : coupon_discount

    USE CASE 2 (Managing the dot (“.”) inside a key

    For any reason, you could have another structure with some sub-objects. Let’s imagine your purchase event has this kind of structure:

    If you have some sub-objects, we are able to retrieve the associated value. Indeed, thanks to the dot (“.”), you can go inside a deeper object. That’s why, for this case, you could configure the rule of transaction tracker like this: order.coupon

    Retrieving the transaction hit on your own website

    Good to Know 💡- URL Page

    We are able to catch any purchase event on all pages, and it’s not specific to the checkout URL page. If your IRL is /checkout or /confirmation, or anything else, it’s not a problem. The only requirements are:

    • Having a purchase event with the name purchase

    • This event must be pushed inside the DataLayer used to create the transaction tracker and connected to AB Tasty

    Check the AB Tasty hit

    Once a transaction is done on your website, and the purchase event is pushed inside your DataLayer, automatically, an AB Tasty hit (ariane.abtasty.com) is also sent into our AB Tasty collect. You can check it inside the network tab:

    A TRANSACTION hit will be sent into your AB Tasty account.

    Retrieving the transaction hit inside AB Tasty

    Once a TRANSACTION hit is sent into your AB Tasty account, you will retrieve the transaction affiliation inside your Goal manager.

    On this page : , all transaction affiliations are available.

    Here an example of a transaction affiliation based on the transaction rule you have set up with the transaction tracker. You can see that the name of the transaction affiliation is exactly the same as the name of the transaction tracker you configured before.

    The transaction affiliation will be displayed as soon as a few transaction hits will be sent into your AB Tasty account via our collect (cf. checking the AB Tasty hit).

    As soon as a transaction affiliation is available, you are able to:

    • Add the transaction tracker as a goal for your campaigns

    • Export the listing of all your transactions from the Data Explorer.

    Consent policy - cookies, storage and privacy

    Technical documentation about cookies and browser storage can be found here

    HTTP-Only cookie are cookies that can’t be read in JavaScript. With the AB Tasty tag, you can’t access, read or modify an HTTP-Only cookie. Remember to target a non-HTTP-only cookie for your privacy settings.

    Cookies and browser storage

    The AB Tasty tag uses cookies and browser storage to retain data about visitors to your websites. The cookie stores the visitor’s ID (used to determine unique visitor counts), plus their campaign history, timestamp history for all sessions, and several other useful parameters.

    • In local storage, it records data to track each visitor’s navigation history: viewed pages, transactions, events, and the segments they belong to.

    • In session storage, the AB Tasty tag keeps the temporary data it gets from our external services such as geolocation, weather information, and user agent.

    Find more information about data storage in .

    How do AB Tasty cookies work?

    AB Tasty uses first-party cookies that are defined by the URL of the website using AB Tasty. Cookies enable AB Tasty to work properly and guarantee campaign reliability by recognizing each time a unique visitor lands on the website (AB Tasty can remember if a visitor has been to the site before, without actually knowing the identity of each visitor).

    Cookies log the campaign variation that the visitor has been previously assigned to, so it’s able to direct them back to the same variation for future visits. This system avoids behavioral differences and misleading results. These cookies don’t store any information about the visitor’s identity.

    AB Tasty relies on two different cookies to collect and store data about visitors: and . AB Tasty also uses to operate properly. Read more about this in the corresponding section below.

    The "ABTasty" cookie

    This is a first-party cookie that has a lifetime of 13 months. The ABTasty cookie has two parts:

    • The first part includes data and details about the visitor:

    • The second part includes information about the campaign the visitor has been allocated:

    The "ABTastySession" cookie

    This is a first-party cookie. Its lifetime depends on the duration of the session (a session ends after 30 minutes of inactivity on the website). Its purpose is to collect information about each user’s session.

    A fourth parameter may be present: the referrer. This stores the URL the visitor came from before landing on the website. This data is only available when the “” or “” criteria are being used in the targeting of an active campaign.

    Storage method & lifespan

    AB Tasty enables you to modify a cookie’s validity period. To do so, go to: Settings > Implementation > Cookies & privacy > Cookie settings.

    Switching from Cookie to Local Storage should not lead to any issues. It activates an automatic data migration from the Cookie to the Local Storage and vice-versa. However, the Local Storage method is not compatible with cross-domain tracking (article - section Specific implementation). When choosing Local Storage, data can’t be shared between subdomains. For more, please refer to the complete section about storage.

    The ABTastyOptout cookie

    When a visitor doesn’t want to be assigned to any campaigns, they can opt out by adding the #abtastyoptout=1 parameter to the end of the website URL. For example: http://www.abtasty.com/#abtastyoptout=1

    This creates a cookie in their browser that stores the opt-out information. For more information about this, refer to

    Technical cookies

    The tag is setting several cookies to validate that it will be operational on the website. Some cookies tracking third-party tools might also discover the regular ABTasty and ABTastySession cookies even without consent being granted. This is because of how it is technically working, as explained in the section below.

    These technical cookies are not used to store visitor's data and don't even contain anything for most of them. Moreover, their lifetime never exceeds a few milliseconds.

    Checking the ability to set cookies

    AB Tasty can't work with cookies. To avoid crashing and sending unexpected error messages, the tag first checks if it can write cookies in the current session.

    The ABTasty cookie is created with a dummy value and then immediately removed if it succeeded. If the operation is failing, the tag will stop its execution and logs the information if you are using the .

    Checking the domain validity

    The tag then validates which domain it is executing on and if it matches its settings. This is done to avoid any tracking issues or unexpected further failures.

    It creates the ABTastyDomainTest cookie with no value. If the operation is a success, it is immediately removed.

    If the operation failed, the tag won't go further and will log the information if you are using the .

    Consent management specificities

    If consent is lost during the visitor's journey, AB Tasty has to erase all data stored for this visitor. To avoid losing any time and not risk any failure in this process, the tag doesn't bother checking if there is already existing data.

    All cookies are erased, whether or not they exist. This means that the tag is setting both ABTasty and ABTastySession cookies with an already-expired date. For the browser, this consists of creating a cookie that is immediately removed due to its expiration date.

    This results in both cookies being declared even without consent and for a very short period of time (in microseconds).

    Some cookies tracking third-party tools might detect these "ghost" cookies without consent. We advise setting a lifetime threshold to filter them out.

    For full technical information about AB Tasty cookies and storage, read the .

    The cookie deposit method

    The cookie deposit method enables you to manage the way information about your visitors is collected on your website.

    You can manage cookies and AB Tasty’s tag through the following three sections:

    • Secure cookies

    • Restrict cookie deposit

    • Storage method

    For details about the best implementation method regarding your needs, please refer to this specific article: .

    Heads up ⚡

    Changing the cookie privacy settings while one or several campaigns are live may revoke the consent collection of your tested visitors at their next session on your website. It may also permanently erase all stored data (e.g. cookies, campaign history, events history, etc.).We recommend you configure your preferences once and do not modify them afterward.

    To access the cookie deposit method, follow these steps:

    • Go to the dashboard and click , then click Settings

    • Click Cookies > Cookie deposit method

    Secure cookies option

    This option enables you to manage cookies on the pages of your website. Secure cookies can only be transmitted via the HTTPS protocol. HTTPS is a secure encrypted protocol aimed at increasing the security of data transfer.

    By default, this option is disabled (the button is toggled to NO). This means that cookies are deposited on both the HTTPS and HTTP pages. When you enable this option (toggle the button to YES), cookies are deposited and usable on HTTPS pages only.

    Generally speaking, many websites use HTTPS on all pages. In this case, we recommend enabling the secure cookie option. However, some websites still use HTTP pages, which is less secure. In this case, we recommend leaving the option disabled.

    Some websites use HTTPS on most pages but still have some HTTP pages. In this case, if you choose to enable secure cookies (toggle the button to YES), HTTP pages won’t be tracked as the tag is not able to set an HTTPS cookie. This may become an issue for data collection and is not recommended.

    Storage method

    This section enables you to choose how your visitor information is stored. By default, AB Tasty uses cookies to store all the information that will be displayed in your campaign reports. However, you can choose to use Local Storage to store your visitor data.

    Cookie

    This is the default option. Data related to visitors is stored in cookies placed on their browsers. When a visitor lands on a website that uses our platform, AB Tasty automatically places an ABTasty cookie on their browser to collect information such as the visitor’s ID, the campaign ID, the variation ID, etc. For each of the visitor’s sessions, an ABTasty.sessioncookie is also placed on the browser.

    Local Storage

    This option enables you to store data in your visitor’s localStorage browser instead of cookies. This can be useful for websites where cookies have weight restrictions, as it makes your cookies lighter. If you select this option, AB Tasty renounces the use of cookies, although the option remains available in the interface.

    If your visitor changes the domain or subdomain while browsing your website, the collected data will be lost. A visitor visiting your website from three different domains will be counted as three different visitors.

    Restrict cookie deposit option

    The restrict cookie deposit option enables you to manage the AB Tasty tag’s behavior to comply with regulations and adapt the configuration to user specificities. Since the implementation of the Guidelines on consent under Regulation 2016/679 (GDPR) by the European Data Protection Board on May 4, 2020, you have a legal obligation to ask your visitors for their explicit consent before tracking them and collecting their personal information through the acceptance of a cookie banner (either fully or partially).

    Moreover, you must provide proof of this consent and AB Tasty must help you do so.

    As soon as consent is given, proof of this consent is automatically sent to AB Tasty’s servers and stored for 13 months.

    Stored consent information includes the date and time, the condition and mode used, the visitor ID, and the perimeter.

    It remains your full responsibility to implement the cookie banner on your website and make its content compliant with local data protection regulations.

    In the page in the settings, you must select one of these three options:

    • Not restricting cookie deposits. This means no consent is requested from the visitors and the campaign is automatically displayed and data tracked. Select this option only if your country / geographical area does not require you to ask for consent before collecting data.

    • Managing the consent proper to AB Tasty within a third-party tool, such as a TMS. In this case, the TMS automatically checks the visitor’s consent before triggering the tags it contains. Proof of consent will still be collected; however, the consent will specify that it was collected by an uncited third-party source.

    • Delegating the consent to the AB Tasty. In this case, the tag will try to determine whether the visitor gave their consent on the website before tracking them and collecting their data.

    For more information about how to choose the right configuration for your cookies deposit choice, please refer to the following .

    window.abtasty.send("product", {
     pit: "CART_ITEM",
     pcid: yourCartIDVariable,
     pq: yourProductQuantityVariable,
     pp: yourProductPriceVariable,
     ps: yourProductSKUVariable,
     pn: yourProductNameVariable
    });
    pit:“CART_ITEM”;
    pcid: “CARTPROD0001”;
    window.abtasty.send("product", {
     pit: "VIEW",
     pp: yourProductPriceVariable,
     ps: yourProductSKUVariable,
     pn: yourProductNameVariable
    });
    window.abtasty.send("product", {
     pit: "CART_ITEM",
     pcid: yourCartIDVariable,
     pq: yourProductQuantityVariable,
     pp: yourProductPriceVariable,
     ps: yourProductSKUVariable,
     pn: yourProductNameVariable
    });
    pit:“CART_ITEM”;
    pcid: “CARTPROD0001”;
    window.abtasty.send("product", {
     pit: "VIEW",
     pp: yourProductPriceVariable,
     ps: yourProductSKUVariable,
     pn: yourProductNameVariable
    });
    // transaction tag
    <script>
    window.abtasty.send(“transaction”, {
      tid: __TRANSACTION_ID__, // Format: STRING, value example: “OD564"
      ta: __TRANSACTION_NAME__, // Format: STRING, value example: “Purchase”
      tr: __TRANSACTION_REVENUE__, // Format: FLOAT, value example: 15.47
      ts: __TRANSACTION_SHIPPING__, // Format: FLOAT, value example: 3.5
      tt: __TRANSACTION_TAXES__, // Format: FLOAT, value example: 2.60 
      tc: __TRANSACTION_CURRENCY__, // Format: STRING, vLicalue example: “EUR”      
      tcc: __TRANSACTION_COUPON_CODE__, // Format: STRING, value example: “Coupon”
      pm: __TRANSACTION_PAYMENT_METHOD__, // Format: STRING, value example: “Paypal”
      sm: __TRANSACTION_SHIPPING_METHOD__, // Format: STRING, value example: “Fedex”
      icn: __TRANSACTION_ITEM_COUNT_NUMBER__ // Format: INTEGER, value example: 12
    });
    </script>
    
    // transaction items tag
    <script>
    window.abtasty.send(“item”, {
      “tid”: __TRANSACTION_ID__, // Format: STRING, value example: “OD564”
      “in”: __TRANSACTION_ITEMS[i].ITEM_NAME__, // Format: STRING, value example: “Shoe”
      “ip”: __TRANSACTION_ITEMS[i].ITEM_PRICE__, // Format: FLOAT, value example: 3.5
      “iq”: __TRANSACTION_ITEMS[i].ITEM_QUANTITY__, // Format: INTEGER, value example: 4
      “ic”: __TRANSACTION_ITEMS[i].ITEM_CODE__, // Format: STRING, value example: “SKU47”
      “iv”: __TRANSACTION_ITEMS[i].ITEM_CATEGORY__ // Format: STRING, value example: “Blue”
    });
    </script>
    document.cookie="abTastyDebug=true;path=/;";
    document.cookie="abTastyDebug=true;path=/;expires=Thu, 01 Jan 1970 00:00:00 GMT;";
  • Transaction revenue (tr)*: Refers to the value field (ex : 30.03 of the event inside this doc).

  • Number of items (icn)* : Refers to the items field. If you select:

    • Default : If you have one key with the number of items. Let’s imagine a key items_count. This key should be a number.

    • Sum : If your key contains the quantity of each purchased item, select Sum (ex : 3).

    • Count : If your key contains unitary purchased items, select Count. (ex : 1).

  • Coupon Code (tcc): Refers to the coupon field (ex : SUMMER_SALE of the event inside this doc).

  • Payment method (pm): Define which method the visitor uses to pay. There’s no native link with the purchase method of GA4.

  • Shipping method (sm): Define which shipping method the visitor wants to have. There’s no native link with the purchase method of GA4.

  • Array of items (items): Coincides with the key corresponding to the array of objects of all items purchased during the transaction and their information. Allows you to define the following:

    • Item name (in) : Coincides with the name of the item purchased.

    • Item price (ip) : Coincides with the price of the item purchased.

    • Item quantity (iq) : Coincides with the number of times an item was purchased during the transaction.

    • Item SKU (ic) : Coincides with the product reference (SKU or product ID) of the item purchased.

    • Item category (iv) : Coincides with the category of the item purchased.

  • Data Layer Integration page
    https://developers.google.com/analytics/devguides/collection/ga4/set-up-ecommerce
    https://app2.abtasty.com/settings/transaction-tracking
    this doc
    this doc
    this doc
    this doc
    https://app2.abtasty.com/settings/goals-management?transaction
     gtag("event", "purchase", {
                    transaction_id: "T_12345_2",
                    value: 30.03,
                    tax: 4.90,
                    shipping: 5.99,
                    currency: "USD",
       items_count: 3 
                    coupon: "SUMMER_SALE",
                    items: [
                    {
                      item_id: "SKU_12345",
                      item_name: "Stan and Friends Tee",
                      affiliation: "Google Merchandise Store",
                      coupon: "SUMMER_FUN",
                      discount: 2.22,
                      index: 0,
                      item_brand: "Google",
                      item_category: "Apparel",
                      item_category2: "Adult",
                      item_category3: "Shirts",
                      item_category4: "Crew",
                      item_category5: "Short sleeve",
                      item_list_id: "related_products",
                      item_list_name: "Related Products",
                      item_variant: "green",
                      location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
                      price: 10.01,
                      quantity: 3
                    }]
              });
          });
    gtag("event", "purchase", {
                     transactionID: "T_12345_2",
                     value: 30.03,
                     tax: 4.90,
                     shipping: 5.99,
                    curr: "USD",
       coupon_discount: "SUMMER_SALE",
                     articles: [.....]
              });
          });
    gtag("event", "purchase", {
     transaction : {
      id: T_12345_2
     },
     financial : {
      tax: 4.90,
    value: 30.03,
    shipping: 5.99,
    tax: 4.90,
    curr: "USD",
    },
    order: {
    coupon: "SUMMER_SALE",
    },
    articles: [...]
    });

    QA and validate your AB Tasty tag

    Learn how to check your implementation

    ABTasty
    ABTastySession
    technical cookies
    source
    source type
    All about tags
    complete article on our developer portal
    How to choose your cookie deposit method
    Privacy
    article
    How can I avoid being assigned to the tests (opt-out)?
    pq: “5”;
    pp: “15.99”;
    ps: “ECOMPROD0001” 
    pn: “Super basket 5008” 
    pq: “5”;
    pp: “15.99”;
    ps: “ECOMPROD0001” 
    pn: “Super basket 5008” 
    AB Tasty transaction tag script
    he developer's documentation.
    the developers' documentation
    our technical information
    technical article
    Check our developers' documentation.
    You can also refer to our technical documentation
    the debug mode
    our developers' documentation
    developer portal
    this technical guide
    debug module
    debug module
    Transaction Tag part 1
    Cover
    Transaction Tag part 2

    Managing users

    Manage users and their privileges in this page.

    The users tab is displayed by default for super admins when landing on the page.

    The Organization checkup section displays the inactive and unsecured users to enable you to view at a glance users that may require an action.

    • Inactive users are those who have not logged in to AB Tasty in the past 3 months.

    • Unsecured users are those who have no MFA method setup.

    By clicking "review list" for any of the two categories, the table below will be filtered to display only inactive or unsecured users.

    The list of users (table) allows you to manage all your organization users, regardless of which AB Tasty account they're registered with. We gave the super admin new tools to easily manage widely:

    • User creation

    • User accesses

    • And user rights

    All in one place, with easy search and filtering features for you to look actively for the right user.

    Creating a new user inside your organization

    To create a new user inside your organization, you can click “Add user” at the top of the page.

    Inside a dedicated popin, you’ll then be able to add one to X new user(s) by filling in the following information:

    • New user email address

    • New user role (please refer to our dedicated section for detailed explanation about our different user roles)

    • Accounts on which the new user will be able to work on

    You can add as many users as you want: this tool gives you the ability to add multiple users in just one manipulation, simply by clicking on the “Add user CTA”.

    When adding multiple users at the same time, you can choose a different role for every user, but the account(s) on which they will be able to work on will be the same.

    Once added, the new user (through the email you declared) will receive an email inviting him to log in to the platform (through an expirable link), to finalize its inscription.

    Editing existing user rights

    Through the table, you can review every user that is working on your organization. By hovering over a specific user inside the table, you will be able to see two icons, the pen icon to edit the user rights, and the trash icon to delete the user from your organization.

    Deleting a user

    Clicking on the trash icon will permanently delete the user from your organization (meaning from all accounts he had previously access to). Once you click on the icon, a popin will appear and ask you to confirm this permanent deletion for the concerned user.

    You can select multiple users by clicking the checkboxes left to each user line, to delete permanently from your organization multiple users at once.

    Changing user rights on account(s)

    By clicking on the pen icon, we will display you the current state of this user rights. One column is dedicated to the accounts he has access to, and the other one is for the role related to this specific account. You can consider multiple different actions from there:

    • Add new account(s) on this user configuration, by clicking the “add account” call to action. You will have to define his rights on this new account

    • Remove access to a specific account, by clicking the cross icon left to the account you want to remove him from

    • Change the role a user have on a specific account, by selecting a different one inside the role dropdown (for example going through user to admin, and letting him manage the reporting)

    • And many more actions (or even all three listed above at once)

    Resetting the MFA of a user

    By hovering over any line of the table, you will notice a reset icon enabling you to reset the MFA method of a user.

    By clicking the icon, a confirmation popin is displayed. If you confirm, the user will have to .

    Performing this action can be useful for example when a user has lost their MFA device or backup codes.

    Only a super admin can reset the MFA method of a user.

    Super admins tab

    The super admins tab enables you to manage super admin rights. Super admin is the highest level of user management in our platform. They are the only role that has full ownership over the organization settings.

    You will find every organization's super admin listed in a dedicated table. From there, you can perform two actions:

    • Revoke one’s super admin access by clicking on the trash icon appearing on hover to each super admin reference line inside the table. Revoking a super admin will automatically downgrade the user to the admin role. For a complete deletion, you will need to proceed with it from

    • Add a new super admin

    Adding a new super admin

    To add a new super admin, you just have to click on the add super admin CTA, on the super admin table’s top right corner. Once you do that, you have two ways to validate a new super admin.

    The first option allows you to upgrade an existing user to the super admin role. On click to the “add super admin” popin email field, we will display the complete list of all your users on the organization level. From there, you can select the one you want to upgrade as super admin, or refine you search to look for a specific user

    The second option allows you to directly create a new user as a super admin. To do that, you just need to enter the right email address. This will be a new creation, and the new added user will go through our new user process: he will receive an email to connect and create its password, and will be directly a new super admin on your organization.

    Details of each user rights

    The following tables list the rights associated with each role. These rights are the same for tests and personalization campaigns.

    Actions on campaigns
    Dashboards
    Report
    Settings
    ROI dashboard
    NPS

    ❌

    Modify a campaign (name, editor, targeting, traffic allocation, third party tools)

    ✅

    ✅

    ✅

    ✅

    ❌

    Archive a campaign

    ✅

    ✅

    ✅

    ❌

    ❌

    Launch a campaign

    ✅

    ✅

    ✅

    ❌

    ❌

    Pause a campaign

    ✅

    ✅

    ✅

    ❌

    ❌

    Schedule a campaign

    ✅

    ✅

    ✅

    ❌

    ❌

    Duplicate a campaign

    ✅

    ✅

    ✅

    ✅

    ❌

    Delete a campaign

    ✅

    ✅

    ✅

    ❌

    ❌

    Add a campaign to a folder

    ✅

    ✅

    ✅

    ✅

    ❌

    Remove a campaign from a folder

    ✅

    ✅

    ✅

    ✅

    ❌

    Add a label to a campaign

    ✅

    ✅

    ✅

    ✅

    ❌

    Remove a label from a campaign

    ✅

    ✅

    ✅

    ✅

    ❌

    ❌

    Modify a folder

    ✅

    ✅

    ✅

    ✅

    ❌

    Delete a folder

    ✅

    ✅

    ✅

    ✅

    ❌

    Update script

    ✅

    ✅

    ✅

    ❌

    ❌

    ✅

    Create a goal

    ✅

    ✅

    ✅

    ✅

    ❌

    Modify a goal

    ✅

    ✅

    ✅

    ✅

    ❌

    Delete a goal

    ✅

    ✅

    ✅

    ✅

    ❌

    Add a filter

    ✅

    ✅

    ✅

    ✅

    ❌

    Modify a filter

    ✅

    ✅

    ✅

    ✅

    ❌

    Delete a filter

    ✅

    ✅

    ✅

    ✅

    ❌

    Refresh tag

    ✅

    ✅

    ✅

    ❌

    ❌

    Launch / pause the campaign

    ✅

    ✅

    ✅

    ❌

    ❌

    Clear data

    ✅

    ✅

    ✅

    ❌

    ❌

    Access Clarity Session Recording

    ✅

    ✅

    ✅

    ✅

    ✅

    Access Clarity Heatmap

    ✅

    ✅

    ✅

    ✅

    ✅

    Export aggregated data

    ✅

    ✅

    ✅

    ✅

    ❌

    Export raw data

    ✅

    ✅

    ✅

    ✅

    ❌

    ❌

    Manage organization page settings (MFA activation for all accounts, manage user rights on all account at once)

    ✅

    ❌

    ❌

    ❌

    ❌

    Access account management section

    ✅

    ✅

    ✅

    ✅

    ❌

    Access general information page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access user rights page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access page builder

    ✅

    ✅

    ✅

    ✅

    ❌

    Access account JavaScript page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access transaction indicators management page

    ✅

    ✅

    ✅

    ✅

    ❌

    Access profile section

    ✅

    ✅

    ✅

    ✅

    ✅

    Access personal information page

    ✅

    ✅

    ✅

    ✅

    ✅

    Access settings section

    ✅

    ✅

    ✅

    ✅

    ✅

    Access tags implementation subsection

    ✅

    ✅

    ✅

    ✅

    ❌

    Access generic tag page

    ✅

    ✅

    ✅

    ✅

    ❌

    Access generic tag for Chinese audience page

    ✅

    ✅

    ✅

    ✅

    ❌

    Access transaction tag page

    ✅

    ✅

    ✅

    ✅

    ❌

    Access framework page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access cookies subsection

    ✅

    ✅

    ❌

    ❌

    ❌

    Access cookie deposit method page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access cookie domain page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access cookie path page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access advanced settings subsection

    ✅

    ✅

    ❌

    ❌

    ❌

    Access data export page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access cross domain page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access IP exclusion page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access 1 visitor 1 test page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access visitor attributes page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access sensitive data page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access URLs grouping page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access redirect parameters page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access public API page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access integrations section

    ✅

    ✅

    ❌

    ❌

    ❌

    Access web analytics page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access DPM page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access data layer integration page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access experience analytics page

    ✅

    ✅

    ❌

    ❌

    ❌

    Access performance center page

    ✅

    ✅

    ❌

    ❌

    ❌

    ✅

    ❌

    Create a new NPS

    ✅

    ✅

    ✅

    ✅

    ❌

    Modify an NPS

    ✅

    ✅

    ✅

    ❌

    ❌

    Delete an NPS

    ✅

    ✅

    ✅

    ❌

    ❌

    Launch an NPS (make it run)

    ✅

    ✅

    ✅

    ❌

    ❌

    Pause an NPS

    ✅

    ✅

    ✅

    ❌

    ❌

    Access the NPS report

    ✅

    ✅

    ✅

    ✅

    ❌

    Action

    Super Admin

    Admin

    User

    Creator

    Viewer

    Create a campaign

    ✅

    ✅

    ✅

    Action

    Super Admin

    Admin

    User

    Creator

    Viewer

    Create a folder

    ✅

    ✅

    ✅

    Action

    Super Admin

    Admin

    User

    Creator

    Viewer

    Access the report

    ✅

    ✅

    ✅

    Action

    Super admin

    Admin

    User

    Creator

    Viewer

    Access organization management section

    ✅

    ✅

    ❌

    Action

    Super Admin

    Admin

    User

    Creator

    Viewer

    Access ROI dashboard page

    ✅

    ✅

    ✅

    Action

    Super Admin

    Admin

    User

    Creator

    Viewer

    Access an NPS

    ✅

    ✅

    ✅

    the user management table
    reconfigure their MFA

    ✅

    ✅

    ✅

    ❌

    ✅

    ✅

    Bucket Allocation
    Bucket Allocation
    image8.jpg