Frequency Capping in Email Marketing: A Comprehensive Guide

Frequency Capping in Email Marketing: A Comprehensive Guide
Home Page

Frequency Capping in Email Marketing: A Comprehensive Guide

Introduction

Frequency capping in email marketing is a crucial strategy that helps maintain a healthy subscriber base, prevent email fatigue, and foster engagement. In this comprehensive guide, we will explore the different aspects of frequency capping and how it can be effectively used to optimize your email campaigns.

1. What is Frequency Capping?

Frequency capping involves limiting the number of times an individual recipient receives a specific email campaign within a designated time frame. The primary goal is to strike a balance between staying in touch with your audience and avoiding overwhelming them with too many emails.

2. Why is Frequency Capping Important?

  • Preventing Email Overload: Overloading subscribers with excessive emails can lead to annoyance and increased spam reports, harming your sender reputation.
  • Maintaining Engagement: Controlled email frequency increases the likelihood that subscribers will engage with and act on your emails.
  • Respecting Subscriber Preferences: Frequency capping allows you to respect the preferences of different subscriber segments, building trust and positive relationships.
  • Avoiding Email Fatigue: Email fatigue can lead to decreased engagement and higher unsubscribe rates.

3. Categories of Frequency Capping

A. Time-based Frequency Capping

  1. Daily Frequency Capping: Limit the number of emails sent to each subscriber within a 24-hour period.
  2. Weekly Frequency Capping: Control the number of emails sent to subscribers within a week.
  3. Monthly Frequency Capping: Restrict the number of emails sent to each subscriber within a calendar month.
  4. Custom Frequency Capping: Use custom time frames based on specific business needs or campaign objectives.
  5. Rolling Frequency Capping: Control the frequency based on the time elapsed since the last email was sent to a subscriber.
  6. Business Days Frequency Capping: Implement frequency capping based on business days, excluding weekends and holidays.
  7. Time Zone-based Frequency Capping: Send emails at appropriate times based on each subscriber's time zone.
  8. Gradual Frequency Capping: Gradually reduce the email frequency for a subscriber over time.

B. Event-based Frequency Capping

Control the number of emails triggered by specific subscriber actions or events, such as purchases or webinar sign-ups.

C. Content-based Frequency Capping

Limit the frequency of emails containing specific types of content, such as promotional offers or sales pitches.

D. Segmented Frequency Capping

Apply different frequency caps to various subscriber segments based on their characteristics and engagement levels.

E. Preference-based Frequency Capping

Allow subscribers to set their email frequency preferences during the sign-up process.

4. Implementing Frequency Capping

  • Analyze engagement data to identify optimal frequency levels.
  • Test different frequency caps on subsets of your audience.
  • Use automation features in email marketing platforms to enforce frequency capping rules.

5. Monitoring and Optimization

  • Regularly monitor engagement metrics and adjust frequency capping as needed.
  • Consider subscriber feedback and adapt your strategy accordingly.

Time Frequency Categorization

1. Rare Time Frequency:

Definition:

The "Rare Time Frequency" category refers to events or data points that occur infrequently or at an exceptionally low rate within the given time frame. These occurrences are characterized by their scarcity and unusual nature, making them uncommon in comparison to other categories. They may represent significant events or outliers in the dataset.

2. Moderate Time Frequency:

Definition:

The "Moderate Time Frequency" category indicates events or data points that occur at an average or balanced rate within the specified time frame. In this category, there is neither a scarcity nor an excess of occurrences, and the frequency is considered typical or usual.

3. High Time Frequency:

Definition:

The "High Time Frequency" category describes events or data points that occur at a notable and significant rate within the given time frame. In this category, there is an abundance of occurrences, indicating a higher frequency compared to the "Moderate" and "Rare" categories.

4. Over-Saturated Time Frequency:

Definition:

The "Over-Saturated Time Frequency" category represents events or data points that occur at an excessive rate, exceeding what is considered normal or desired for the specific system or environment. These occurrences may overwhelm the system or reach a saturation point where it becomes challenging to process or manage them effectively.

Mastering Frequency Capping in Salesforce Marketing Cloud with Automation Studio

Step 1: Define Your Frequency Cap Rules

Before setting up frequency capping, it's essential to determine the appropriate rules based on your marketing objectives and customer preferences. You can establish rules such as limiting the number of emails or SMS messages sent to a subscriber per day, week, or month. Ensure that these rules align with your overall marketing strategy and customer experience goals.

Step 2: Create a Data Extension

