How to use the Target VEC in a Mobile App

***Note: Target’s Mobile VEC is now deprecated as part of Adobe’s 2020 Roadmap announcements — click here to learn how to use Target’s form composer for your in-app optimisation & personalisation activities***

This is the third article in a series that aims to introduce you to the Adobe Experience Platform (AEP) SDK, both in terms of technical implementation and as an end user of Adobe’s solutions.

If you’ve not read the previous articles, and are interested in the end to end implementation of the SDK, then I’d recommend heading back to the first and second articles; however, if you’re an end user of Target and just want to get a better idea of what the visual editor can do then you’re in the right place.

The steps below are written based on the assumption that you are familiar with creating a web activity in Target, however, even if you are completely new to Target this is quite straightforward.

#1 Pre-requisites

This is the only section that briefly touches on technical implementation requirements; I think it’s important to call these out because otherwise it’s simply not possible to use the VEC. As with the previous articles, the screenshots show an iOS Objective-C implementation but the steps are very similar across all platforms/languages.

i) You have ACPTarget & ACPTargetVEC installed and registered in the correct order (i.e. ACPTarget first then ACPTargetVEC):

ii) You are making use of the ACPCore collectLaunchInfo method to handle the deeplinks that are generated in the Target UI:

iii) You have made a note of your app identifier and url scheme information (otherwise you can’t create a VEC activity in Target):

It’s really that simple from an implementation point of view. If you are in a development role then it’s worth checking the debug logs when you build your app to make sure that there are requests being sent to Target:

#2 Create an Activity

I’ve chosen to create an Experience Targeting activity, so it’s just a question of selecting Mobile App and accepting the default composer option of Visual. For those interested in using the Form composer, there will be a separate article where I cover this in detail.

Once you’ve clicked “Next”, you will see a screen which asks you to select which app you want to use. Previously added apps are available to select but, the first time you go through this process, you will need to click “Add New App”.

This is where the Identifier & URL Scheme that I mentioned in Pre-requisites comes into play — my URL Scheme is “BusBookingObjectiveC” and my Identifier is “com.adobetarget.BusBookingObjectiveC”. The format is URLScheme://Identifier, so in my case I end up with “BusBookingObjectiveC://com.adobetarget.BusBookingObjectiveC”.

Once you’ve clicked “Create Deep Link”, the next screen gives you three ways to utilise the link information. I’m running my app in the simulator, so the most straightforward option for me is to use “Copy & Send Link”.

Note: I’ve noticed that sometimes the copy & paste doesn’t work when I try to paste something into the simulator, however, de-selecting “Automatically Sync Pasteboard” and then re-selecting it again usually seems to resolve that.

The final step is to paste the deeplink into your mobile browser and then hit the “go” button. You should be presented with a dialog box which gives you the option to Open the app.

Occasionally I find that the deeplink ends up in a search result on Google, instead of initiating the dialog box. Assuming there isn’t a more fundamental issue (i.e. the app isn’t installed on the device you’re using), I find that this usually resolves itself after a few attempts.

#3 Activity content changes

When you open the app on on your device via the deeplink URL, after a short delay you should see your app content displaying in Target’s visual editor. The screenshot below shows the app open in the simulator on the right (notice the red border around the content), alongside the same view in the editor.

For those familiar with creating a VEC activity when the at.js Target library is implemented on web, the layout is very similar in terms of the modifications panel and the “current view” information. As per the web VEC functionality, when you navigate to a new view, the Target editor will automatically detect this change and update the displayed content accordingly.

Depending on which item you click on in the visual editor, you will see different editing options. One of the changes I’m going to make in this activity is to take some attention away from the main CTA, so that my special offer banner stands out more clearly.

It’s simply a question of selecting “Edit Background Color” and then choosing an option from the colour picker. I’m going to choose a fairly unappealing grey colour and then click “Save”.

As well as switching the focus away from the search CTA, I’m also convinced that using a new, more luxurious looking coach icon will help drive traffic to my special offer.

There are two options available when you click on an image component: “Swap Image” or “Edit Image Source”. If your “Swap Image” option is greyed out then you need to contact Adobe support and ask for them to set up a Scene7 shell account. There is no cost involved and it means that you can quickly select images from your Offer library instead of having to find the source URL.

To complete my content changes, I’ve added a “Sale” badge and some text to explain to the customer what the offer is. As you can see below, all of the modifications that I have made are now listed in the right-hand panel, which means if I decide I actually want size 24 font then I can just edit the existing modification instead of adding a new one.

#4 Activity targeting and reporting

If you have created Target web activities before then there are absolutely no surprises in this section. For those who are less familiar with Target, this is the step where you can create audience logic in order to decide who sees your Target activity. A bit later on in this article I mention creating a test audience to QA your activity — it’s this page where that would be created.

The last step before saving is to choose which metric you will use to evaluate the success of your activity. In my activity I want users on the Booking View screen to click on the offer banner and see the Offer View content, so my Goal Metric is configured as follows:

If Analytics for Target (A4T) is provisioned then you will also have the option to choose Analytics as your reporting source. As per a web implementation, you will need the ECID Service, Target & Analytics implemented in order to make use of this functionality. You will still have to choose a Primary metric, which lift/confidence etc are calculated against, but you also get the benefit of using all your existing Analytics metrics without any additional configuration.

#5 Launch your activity

Now that the activity build is complete, the final steps are to validate that the activity is working correctly and then start serving it to your users. In terms of QA, one option is to use the visual preview functionality mentioned here or alternatively you could apply some targeting logic to your activity so that it’s only displayed on your test device.


The VEC is a welcome step forward for Target app functionality, and I hope that it will continue to be an area of focus for the Target product team. I think it’s fair to conclude that the process of setting up an activity is very straightforward but that this is largely because the functionality available is currently quite limited. Having said that, for companies where content is the main focus, the VEC offers a great opportunity to quickly get in-app optimisation up and running.

One of the biggest benefits of the visual editor is that the implementation effort is so low; if you have a test backlog that focuses on copy/image changes without changing the app layout, then you could quite conceivably deliver that without needing any further development support. However, there are a couple of reasons that the VEC wouldn’t meet your requirements:
i) your app doesn’t support deeplinking, so it’s simply not possible to use it
ii) the complexity of tests has grown to a point where the technical limitations mean the visual editor can’t deliver these.
It’s in these cases where you’d turn to the Form composer in Target, which I will cover in detail in the next article.




Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

A Very Simple CRUD with Quarkus

Episode 21: Don’t Fall into the Trap of “build vs buy” thinking instead “build AND buy”!

Create a Publish/Subscriber Service Along side with Django

Sinatra: Building a Natural Hair Subscription Web App

Making of

A List of My Visual Neovim Plugins

My learnings during the third week in the Encora’s Apprentice program

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alex Bishop

Alex Bishop

More from Medium

Top Picks For Best Admin Themes Free Of Cost For Different Businesses

The best 5 monetization strategies for content heavy apps and platforms

The Millennial Problem For the Banking Industry

The Millennial Problem For the Banking Industry

Best of 5 Biometric Companies In India