Skip to main content

I use segment to maintain audiences.  At times I want to activate an audience by downloading a CSV file from segment and using it to trigger for example a discount for an audience.  for each audience I would like to maintain a say 5% control group, so that I can prove the audience behavior is triggered by the discount.  

I don’t seem to be able to find a method within Segment to be able to do this.  Instead I need to run my downloaded file through an SFMC feature that will split out a random group of 5% from the audience.

Does anybody know of a way that such a task can be done within Segment itself.  Creating for example a random 5% of the Audience in another audience that would then be the control group for that audience.

Hey @Brendan Maher - leveraging Journeys is a good way to sub-segment audiences… could you try something like this?

  1. create your audience
  2. create a journey where entry = member in that audience
  3. add randomized split in journey with your control / test group percentages
  4. send to destination for both branches

 


Thanks Chauntel,  I am trying this approach now.  It costs a bit more in compute units, but I think it might be worth it to remove some of the manual steps in our workflow.

Right now the audience is manually downloaded as a csv, uploaded to SFMC and then SFMC does a journey split.

I think I need to combine your approach with the new SFMC batch destination so that I can automate the process.  Ultimately in need the control group list in my (Azure) data warehouse, but that is another step 😊

Thank you for your help!

 


Hey @Brendan Maher - just going to throw out there that Azure SQL Data Warehouse is a destination in our catalog, so you might consider adding it as a Destination for the Journey @Chauntel Greaves suggested and/or to Profiles Sync. Depending on how you use this data from there, Azure DW also makes a great rETL Source


Thanks Andy.   


As you suggested we are also using Azure as our rETL source and the traits we get from that are then used by our operations team to bulid the audiences.  but we need to get the resulting audience to a few different systems including Salesforce Marketing Cloud

We are hoping to use the connector for Salesforce Marketing Cloud to get the audience to there.  From there it can be used for push notifications and emails as well as being exported to other parts of our infrastructure including to Azure but enriched with customer interaction data. So now I am planning to put the control group logic in SFMC.

What I still need from Segment is the best way to allow users with access to create audiences and connect them to destinations to then deploy the audience quickly to SFMC.   I am hoping to trigger a batch update to SFMC as soon as the audience generation has been marked complete.
 


One evolution of this approach is that rather than setting the journey as one of two groups (Control and Test), rather have it split into, say 10 groups.  Then at the end of each, set a trait on the user and allocate their “Test Group” as being one of the 10.

Then when you want to construct an experiment, you don’t need to create separate randomised groups, but rather just say, I’m doing a test for “Test Groups 1-9”, but keeping “Test Group 10” as a control group.  As it’s a trait, it can flow to all analytics and automation tools, so you can see the performance quickly, easily and without any extra custom configs per campaign/test.


@Peter Ikladious I’ve seen other platforms do this for “quick and dirty” subpopulations, i.e. Eloqua does this. Another way you can do this for free with no Compute Credits is via Profile Sync and Reverse ETL to onboard a Test Group Trait that looks at the last digit/character of a User ID (or Anonymous ID). If you can assume that those are somewhat evenly distributed this should be fine. This is a non-exact sampling technique anyway. I’m just trying to save Compute Credits where we can! 


Reply