Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A/B test enhancements #193

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 81 additions & 0 deletions docs/channels/emails.rst
Original file line number Diff line number Diff line change
Expand Up @@ -478,3 +478,84 @@

Best practice is to create a Segment with a small number of Contacts to receive test Emails - for example, yourself - which ensures that you can fully test features such as unsubscribe behaviour.

Mautic A/B Testing: Sending Winner Variant to Contacts

Check warning on line 481 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Google.Headings] 'Mautic A/B Testing: Sending Winner Variant to Contacts' should use sentence-style capitalization. Raw Output: {"message": "[Google.Headings] 'Mautic A/B Testing: Sending Winner Variant to Contacts' should use sentence-style capitalization.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 481, "column": 1}}}, "severity": "WARNING"}

Check warning on line 481 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Google.Colons] ': S' should be in lowercase. Raw Output: {"message": "[Google.Colons] ': S' should be in lowercase.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 481, "column": 19}}}, "severity": "WARNING"}
=============================

Mautic's new feature allows users to run A/B testing with a segment of their contacts, determine the winning variant based on pre-configured criteria, and then send the winning email to the remaining contacts in the segment.

Check warning on line 484 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Mautic.FeatureList] Is this referring to a Mautic feature? If so, use 'Users' instead of 'users'. Raw Output: {"message": "[Mautic.FeatureList] Is this referring to a Mautic feature? If so, use 'Users' instead of 'users'.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 484, "column": 29}}}, "severity": "INFO"}

Check warning on line 484 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Mautic.FeatureList] Is this referring to a Mautic feature? If so, use 'Segment' instead of 'segment'. Raw Output: {"message": "[Mautic.FeatureList] Is this referring to a Mautic feature? If so, use 'Segment' instead of 'segment'.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 484, "column": 61}}}, "severity": "INFO"}

Check warning on line 484 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Mautic.FeatureList] Is this referring to a Mautic feature? If so, use 'Contacts' instead of 'contacts'. Raw Output: {"message": "[Mautic.FeatureList] Is this referring to a Mautic feature? If so, use 'Contacts' instead of 'contacts'.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 484, "column": 78}}}, "severity": "INFO"}

Check warning on line 484 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Mautic.FeatureList] Is this referring to a Mautic feature? If so, use 'Email' instead of 'email'. Raw Output: {"message": "[Mautic.FeatureList] Is this referring to a Mautic feature? If so, use 'Email' instead of 'email'.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 484, "column": 178}}}, "severity": "INFO"}

Check warning on line 484 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Mautic.FeatureList] Is this referring to a Mautic feature? If so, use 'Contacts' instead of 'contacts'. Raw Output: {"message": "[Mautic.FeatureList] Is this referring to a Mautic feature? If so, use 'Contacts' instead of 'contacts'.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 484, "column": 201}}}, "severity": "INFO"}

Check warning on line 484 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Mautic.FeatureList] Is this referring to a Mautic feature? If so, use 'Segment' instead of 'segment'. Raw Output: {"message": "[Mautic.FeatureList] Is this referring to a Mautic feature? If so, use 'Segment' instead of 'segment'.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 484, "column": 217}}}, "severity": "INFO"}

How it Works
--------------

Let's go through an example:

Check warning on line 489 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Google.We] Try to avoid using first-person plural like 'Let's'. Raw Output: {"message": "[Google.We] Try to avoid using first-person plural like 'Let's'.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 489, "column": 1}}}, "severity": "WARNING"}

1. **Setting up the A/B Test**:

Assume you have a segment of 1,000 contacts. You create an A/B Test with three different emails (A, B, and C). You set the parent email to use 10% of all emails for the A/B tests, with a 3-hour delay to determine the winning email. The two children emails are each set to 33%.