To keep track of the message frequency, you'll need to create a data extension in Salesforce Marketing Cloud. This data extension will store information about each customer's interactions with your messages, enabling you to apply the frequency cap rules effectively. Include fields like SubscriberKey, MessageID, and Timestamp to capture relevant data.

  1. Market Frequency
  2. Market Suppression
  3. Publication Suppression List

Step 3: Set Up Automation Studio

In Automation Studio, you'll build a series of automation activities to control and enforce the frequency capping rules. Let's go through the process step-by-step:

  1. Query Activity: Create a SQL query that pulls data from your target audience data extension and the frequency capping data extension. Join these two data extensions based on the SubscriberKey.
    • Fetch Number of Emails Sends
      
      SELECT
        sent.SubscriberKey,
        sent.SubscriberID,
        EmailAddress,
        COUNT(*) AS Number_Of_Sends,
        CASE
          WHEN COUNT(*) = 0 THEN 'rare'
          WHEN COUNT(*) <= 5 THEN 'moderate'
          WHEN COUNT(*) <= 10 THEN 'saturated'
          WHEN COUNT(*) <= 20 THEN 'high frequency'
          ELSE 'over saturated'
        END AS Send_Frequency_Category
      FROM _Sent sent
      INNER JOIN _Subscribers subscribers
      ON subscribers.SubscriberKey=sent.SubscriberKey
      WHERE EventDate >= DATEADD(day, -7, CAST(GETDATE() AS DATE))
      GROUP BY sent.SubscriberID,sent.SubscriberKey,EmailAddress
      
                                  

      SQL Query Explanation:

      SELECT Clause: Specifies the columns to be included in the result set:

      • sent.SubscriberKey: The unique identifier for each subscriber.
      • sent.SubscriberID: Another identifier for each subscriber.
      • EmailAddress: The email address of each subscriber.
      • COUNT(*) AS Number_Of_Sends: The number of email sends for each subscriber within the last 7 days.

      FROM Clause: Indicates the main data source, which is the _Sent data view.

      INNER JOIN: Links the _Sent data view with the _Subscribers data view based on the SubscriberKey, allowing us to fetch additional subscriber information.

      ON Clause: Specifies the condition for the join between _Sent and _Subscribers based on the common SubscriberKey.

      WHERE Clause: Filters the data to only include records where the EventDate (the date of the email send) is within the last 7 days from the current date.

      GROUP BY Clause: Groups the data by SubscriberID, SubscriberKey, and EmailAddress to get aggregated information for each subscriber.

      CASE Statement: Evaluates the COUNT(*) (number of sends) for each subscriber and assigns a Send_Frequency_Category based on specific conditions:

      • 'rare' if the subscriber has not received any emails in the last 7 days.
      • 'moderate' if the subscriber has received 1 to 5 emails in the last 7 days.
      • 'saturated' if the subscriber has received 6 to 10 emails in the last 7 days.
      • 'high frequency' if the subscriber has received 11 to 20 emails in the last 7 days.
      • 'over saturated' if the subscriber has received more than 20 emails in the last 7 days.
    • Prepare Subscriber for Market Pressure
      
      SELECT 
              m.SubscriberKey
            , m.SubscriberID
            , m.EmailAddress
            ,CASE
              WHEN m.Send_Frequency_Category='over saturated' THEN 'unsubscribed'
              WHEN m.Send_Frequency_Category='rare' AND p.Status='unsubscribed' THEN 'active'
            END As Status
            ,'MARKET PRESSURE' As Reason
      FROM  Market_Frequency m
      LEFT JOIN PublicationSuppressionList p
      ON m.SubscriberKey=p.SubscriberKey
      WHERE m.Send_Frequency_Category IN ('over saturated','rare')
                                    
                                  

      SQL Query Explanation:

      The SELECT statement is used to retrieve specific columns from the tables.

      The CASE statement is used to determine the 'Status' based on the 'Send_Frequency_Category' and 'Status' columns.

      • If the 'Send_Frequency_Category' is 'over saturated', the 'Status' will be set as 'unsubscribed'.
      • If the 'Send_Frequency_Category' is 'rare' and the corresponding row in 'PublicationSuppressionList' has 'Status' as 'unsubscribed', the 'Status' will be set as 'active'.
      • If neither condition is met, the 'Status' column will be NULL.

      'MARKET PRESSURE' is set as the constant value for the 'Reason' column.

      The data is retrieved from the 'Market_Frequency' table and joined with the 'PublicationSuppressionList' table using the LEFT JOIN on the 'SubscriberKey' column.

      The WHERE clause filters the rows to include only those where the 'Send_Frequency_Category' is either 'over saturated' or 'rare'. This ensures that the final result contains only relevant data based on the specified conditions.

  2. Data Extract Activity: After executing the query, use the Data Extract activity to export the query results to a CSV file.
  3. File Transfer Activity: Use the File Transfer activity to move the exported CSV file to a specified location on the FTP server.
  4. Import Activity: Now, import the CSV file back into the frequency capping data extension to update the interaction history of each subscriber.

