My inclination here would be to have at minimum four dimension tables - Dates, Customers, Products and Mailings, and one fact table with each row containing at least Customer ID, Product ID, Mailing ID, Sales Date and Sales Quantity, with the dimension tables connected to the fact table by one-to-many relationships (i.e., standard star schema).
The Mailings dimension table would consist of the Mailing ID, the start and end dates of that mailer campaign, number mailed out, and all the attributes you are varying in the A/B testing. This structure would allow you to slice and analyze based on campaign attributes, easily calculate conversion rates, total sales, etc. by campaign and attributes. (Note: this assumes that for any given pairing of date and customer, only one mailer is active/valid at that time. If that’s not the case, the structure gets a whole lot messier…)
Ultimately though the key is to start with the questions you want to answer, and structure your data model in the way that makes those questions easiest to analyze.
I hope this is helpful.