Adobe Target - Visual Experience Composer

This extension enables Adobe Target Visual Experience Composer (Target VEC) functionality. The Target VEC for Native Mobile Apps lets you create activities and personalize content on native mobile apps in a do-it-yourself fashion without continuous development dependencies and app-release cycles.

For more information, see:

To get started with Target VEC, complete the following steps:

  1. Configure the Adobe Target - VEC extension.

    The VEC extension is dependent on the Adobe Target Extension. Make sure Adobe Target extension is already configured and enabled.

  2. Add the Target VEC Extension to your app.

  3. Select one of the following implementation methods:

    1. Auto-Fetch Target Activities, where options are:

      • Fetch in a blocking call (background is OFF)

      • Fetch in an asynchronous mode (background is ON)

    2. Fetch Target Activities Programmatically

    3. Handle Target Workspace Restrictions

Configure the Adobe Target - VEC extension in Launch

Adobe Target VEC Extension Configuration
  1. In Launch, click the Extensions tab.

  2. On the Installed tab, locate the Adobe Target VEC extension, and click Configure.

  3. The default configuration options loads Target VEC activities as a blocking call on App launch.

    For more information, see Implementation Methods for Target VEC.

  4. Click Save.

  5. Follow the publishing process to update SDK configuration.

Add Target VEC to your app


  1. Add Target VEC extension and it's dependencies to your project using the app's Gradle file.

    implementation ''


    implementation ''
    implementation 'android.arch.lifecycle:extensions:1.1.1'
    implementation 'io.github.sac:SocketclusterClientJava:1.7.5'
    implementation ''
    implementation ''
    implementation ''
  2. Import the Target VEC extension in your application's main activity. import;

  3. Add the Target VEC library to your project via your Podfile by adding pod 'ACPTargetVEC'


Import the Target and Identity library.

#import "ACPCore.h"
#import "ACPTargetVEC.h"
#import "ACPTarget.h"
#import "ACPIdentity.h"
#import "ACPTargetRequestObject.h"
#import "ACPTargetPrefetchObject.h"


#import ACPCore
#import ACPTarget
#import ACPTargetVEC
#import ACPIdentity

Register Target VEC with Mobile Core



After calling the setApplication() method in the onCreate() method, register Target VEC with Mobile Core.

Here is code sample that calls these set up methods:

public class SampleApp extends Application {
public void onCreate() {
try {
//Other Extensions that you need
MobileCore.start(new AdobeCallback () {
public void call(Object o) {
} catch (Exception e) {
//Log the exception


  1. In your app's didFinishLaunchingWithOptions function register the Target VEC extension

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//Other Extensions that you need
[ACPTargetVEC registerExtension];
[ACPTarget registerExtension];
[ACPCore start:^{
[ACPCore lifecycleStart:nil];
// Override point for customization after application launch.
return YES;


  1. In your app's didFinishLaunchingWithOptions function register the Target VEC extension

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
//Other Extensions that you need
[ACPCore start:^{
[ACPCore lifecycleStart:nil];
return true

Implementation methods for Target VEC

The Target VEC extension retrieves the relevant Target experiences for your app through a network request. Offers are retrieved via this network call and applied automatically on the targeted screens. No subsequent network requests are made to retrieve VEC experiences as the user navigates through multiple screens of the app.

The default behavior of the extension is to make a synchronous network request (blocking call) at the time of Application launch. You can use Launch to control the behavior of this network request to meet your application behavior.

Auto-Fetch Target Activities

This is the default behavior where a network request is initiated automatically by the Target VEC extension. You can use one of the following options to make this request a blocking call or an asynchronous request.

  • Fetch in a synchronous call (background is OFF)

    When this option is selected, Target VEC extension makes a network request as a blocking call when the app is launched. Offers are applied immediately, and there is no flicker in the app. This is the default behavior of the extension.

  • Fetch in an asynchronous call (background is ON)

    When this option is selected, Target VEC extension makes a network request in the background on App launch but does not block the app from loading. If your experiences are authored on the home screen of your app, the offers might not apply for the home screen if the screen is rendered before the call completes. The app screen rendering is typically identified via the lifecycle events, didFinishLaunchingWithOptions and onActivityResumed, on iOS and Android, respectively. Offers are automatically apply on all subsequent screens.

Fetch Target Activities Programmatically

You can disable the Target VEC extension to make the network request automatically and decide to programmatically call the Extension API. This gives your developers control on how they want to integrate Target VEC offers in the app. The Target VEC extension has the following static methods that can used to programmatically retrieve Target VEC offers:

  • prefetchOffers method hides the current screen until Target VEC offers are fetched.

    The offers are automatically applied to the current screen if applicable and the screen is visible again.

  • prefetchOffersBackground method will not hide the current screen and a call will be made to retrieve the relevant Target offers.

    Target offers are not applied on the current screen, and there will no flicker. As the user navigates to subsequent screens, offers will be automatically applied as applicable.

Handle Target Workspace Restrictions

You can set the at_property value for your workspace using the Launch interface. This ensures only activities in that workspace will be delivered to your mobile app.