Check warning on line 493 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Mautic.FeatureList] Is this referring to a Mautic feature? If so, use 'Segment' instead of 'segment'. Raw Output: {"message": "[Mautic.FeatureList] Is this referring to a Mautic feature? If so, use 'Segment' instead of 'segment'.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 493, "column": 22}}}, "severity": "INFO"}

The distribution may look like this:
- Email A: sent to 34 people
- Email B: sent to 33 people
- Email C: sent to 33 people

2. **Determining the Winning Criteria**:

For this test, let's say you've set the 'winning criteria' as the email open rate. The results come back as follows:
- Email A: Open rate is 25%
- Email B: Open rate is 15%
- Email C: Open rate is 10%

3. **Sending the Winning Email**:

After the pre-determined amount of time (3 hours in this case), the winning email (Email A) is sent to the remaining 70% of the segment using the standard `mautic:broadcast:send` command.

Check failure on line 509 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Mautic' instead of 'mautic'. Raw Output: {"message": "[Vale.Terms] Use 'Mautic' instead of 'mautic'.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 509, "column": 160}}}, "severity": "ERROR"}

Commands
-----------

- `mautic: email:sendwinner` searches for all emails with variant settings for automatically sending the winning variant. This command can be used by a cron job.

Check failure on line 514 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Mautic' instead of 'mautic'. Raw Output: {"message": "[Vale.Terms] Use 'Mautic' instead of 'mautic'.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 514, "column": 4}}}, "severity": "ERROR"}
- `mautic: email:sendwinner --id=101` works for a single email only.

Check failure on line 515 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Mautic' instead of 'mautic'. Raw Output: {"message": "[Vale.Terms] Use 'Mautic' instead of 'mautic'.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 515, "column": 4}}}, "severity": "ERROR"}

Important Points
------------------

- To send the A/B test, the 'Send' button forces emails to be sent with publish dates as broadcast emails with `mautic:broadcast:send` command.

Check failure on line 520 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Mautic' instead of 'mautic'. Raw Output: {"message": "[Vale.Terms] Use 'Mautic' instead of 'mautic'.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 520, "column": 113}}}, "severity": "ERROR"}
- Once a variant is chosen as the winner with command `mautic: email:sendwinner`, the other emails are set as unpublished, and the winning email becomes a regular email.

Check failure on line 521 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Mautic' instead of 'mautic'. Raw Output: {"message": "[Vale.Terms] Use 'Mautic' instead of 'mautic'.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 521, "column": 56}}}, "severity": "ERROR"}
- The winning email is then sent as a regular email to the remaining contacts using `mautic:broadcast:send`.

Check failure on line 522 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Mautic' instead of 'mautic'. Raw Output: {"message": "[Vale.Terms] Use 'Mautic' instead of 'mautic'.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 522, "column": 86}}}, "severity": "ERROR"}

Setting Up A/B Testing in Mautic Emails
--------------------------------------------

This guide will walk you through the process of enabling and setting up A/B tests for your emails in Mautic.

Enable and Setup A/B Tests for Email
---------------------------------------

During the process of creating an email, you will have the option to enable and set up A/B tests.

.. image:: images/ab-test1.png
:alt: Email A/B Testing Setup

Create Variant from Parent Email
----------------------------------

Once you have a parent email, you can create a variant from it. This variant will serve as an alternative to the original email for the A/B test.

.. image:: images/ab-test2.png
:alt: Creating Variant

Setup Traffic for Children Email
-----------------------------------

After creating a variant, you can set up the amount of traffic (or percentage of contacts) that each variant will be sent to.

.. image:: images/ab-test3.png
:alt: Setting Up Traffic

A/B Testing Summary
----------------------

After setting up your A/B test, you can view a summary of your setup. This summary includes information on the parent email, the variants, and the distribution of traffic between them.

.. image:: images/ab-test4.png
:alt: A/B Testing Summary

For further testing and adjustments, make use of Mautic's `mautic: email:sendwinner` command to send the winning variant, which can be used by a cron job for automatic sending, and make sure to regularly check the performance of your variants.

Check failure on line 561 in docs/channels/emails.rst

View workflow job for this annotation

GitHub Actions / prose

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Mautic' instead of 'mautic'. Raw Output: {"message": "[Vale.Terms] Use 'Mautic' instead of 'mautic'.", "location": {"path": "docs/channels/emails.rst", "range": {"start": {"line": 561, "column": 60}}}, "severity": "ERROR"}
Binary file added docs/channels/images/ab-test1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/channels/images/ab-test2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/channels/images/ab-test3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/channels/images/ab-test4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading