Expand my Community achievements bar.

Adobe Target: Tuesday Tech Bytes: Unlocking the Power of Feature Flags in Adobe Target

Avatar

Community Advisor

8/27/24

Introduction

In today's fast-paced digital landscape, releasing new features quickly and safely is crucial for staying competitive. Feature flags (also known as feature toggles) are a powerful tool that enables you to do just that. They allow you to turn features on or off without deploying new code, making them an essential tool for managing feature rollouts, A/B testing, and continuous integration. Adobe Target, a leading personalization and optimization tool, integrates feature flags to enhance your testing and targeting strategies.

In this article, we’ll dive into what feature flags are, how to use them in Adobe Target, the benefits of doing so, and how to execute A/B tests with feature flags. We'll also explore real-world case studies and best practices

What Are Feature Flags?

Feature flags are a technique in software development that allows features to be conditionally enabled or disabled. They provide the ability to decouple feature releases from code deployment, allowing developers to control the visibility of features in real-time. This means you can release code with new features hidden behind flags, enabling gradual rollouts, A/B testing, and quick rollbacks in case of issues.

Key Benefits of Feature Flags:

  1. Safe Deployments: Feature flags reduce risk by allowing features to be deployed in a dormant state and activated only when ready.
  2. A/B Testing: Easily test different versions of a feature with specific audience segments without needing separate deployments.
  3. Targeted Rollouts: Release features to specific user groups (e.g., beta testers) before a full launch.
  4. Quick Rollbacks: If a feature is problematic, it can be turned off instantly without reverting the codebase.
  5. Continuous Delivery: Enable continuous delivery by allowing features to be developed and merged into the main branch without being released immediately.

Feature Flags in Adobe Target

Adobe Target is an optimization solution that allows businesses to personalize customer experiences. Integrating feature flags with Adobe Target enables businesses to enhance their testing capabilities and deliver personalized experiences more effectively.

How Adobe Target Utilizes Feature Flags:

  1. A/B Testing with Feature Flags: Adobe Target lets you run A/B tests on features controlled by flags. By using feature flags, you can determine whether a feature drives desired outcomes, such as increased conversion rates or improved user engagement.
  2. Targeted Rollouts: Adobe Target allows you to target specific user segments with different features. By leveraging feature flags, you can control which users see which features, enabling gradual rollouts or exclusive features for VIP users.
  3. Personalization and Feature Control: Adobe Target’s powerful audience segmentation capabilities can be combined with feature flags to provide personalized experiences. For example, you can show different versions of a feature to different user segments based on their behavior or demographics.

How to Use Feature Flags in Adobe Target

Prerequisites:

  1. Adobe Target Account: Ensure you have access to Adobe Target with proper permissions.
  2. Tag Implementation: Adobe Target requires a properly configured tag management system on your website or app to track user interactions and deliver experiences.
  3. Feature Flagging System: While Adobe Target supports feature flagging, you might want to integrate a third-party feature flagging tool or use Adobe Launch for advanced control.

Step-by-Step Guide

  1. Define the Feature Flag in Adobe Target:
  • In Adobe Target, define the feature flag as a parameter that can be toggled on or off. This flag will control whether a feature is active for users.
  1. Set Up the Experiment:
  • Create an A/B test in Adobe Target where the variations are the states of the feature flag (e.g., feature on vs. feature off). Define your audience segments and success metrics (e.g., conversion rate, user engagement).
  1. Target Specific Audiences:
  • Use Adobe Target’s audience targeting capabilities to show the feature to specific user segments. For example, you can target users from a specific geographic location or those who have completed certain actions on your website.
  1. Monitor Results:
  • Once the experiment is live, Adobe Target will collect data on how users interact with the feature. Analyze the results to determine whether the feature is successful and should be rolled out to all users.
  1. Roll Out or Roll Back:
  • Based on the results, you can decide to roll out the feature to all users or disable it. The decision can be made in real-time without requiring a new deployment.

 

Example of A/B Test with Feature Flags: 

