In-App message

Overview

To engage your active users for better conversions, In-App message is a good channel to connect with such active users and show them specific and relevant content via In-App messages.

πŸ“˜

Important note:

  • In order to create In-app message campaigns, you should have the Netcore SDK integrated in your apps.
  • In-app campaigns created in older UI In-app 1.0 can be edited or cloned only till 15th Feb 2024, post that this option would be disabled.

Please follow this link for integration details of Netcore SDKs.

If it is already integrated, let's get started.

  • Login to your Netcore CEE panel and go to "Engage -> On-site - > In-app message".
  • Here, you will see a list of campaigns created for in-app messages.
  • You can click on "Create" button (top right in header section) to create a new In-App message.

Setup

In the Setup section, you can add the following details:

  • Campaign Name - Give a suitable name for the campaign
  • App Selection - You can select from the list of apps added in the asset section. You can select any specific apps that are configured on your panel.
  • Tags - You can add tags to your campaigns which can help you to group or uniquely identify campaigns.

Advanced
You can set conversion goals here: Setting clear and measurable conversion goals helps businesses track their success in terms of generating revenue or increasing engagement and tracking if the user is doing the desired actions.

  • Set conversion goal
    • Event - select an event that you consider as a conversion for this campaign. E.g. Product Purchase
    • Specify payload parameters - You can also specify certain criteria for payload of the conversion event. E.g. Purchase event where product price is greater than 10,000. Up to 5 parameters can be added.
  • Control group - You can specify the control group percentage here to see the uplift your campaign is going to give as compared to the control group. The selected percent of users will not receive the in-app message but we will track the conversion for them as well. Please note that it is mandatory to set conversion goal to use the control group feature.

Click on 'Next Step' button to go to the Audience section. You can click on 'Finish later' button to save the campaign as draft.

Audience

In this step, you need to specify the trigger conditions and audience criteria for your campaign.

Trigger
The events selected in this section act as triggers for showing the in-app message to the app users. You can add up to 5 such trigger events here. In such a scenario, the in-app message is shown when a user does any of the defined events.
Here's how you can set a trigger event -

  • Event - You can select the event from the dropdown. E.g. Add to wishlist, App Launch, etc.
  • Specify parameters - You can also further provide payload parameter criteria such as where product_price is less than 10,000.
  • You can add more than one trigger event if you want to show the exact same in-app message in the different sections of your app.

πŸ“˜

Minimum SDK version requirements

  • For using multiple trigger events in your campaign, ensure that you are using Netcore Android SDK v3.1.23 and Netcore iOS SDK v3.1.10 onwards.
  • For SDK version older than above mentioned versions, only the first event added will be used as trigger event.

Filters
Here, you can also specify certain conditions to define the base audience who should see the in-app message after the trigger event is performed.

  • Event criteria - Use this option to set event-based criteria which essentially are client-side segments.
    • Choose an event, and select whether the user should perform the Event as Yes or No
    • In case of event performed: Yes, you can add further event conditions. Up to Max 5 conditions.
    • In case of event performed: No, you can specify the wait period.
    • You can also choose whether all conditions should work as AND or OR conditions. Please note the event
      performed: NO is available only for AND conditions.
    • You can also specify event payload parameter criteria in terms of payload, operator, and values

Select contacts
Here, you can also select a specific segment or list as a condition to define the base audience who should see the in-app message after the trigger event is performed.

  • Select segment or List - In this section, you can select up to 5 user segments or lists. Use this option when you want to show the in-app message based on historical behavior which is captured by server-side user segments.

πŸ“˜

Important

  1. Please note that ability to select List or Segment is available for clients who are enabled for vertica.
  2. Ability to select List & Segment and Multi event based conditions will be available for users who are on following SDK versions: Android SDK v2.2.19 and iOS SDK v2.5.5
  3. Please note that for using these targeting options for android, it is necessary that you migrate to AndroidX library if you haven't already.
  4. Please note that for event filter criteria, only last 200 events are considered stored locally on the device

Content

In this step, you will specify the content for the in-app message.

First, you need to choose the template layout from the following options:
- Sticky header
- Sticky footer
- Half interstitial
- Interstitial
- Cover

Below that you will find the option to 'Select template' that lists all the templates for the in-app message channel for the selected layout. You have the option to create a template from scratch with the following three options - text-only template, image-only template, or custom html template.

You can also personalize the in-app messages event payload parameters so that a personalized experience can be given to your customers. For more details, click here :

TypeFeatureSticky header/sticky footerHalf interstitial/interstitialFull screen cover
ManualCharacter limitMessage: 80 charactersTitle: 35 characters
Message: 150 characters
Message: 80 characters
ManualImageNANANA
ManualAction buttonup to 2 buttons, 15 characters1 button, 15 characterup to 2 buttons, 15 characters
ManualBackground color or background imageYesYesYes
ManualPersonalisationYesYesYes
Image onlyImage
Format: .jpeg, .jpg, .png
or add a url link
Size: 100 KB
Resolution: 2:1 ratio
Half interstitial
Size: 100 KB
Resolution: 1:1 ratio