Step 4: Update Frequency Capping Publication List

With each interaction, the frequency capping data extension will be updated with the number of email send to each subscriber per week. You can use this information to determine whether or not a subscriber has reached the frequency cap for a specific message type. If the subscriber has reached "over saturated" stage, he/she would be unsubscribed from the private Publication List.

  1. Tracking PublicationSuppressionList
    
    SELECT l.subscriberkey,
           l.emailaddress,
           l.listname,
           l.listtype,
           l.[status],
           CONVERT(DATETIME,l.createddate) AS DateAdded,
           l.addmethod,
           CONVERT(DATETIME,l.dateunsubscribed) AS DateUnsubscribed
    FROM   [_listsubscribers] AS l
    WHERE  l.listname = 'MarketPressure'                       
                        

Step 5: Implement Segmentation & Decision based on frequency capping

When setting up your email or SMS sends, use query activities in Automation Studio to evaluate whether a subscriber has reached the frequency cap. Depending on the outcome, you can segment subscribers in your automation.

For instance, if a subscriber has not reached the frequency cap, proceed with sending the message. On the other hand, if the frequency cap is reached, you can either send an alternative message, exclude them from the campaign, or delay the send to a later time.


    SELECT 
            M.SubscriberKey,
            M.Email
    FROM MasterDE M
    LEFT JOIN PublicationSuppressionList P
    ON M.SubscriberKey=P.SubscriberKey
    WHERE P.Status ='active'

Step 6: Regular Maintenance and Optimization

Frequency capping is not a set-it-and-forget-it process. As your marketing strategies evolve, you may need to adjust the frequency cap rules to better align with your goals. Monitor the performance of your campaigns regularly and fine-tune the frequency cap limits as needed.

Conclusion:

Time frequency categorization provides a valuable framework to understand and analyze the distribution of events or data points over time. By classifying occurrences as "Rare," "Moderate," "High Frequency," or "Over-Saturated," researchers, analysts, and decision-makers can gain insights into the intensity and prevalence of specific events within a defined time frame. Properly understanding time frequency can lead to better decision-making, resource allocation, and problem-solving in various domains and industries.



Comments


Knowledge Article

Most Viewed

CLOUD PAGE ENABLEMENT - PART 1

EMAIL NOT SENT IN JOURNEY BUILDER

CONSIDERATIONS FOR JOURNEY BUILDER

Journey Builder REST API Documentation

Preference Center Demystified

Popular Posts

CLOUD PAGE ENABLEMENT - PART 1

EMAIL NOT SENT IN JOURNEY BUILDER

CONSIDERATIONS FOR JOURNEY BUILDER

Journey Builder REST API Documentation

Preference Center Demystified

SEND LOG EANBLEMENT

Share with Friends

Disclaimer:

The information provided on this technical blog is for general informational purposes only. As a SFMC (Salesforce Marketing Cloud) Technical Architect, I strive to offer accurate and up-to-date content related to SFMC and its associated technologies. However, please note that technology is constantly evolving, and the information provided may become outdated or inaccurate over time.

The content published on this blog represents my personal views and experiences as a SFMC Technical Architect and does not necessarily reflect the official views or opinions of any organization or employer I may be affiliated with.

While I make every effort to ensure the accuracy and reliability of the information presented, I cannot guarantee its completeness, suitability, or applicability to your specific circumstances. Therefore, it is essential to verify any information provided and make your own independent assessments or seek professional advice if needed.

Furthermore, any actions taken based on the information provided on this blog are at your own risk. I shall not be held liable for any damages, losses, or inconveniences arising from the use of the information presented here.

Please keep in mind that SFMC and its associated technologies are complex and require technical expertise for proper implementation and management. It is recommended to consult with qualified professionals or official SFMC documentation for comprehensive guidance.

Finally, please note that any product or company names mentioned on this blog are trademarks or registered trademarks of their respective owners. The mention of these trademarks or registered trademarks does not imply any endorsement or affiliation with the blog.

By accessing and using this blog, you agree to the terms of this disclaimer. If you do not agree with any part of this disclaimer, please refrain from using this blog.