Leanplum's user guides and developer documentation.

Leanplum Documentation

Leanplum's user guides, SDK setup, API docs, and more resources are here to help you get the most out of A/B testing, Campaigns, Messaging, and Analytics.

IP warmup

IP warming is the process of slowly increasing the volume of marketing emails you send until you reach your desired daily sending volume. The gradual increase in volume, paired with positive user engagement, helps inbox providers positively determine your IP and domain sending reputation.

If you have a new IP address from Leanplum (or if your IP hasn't sent your highest daily sending volume in over 30 days), you'll need to warm your IP before sending higher volumes of mail. IP warming won't guarantee a positive sending reputation, but following these guidelines can help lower your risk of developing a negative sending reputation.

👍

Before you start IP warming:

  1. Consider a separate subdomain for your transactional emails (i.e. registration, purchase receipt, etc.) to help protect the sending reputation from any negative engagement of your marketing emails. Examples: Marketing sub-domain: "mail.example.com," Transactional: "support.example.com."

  2. Complete the Leanplum email onboarding form with your requested marketing and/or transactional domains. Once Leanplum confirms that your domain and IP setup and testing is finished, you can begin IP warming your marketing emails. See Email setup for more.

1. Identify your most engaged users

During the warmup period, it's critical to target your most active and engaged subscribers. You should start with your most engaged (low risk) users with email open events in the last 0-3 months. Later on in the warmup you can include some medium risk users with engagement in the last 4-5 months. The high risk group ( >6 months) should not be emailed during the warmup . Once it is complete you can send a re-engagement campaign then sunset if no response.

If you don't have access to historical email engagement data, try targeting users based on app engagement, such as last active time or push opt-ins.

🚧

Verify your email lists to avoid bounces and spam traps.

Consider using an email validation service like BriteVerify or EmailOversight to help verify email addresses before importing them into Leanplum. Bounces and failed sends can lead to negative sending reputation, so it's important to identify inactive or churned email addresses and avoid sending them mail, especially during IP warmup.

Set a warmup user attribute to target each group of users

Once you identify a list of engaged users, set a user attribute for each group of users you plan on emailing each day of the warmup (e.g. warmupDay1, warmupDay2, etc). This makes it easier to send to the right number of users each day of the warmup campaign.

Follow the recommended warmup schedule to add the right number of users for each day/attribute. Also, if you will be using just one template for the warming - be sure to email different users each day. If you need to target the same users more than once, make sure to create different content. See full instructions for adding user attributes for email IP warmup audience.

2. Create a relevant evergreen campaign to IP warm with

In the Actions tab, create an email campaign that will be relevant to users throughout the warmup period. Some evergreen campaign content ideas are how-to guides, tutorials, or any content that is relevant and engaging over longer periods of time.

👍

Positive engagement typically leads to positive sending reputation

Follow email content best practices to encourage positive recipient engagement, and always include an unsubscribe link in marketing emails.

Sub-Audience for IP warmup Day 1

For this first email Sub-Audience, use the user attribute you set above for IP warmup Day 1. This audience should be your smallest volume of users — no more than 50 users based on the recommended IP warming schedule.

Day 1 email

You may want to add "User attribute email is set" AND "Unsubscribed from all marketing emails is false" to your segment selection in the Audience tab. This isn't necessary if you verified all of your emails before setting user attributes.

Sub-Delivery for IP warmup Day 1

Select Scheduled delivery with 0 days of delay. This will send the email at the date and time of your overall Campaign Delivery, which should be set for the day you want to start IP warming.

🚧

Using Optimal Time and User's Timezone delivery

Optimal Time and User's Timezone delivery require a history of user engagement, app usage, and email open rates to calculate properly. To avoid message send issues, we recommend scheduling campaigns in UTC time when you first start using Leanplum.

3. Set up the rest of your IP warmup emails

Next, you'll use your day 1 email as a template to create the rest of the IP warming emails in the campaign.

Following the email volume schedule, copy your evergreen email for as many days it will take you to reach your highest daily sending volume. See copying actions for guidance.

Make sure each email name is unique to avoid sending the wrong campaign to the wrong users (for example, Warmup Day 1, Warmup Day 2, etc.).

Edit each email's Sub-Audience and Sub-Delivery to match the IP warming delivery schedule. The user attributes you set up for IP warming should make it easy to set a Sub-Audience with the right number of users for each day. Make sure the delivery for each campaign is scheduled for the right day in the warmup schedule.

For example, if my highest daily sending volume is 10K, and my goal is to send two campaigns on the first Monday of each month:

  • It will take 6 days to warm up to 10K users following the IP warmup schedule. We'll copy our email 6 times, editing the Sub-Audience and Sub-Delivery for each one.
  • I should begin IP warmup 6 days prior to the day I want to target my full file list. For this example, that's 6 days before the first Monday of the month.

👍

Review your entire campaign's settings before scheduling!

  1. Make sure your overall campaign Audience is set to "IPwarm_attribute is set". Insert whatever name you used to set warmup day user attributes, e.g. IPwarm, WarmupDay, etc.
  2. Your campaign's Delivery should be Scheduled for the day you want to start warming.
  3. Your actions should each be delayed 1 day apart. The first email should have the smallest Sub-Audience, and each subsequent message should have a larger Sub-Audience (based on your IP warmup user attributes).

4. Monitor analytics after each send

Daily results may vary as the inbox provider's filters try to assess the engagement trends towards your messages.

After each warmup day send, monitor engagement metrics. Keep an eye out for a trending decline in:

  • Unique Open Rate — Decline could be possible spam filtering by inbox providers.
  • Delivered Rate — Decline could be a temporary block or sending too many invalids.

If you notice a trending decline in one or both areas, pause remaining sends and open a support ticket to help troubleshoot with [email protected].

IP warming schedule

Target your most engaged subscribers for earlier days of the warmup, then add moderately engaged users later on as you progress through the warmup period. Example:

Warmup Day 1 = 50 of most engaged users
Warmup Day 2 = 100 of most engaged users
Warmup Day 3 = 200 engaged users
Warmup Day 4 = 400 engaged users

And so forth…

Day

Emails/day

1

50

2

100

3

200

4

400

5

800

6

1,500

7

3,000

8

6,000

9

10,000

10

20,000

11

40,000

12

80,000

13

150,000

14

300,000

15

600,000

16

1,200,000

17

2,400,000

18

4,500,000

19

9,000,000

20

15,000,000

21

2x sends daily

IP warming FAQ

How often is my sender reputation evaluated?

Sender reputation is evaluated based on a 30-day rolling calendar. If you've decreased your sending volume over the last 30 days, your IP will need to be rewarmed by following the IP warmup schedule.

Why do I need to IP warm?

Sending high volumes of mail from a "cold" IP can hurt your sending reputation, especially if engagement for this mail is poor (bounces, marking as spam, etc.). For this reason, it's safer to "warm" an IP with smaller volumes of mail and target users with a history of positive engagement (clicks, opens, etc.).

With Leanplum's email provider, you get a dedicated IP address and domain combination. Because your IP isn't shared with other email users, you have more control over what is sent from your IP — this also means you have more responsibility when monitoring and maintaining your sending reputation.

What should I expect during IP warmup?

  • Leanplum's ESP has a 72-hour send window. If inbox providers don't accept the email right away, our ESP will continue to retry sending for up to 72 hours. These temporary deferrals are common. After 72 hours, the mail will fail, affecting your "Delivered per sent" rate.
  • Allow 24 to 36 hours for recipients to engage with the email to determine your true reporting metrics.
  • If your desired "Delivered per sent" rate is not achieved, open a support ticket with [email protected].
  • Inbox providers may place a block bounce on your email. This is common when they see sends from a new IP and domain combination.
  • Each inbox provider has a different threshold for spam and determines reputation differently. You may see spam filtering at one domain and not another.

When can I send mail to my less engaged audience?

Send a win-back campaign after IP warmup is complete. Consider sending a campaign with a special promo or CTA before adding these emails back into the distribution list (for example: "It's been a while. Do you still want to hear from us?"). If users still do not engage, remove them from all future marketing mailings. Continually targeting this population can cause negative engagement, which may impact your engaged users from receiving your emails in the future.

Additional resources

There's a lot that goes into warming your IP and domain and maintaining your sender reputation. See more:

Updated about a month ago


IP warmup


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.