Interstitial
Size: 500 KB
Resolution: 1:2 ratio
Size: 500 KB
Resolution: 1:2 ratio
Image onlyAction buttonNANANA
Image onlyPersonalisationYesYesYes

Note: Image size restrictions are recommended for optimal user experience and are applicable for images uploaded on the Netcore panel. If you wish to large size images, you can use a self-hosted image url feature

In Image-only templates of all layouts - you can add 1 call to action button.

πŸ“˜

CTA (call-to-action)

You can select from seven different call-to-actions as follow

  1. Redirect to deep link
  2. Patch a call
  3. Redirect to a website
  4. Send email
  5. Send SMS
  6. Even share the content through Whatsapp
  7. Close the In-App message.

Custom HTML
Here, you can add custom HTML + JS to create your own content. You can use this option if you wish to get complete control of how the in-app message should look.

In this option, you have two options to add custom html content:

  • Direct URL - You can specify the valid URL where your custom html is hosted.
  • Inline HTML - You can continue further in 2 ways:

1. Create Custom Template - here you can copy and paste the content directly in the content box provided. While proceeding to next step, you will be provided an option to save it as a template or continue without saving.

πŸ“˜

Important

Please note that Direct URL under Custom html option will work on following SDK versions onward: iOS SDK version 2.4.3, Android SDK version 2.0.11 and 2.2.12 (Android X compatible)

However, please ensure that you confirm the custom html guidelines given in the next section in order to ensure the experience is smoother and the in-app message is shown to the user correctly.

2. Choose from the templates offered - Once you choose any template, you can make changes to its HTML in the "Pseudo Editor" and save it for future use.

Guidelines for using custom HTML in In-app messages

πŸ“˜

Pro Tip: Add gamification experience to your app

Use custom html feature for in-app messaging use cases around gamification like timer, wheel of fortune, scratch code, self-hosted/3rd party feedback surveys, customized multi-page in-app message.

The HTML file must contain JavaScript to use your custom HTML creative.

JavascriptUse
https://cdnt.netcoresmartech.com/smartech-app.jsTo add interaction to your HTML creative and the Smartech SDK (in-app click and in-app close).
https://cdnt.netcoresmartech.com/smartech-iam-personalization.jsThis script is required for any personalisation of the HTML creative.
https://code.jquery.com/jquery-3.4.1.min.jsjQuery is needed to support the smartech-app.js
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnt.netcoresmartech.com/smartech-app.js"></script>
<script src="https://cdnt.netcoresmartech.com/smartech-iam-personalization.js"></script>

Adding Interaction To HTML

  • Using Predefined Classes
    You can assign click events to your button by assigning predefined classes, which are as follows.
Class nameFunctionality
.smt-clickAssigning this class will enable the click event for the button, and the Smartech SDK will share the click to the App and capture the In-App Message Click Event.
.smt-closeAssigning this class will enable the click event for the button, which will close the In-App Message; adding the Smartech SDK will capture the In-App Message Close Event.

Assign a click event to a button.

<button class="smt-click">Click Me</button>

Assign a close event to a button which will close the in-app message.

<button class="smt-close">Close</button>
  • Using JavaScript Methods
    There will be specific scenarios where you might want to interact with HTML programmatically.
Class nameFunctionality
smartechTrackInAppMessage()This method triggers a click interaction, and the Smartech SDK will share the click to the app level and capture the In-App Message Click Event.
smartechCloseInAppMessage()Calling this method to trigger a close interaction which will close the In-App Message, the Smartech SDK will capture the In-App Message Close Event.

Passing Data From In-App Message To The App

  • Using Attribute Data
    To pass any value back to the App, one can use the custom attribute to give the data back to the App.
Class nameFunctionality
smt-clickTo pass the deep link value back to your App.
smt-dataTo pass additional key-values pair back to your App.
<button smt-click="https://www.google.co.in" smt-data='{"name": "Netcore"}' class="button smt-click">Open Url</button>

Here when you tap the button, the deep link value will be https://www.google.co.in, and the additional key-value pair passed will be {"name" : "Netcore"}

Some reference smt-clicks

Send an SMS to a number.<button smt-click="sms:9860130363&body=Hello" class="button smt-click">Send SMS</button>
Call a number.<button smt-click="tel:9860130363" class="button smt-click">Call a number </button>
Send a Message via Whatsapp.<button smt-click="whatsapp://send?text=hello everyone"class="button smt-click">Whatsapp message</button>
Send an email.<button smt-click="mailto:[email protected]?subject=Hello&body=This is Email" class="button smt-click">Email</button>
  • Using JavaScript Method
    You can call the smartechTrackInAppMessage() method will have two parameters: deep link value and custom key-value pair.