Let's say you have a new recommendation engine that suggests products based on user behavior. You want to test whether this new engine increases conversions compared to your existing recommendation system. 

  1. Feature Flag: Create a feature flag called "new_recommendation_engine".
  2. A/B Test Setup: In Adobe Target, create a test where 50% of users see recommendations from the new engine (feature flag ON), and 50% see recommendations from the old system (feature flag OFF).   See below in action  -                                                                                                                                                                                                                                                                        
    • In Adobe Target, navigate to the Activities page, then select Create Activity > A/B test.
    • In the Create A/B Test Activity modal, leave the (1) default Web option selected, (2) select Form as your experience composer, (3) select Right Workspace with Right Property - if any else chose No Property Restriction and (4) click Next.  
    • Gokul_Agiwal_2-1724770748401.png

       

    • Define Control and Challenger: 

      In the Experiences step of activity creation, (1) provide a name for your activity (2) and add a second experience, Experience B, by clicking the Add Experience button. (3) Enter the name of the location within application where you want to execute your A/B test. In the example shown below, ProductPage is the location defined for Experience A. (It is also the location defined for Experience B.)

      Experience A defines the control, which is the current recommendation engine.  

      Gokul_Agiwal_1-1724769713323.png

    • Experience B defines the challenger, which will represent a new recommendation engine on product page. Click to change default content                                                                                   

      Gokul_Agiwal_2-1724769874146.png

      In Experience B, click to change the content from Default Content to the redesigned content by selecting Create JSON Offer as shown below  

      Gokul_Agiwal_3-1724769977306.png

      Define the JSON with attributes that will be utilized as flags to enable business logic to render the newly recommendation engine on product page, rather than the current engine in production.  

      Gokul_Agiwal_5-1724770119582.png

       

  3. Audience Segmentation: Target specific segments, such as returning customers or users from a particular region.
  4. Set Traffic Allocation and distributions to variations : Define the percentage of your users against which you want to test your new recommendation engine.
  5. Success Metrics: Define success metrics such as conversion rates, average order value, and engagement time. 
  6. Implement code to execute A/B tests with feature flags into your application - 
    const TargetClient = require("@adobe/target-nodejs-sdk");
    const options = {
      client: "testClient",
      organizationId: "ABCDEF012345677890ABCDEF0@AdobeOrg",
      events: {
        clientReady: targetClientReady
      }
    };
    const targetClient = TargetClient.create(options);
    
    function targetClientReady() {
      return targetClient.getAttributes(["new_recommendation_engine"]).then(function(attributes) {
        const flag = attributes.getValue("new_recommendation_engine", "feature-flag");
        // ...
      });
    }
    
  7. Activate the A/B test with Feature Flag and take Decision:  After running the test, analyze the data. If the new engine performs better, you can roll it out to all users by simply toggling the flag.

Use Case 

Case Study: E-commerce Company Enhances Personalization with Feature Flags

An e-commerce company wanted to test a new "one-click purchase" feature. Rather than deploying the feature to all users, they used feature flags in Adobe Target to control the rollout.

Approach:

  • A/B Test: Set up an A/B test with the feature flag controlling the visibility of the new feature. 50% of users saw the new feature, while 50% saw the existing checkout process.
  • Targeting: The feature was first released to power users who frequently made purchases to minimize risk.
  • Results: The A/B test showed a x% increase in conversion rates among users who had access to the new feature. Based on this success, the company gradually rolled out the feature to all users.

Outcome: By using feature flags, the company was able to safely test and roll out a critical new feature, resulting in higher conversions without disrupting the user experience.

Conclusion

Feature flags are a game-changing tool in the world of digital optimization. When used with Adobe Target, they provide powerful capabilities for A/B testing, targeted rollouts, and personalization, all while minimizing risk. By leveraging feature flags, companies can deploy new features confidently, optimize user experiences, and drive better business outcomes.

Integrating feature flags into your Adobe Target workflow allows you to deliver the right experiences to the right users at the right time. Whether you're running A/B tests or gradually rolling out new features, feature flags provide the flexibility and control needed to succeed in today’s competitive landscape.

References

By incorporating feature flags into your optimization strategy, you can ensure a smooth and data-driven approach to feature releases, resulting in enhanced user experiences and improved business performance.

2 Comments

Avatar

Community Advisor

8/27/24

Nice article @Gokul_Agiwal! I liked the way you have added steps and code - this approach will be helpful to many fellow colleagues!

Avatar

Level 2

9/3/24

Great article @Gokul_Agiwal! With regard to setting the Location, because AT.js 2.X no longer supports mBoxCreate(), will creating one at the page level suffice? If not, what is Adobe's recommendation for setting the location with the above use case?

 

Cc: @Rajneesh_Gautam_