function openDeeplinkWithCustomDataLocalFunction(){
		var deeplinkValue = "smartech://image";
		var person = {
		  firstName : "John",
		  lastName  : "Doe",
		  age     : 50,
		  eyeColor  : "blue"
		};
		var payloadValue = JSON.stringify(person);
		smartechTrackInApp(deeplinkValue, payloadValue);
	}
  1. Sample Values for smt-click attribute or smt-c2a attributes are given below:

Event based payload personalisation in custom HTML

Personalisation is enabled in Android SDK version v3.2.30 onwards
To support personalisation, one needs to add classes NC_RECO_SHOW & NC_RECO_HIDE
The personalisation syntax is [%__payload-property-name$event_name$default-value__%]

Example:

[%__company$product_view$apple__%]

NC_RECO_SHOW this class should be used for the element which contains the personalisation syntax.

NC_RECO_HIDE this class should be used in older SDK where personalisation is not supported.

This means this personalisation’s event name is product_view and the key to be used for personalisation is company; if the company key does not contain any value, then the default value will be displayed.

<span class="NC_RECO_SHOW" hidden=true>[%__company$product_view$apple__%]</span>
<span class="NC_RECO_HIDE">The message the older SDK/app users will see.</span>

Schedule

In this last step of campaign creation, you can specify the campaign start date and end date.

  • Start campaign - you can choose to publish the campaign now or at a later date and time.

  • End campaign - you can run campaign indefinitely or choose a particular date and time.

  • Campaign frequency - You can also choose the frequency in terms of day of the week when you want to send the in-app messages and also the time of the day when it should be shown.

For the frequency of the campaign, you can choose how many times this campaign should be shown to the users.

  • Every time - show the campaign every time the user comes on the website.
  • Time per session - Number of times the campaign to be shown within a single session.
  • Time per day - Number of times the campaign to be shown in a single day.
  • Time per campaign - Total number of times the in-app message is to be shown of a particular campaign for as long as the campaign is running.

Preview

This section will provide you with a summary of the campaign details that you have created. So before publishing check all the details carefully.

Analyse campaign performance

On mouse-hover, by clicking on the ellipsis (3 dots) you can Clone a given campaign as well as download its reports, or by clicking on the campaign title you can see the preview of the campaign.

The entire campaign listing is now segregated based on campaign status and listed based on recency.

  • Last modified - shows the date and time when the campaign was last edited.
  • Ends - shows the date and time when the campaign ended or is going to end.
  • Viewed - shows the number of times the in-app message has been viewed.
  • Clicked - shows the number of times the in-app message has been clicked.

You can also toggle between the percentage and numeric values of the entire listing.

Search
The campaign listing page allows you to search any campaign by its name or id.

Filter
You can also filter based on Campaign Status such as scheduled, completed, failed, suspended, etc. as well as based on the Tags

Download Reports
This feature allows you to download reports of all or selected campaigns as well as schedule reports to be generated on a preset interval basis.

  • Schedule - Here you can select if you want to download the report just once or want to set-up a scheduler by selecting the recurring option.

  • Report type - Here if you select 'summary report', a overall summary of all your in-app campaigns would be downloaded immediately on your system as a csv file.

Summary report

Report AttributeDefinition
Campaign nameList of all your in-app campaigns
StatusEach campaigns status which can be running, paused, scheduled or completed.
Start dateDate and time when the campaign was last edited
End dateDate and time when the campaign ended or is going to end
ViewedTotal number of times the in-app message has been viewed
ClickedTotal number of times the in-app message has been clicked
Unique userNumber of unique users who have viewed this in-app message

On selecting the 'Custom detailed report' option, you can select the attributes and payload that you want to include in your report.

Custom detailed report

*Note: Attribute details are customizable and depend on what attributes you have added on your panel.* Hence, their definitions can vary from client to client.

Attribute typeReport AttributeDefinition
Campaign detailsMessage IDUnique campaign id
Campaign detailsCampaign nameUnique name of the campaign
Campaign detailsPrimary KeyUnique user identifier
Campaign detailsApp nameName of your app
Campaign detailsApp IDUnique app ID
Campaign detailsTagList of any special tags given to the campaign
Activity detailsViewed datedate and time when the user viewed the in-app message
Activity detailsClicked datedate and time when the user clicked the in-app message
Activity detailsClosed datedate and time when the user closed the in-app message
Device detailsOS typeOS of the user's device. Eg: iOS, Android
Device detailsOS versionOS version of the user's device
Device detailsApp versionApp version installed on the user's device
Device detailsSDK versionSDK version of the app installed on the user's device
Device detailsMakeBrand of the user's device
Device detailsModelUser's device model

Recurring option is selected when you want to schedule the reports for a particular time range and at the frequency chosen by you which can be Monthly, Weekly or Daily.

Custom detailed report allows you to choose manually the Campaigns details, Attribute details, Activity payloads and device details you want to include in your report.

Where to send
You can send these reports to either an email id configured on your panel or on any FTP location.

πŸ“˜

For any queries, please contact [email protected]