These docs are for v1.0. Click to read the latest docs for v2.0.

Overview

Activity tracking can help you to know the activities performed by the logged in/identified visitors on your website. Events like sign up, downloads, video play, form fill up, add to cart, newsletter subscription etc. can be tracked using this feature. Based on the primary/foreign key assigned to the contacts in Smartech, the visitors are identified by their email ID, mobile number, customer ID, or any other parameter. You need to create web events in the Smartech panel, and do the integration in the code of your website to track the web events.

Define Activity

To be able to use this feature, you need to:
a. Define your web events in the Smartech panel.
b. Integrate JavaScript code in your website.
To define an activity :
a. Log in to Smartech and go to Assets > Custom Activity > Create Activity
b. In the Create Activity page, provide the details like event name, and description in the respective fields.
c. Define all the web event parameters that you want to pass as from your website to Smartech.
d. Click Save. The event gets created and is listed in the Activity Dashboard.
e. To get the code that needs to be integrated in the HTML code of your webpage, go to the web activity dashboard, select your event, and click Get Code.
f. From the Get Code page, copy the code and place it appropriately in the web page.

Few Activities to begin with

Page Browse Activity

For all the business verticals, if we want to track users website activity. Please refer code.

<script>
  smartech('dispatch', 1, {});
</script>
JSONObject jsonObject = new JSONObject();
JSONArray jsonArray = new JSONArray();
JSONObject newPaylaod = new JSONObject();
try {
        jsonObject.put( "s^url", <Replace url value here> );
        jsonObject.put( "i^sts", <Replace sts value here> );
        jsonObject.put( "i^pts", <Replace pts value here> );
        jsonObject.put( "i^npv", <Replace npv value here> );
        jsonObject.put( "s^title", <Replace title value here> );

 	 jsonArray.put(jsonObject);
  	 newPaylaod.put("payload", jsonArray);
        NetcoreSDK.track( this, identity,1 , newPaylaod.toString());
}catch ( JSONException e ) {
   e.printStackTrace();
}
JSONObject jsonObject = new JSONObject();
JSONArray jsonArray = new JSONArray();
JSONObject newPaylaod = new JSONObject();
try {
        jsonObject.put( "s^url", <Replace url value here> );
        jsonObject.put( "i^sts", <Replace sts value here> );
        jsonObject.put( "i^pts", <Replace pts value here> );
        jsonObject.put( "i^npv", <Replace npv value here> );
        jsonObject.put( "s^title", <Replace title value here> );

 	 jsonArray.put(jsonObject);
  	 newPaylaod.put("payload", jsonArray);
        NetcoreSDK.track( this, identity,1 , newPaylaod.toString());
}catch ( JSONException e ) {
   e.printStackTrace();
}
NSMutableDictionary *payloadList =  [NSMutableDictionary dictionary];
[payloadList setObject:@"<Replace url value here>" forKey:@"s^url"]
[payloadList setObject:@"<Replace sts value here>" forKey:@"i^sts"]
[payloadList setObject:@"<Replace pts value here>" forKey:@"i^pts"]
[payloadList setObject:@"<Replace npv value here>" forKey:@"i^npv"]
[payloadList setObject:@"<Replace title value here>" forKey:@"s^title"]

NSMutableArray *newPayload = [[NSMutableArray alloc] init];
[newPayload addObject: payloadList];NetCoreAppTracking.sharedInstance().sendEvent(withCustomPayload:1, payload: newPayload, block: nil);
let newPayload : NSMutableArray = NSMutableArray()
var payloadList : NSMutableDictionary = NSMutableDictionary()
payload.setValue("<Replace url value here>",forkey:"s^url");
payload.setValue("<Replace sts value here>",forkey:"i^sts");
payload.setValue("<Replace pts value here>",forkey:"i^pts");
payload.setValue("<Replace npv value here>",forkey:"i^npv");
payload.setValue("<Replace title value here>",forkey:"s^title");

newPayload.add(payloadList)
NetCoreAppTracking.sharedInstance().sendEvent(withCustomPayload:1, payload: newPayload, block: nil)
API End Point: https://api.netcoresmartech.com/v1/activity/singleactivity/Smartech_Identification_Key

{
"activityid": "1",
"cts": "<Replace with CTS>",
"uniqueid": "<Replace with UNIQUEID>",
"identity": "<Replace with IDENTITY>",
"activity_params": [
{
    "s^url": "<Replace url value here>",
    "i^sts": "<Replace sts value here>",
    "i^pts": "<Replace pts value here>",
    "i^npv": "<Replace npv value here>",
    "s^title": "<Replace title value here>"
}	
]
}

Add to Cart Activity

<script>
  smartech('dispatch', 2, {
    "i^prid": "<Replace prid value here>",
    "s^name": "<Replace name value here>",
    "s^brand": "<Replace brand value here>",
    "s^variant": "<Replace variant value here>",
    "s^category": "<Replace category value here>",
    "f^price": "<Replace price value here>",
    "i^prqt": "<Replace prqt value here>",
    "s^currency": "<Replace currency value here>"
});
                   
</script
JSONObject jsonObject = new JSONObject();
JSONArray jsonArray = new JSONArray();
JSONObject newPaylaod = new JSONObject();
try {
        jsonObject.put( "i^prid", <Replace prid value here> );
        jsonObject.put( "s^name", <Replace name value here> );
        jsonObject.put( "s^brand", <Replace brand value here> );
        jsonObject.put( "s^variant", <Replace variant value here> );
        jsonObject.put( "s^category", <Replace category value here> );
        jsonObject.put( "f^price", <Replace price value here> );
        jsonObject.put( "i^prqt", <Replace prqt value here> );
        jsonObject.put( "s^currency", <Replace currency value here> );

 	 jsonArray.put(jsonObject);
  	 newPaylaod.put("payload", jsonArray);
        NetcoreSDK.track( this, identity,2 , newPaylaod.toString());
}catch ( JSONException e ) {
   e.printStackTrace();
}
JSONObject jsonObject = new JSONObject();
JSONArray jsonArray = new JSONArray();
JSONObject newPaylaod = new JSONObject();
try {
        jsonObject.put( "i^prid", <Replace prid value here> );
        jsonObject.put( "s^name", <Replace name value here> );
        jsonObject.put( "s^brand", <Replace brand value here> );
        jsonObject.put( "s^variant", <Replace variant value here> );
        jsonObject.put( "s^category", <Replace category value here> );
        jsonObject.put( "f^price", <Replace price value here> );
        jsonObject.put( "i^prqt", <Replace prqt value here> );
        jsonObject.put( "s^currency", <Replace currency value here> );

 	 jsonArray.put(jsonObject);
  	 newPaylaod.put("payload", jsonArray);
        NetcoreSDK.track( this, identity,2 , newPaylaod.toString());
}catch ( JSONException e ) {
   e.printStackTrace();
}
NSMutableDictionary *payloadList =  [NSMutableDictionary dictionary];
[payloadList setObject:@"<Replace prid value here>" forKey:@"i^prid"]
[payloadList setObject:@"<Replace name value here>" forKey:@"s^name"]
[payloadList setObject:@"<Replace brand value here>" forKey:@"s^brand"]
[payloadList setObject:@"<Replace variant value here>" forKey:@"s^variant"]
[payloadList setObject:@"<Replace category value here>" forKey:@"s^category"]
[payloadList setObject:@"<Replace price value here>" forKey:@"f^price"]
[payloadList setObject:@"<Replace prqt value here>" forKey:@"i^prqt"]
[payloadList setObject:@"<Replace currency value here>" forKey:@"s^currency"]

NSMutableArray *newPayload = [[NSMutableArray alloc] init];
[newPayload addObject: payloadList];NetCoreAppTracking.sharedInstance().sendEvent(withCustomPayload:2, payload: newPayload, block: nil);
let newPayload : NSMutableArray = NSMutableArray()
var payloadList : NSMutableDictionary = NSMutableDictionary()
payload.setValue("<Replace prid value here>",forkey:"i^prid");
payload.setValue("<Replace name value here>",forkey:"s^name");
payload.setValue("<Replace brand value here>",forkey:"s^brand");
payload.setValue("<Replace variant value here>",forkey:"s^variant");
payload.setValue("<Replace category value here>",forkey:"s^category");
payload.setValue("<Replace price value here>",forkey:"f^price");
payload.setValue("<Replace prqt value here>",forkey:"i^prqt");
payload.setValue("<Replace currency value here>",forkey:"s^currency");

newPayload.add(payloadList)
NetCoreAppTracking.sharedInstance().sendEvent(withCustomPayload:2, payload: newPayload, block: nil)
{
"activityid": "2",
"cts": "<Replace with CTS>",
"uniqueid": "<Replace with UNIQUEID>",
"identity": "<Replace with IDENTITY>",
"activity_params": [
{
    "i^prid": "<Replace prid value here>",
    "s^name": "<Replace name value here>",
    "s^brand": "<Replace brand value here>",
    "s^variant": "<Replace variant value here>",
    "s^category": "<Replace category value here>",
    "f^price": "<Replace price value here>",
    "i^prqt": "<Replace prqt value here>",
    "s^currency": "<Replace currency value here>"
}	
]
}

Lead Capture Activity

<script>
  smartech('dispatch', event_id, {'"s^email": "<Replace email value here>",
    "i^mobile": "<Replace mobile value here>",
    "s^firstName": "<Replace firstName value here>",
    "s^lastName": "<Replace lastName value here>",
    "s^companyName": "<Replace companyName value here>"'});             
</script>
JSONObject jsonObject = new JSONObject();
JSONArray jsonArray = new JSONArray();
JSONObject newPaylaod = new JSONObject();
try {
        jsonObject.put( "s^email", <Replace email value here> );
        jsonObject.put( "i^mobile", <Replace mobile value here> );
        jsonObject.put( "s^firstName", <Replace firstName value here> );
        jsonObject.put( "s^lastName", <Replace lastName value here> );
        jsonObject.put( "s^companyName", <Replace company value here> );
     jsonArray.put(jsonObject);
  	 newPaylaod.put("payload", jsonArray);
     NetcoreSDK.track( this, identity,event_id , newPaylaod.toString());
}catch ( JSONException e ) {
   e.printStackTrace();
}
JSONObject jsonObject = new JSONObject();
JSONArray jsonArray = new JSONArray();
JSONObject newPaylaod = new JSONObject();
try {
        jsonObject.put( "s^email", <Replace email value here> );
        jsonObject.put( "i^mobile", <Replace mobile value here> );
        jsonObject.put( "s^firstName", <Replace firstName value here> );
        jsonObject.put( "s^lastName", <Replace lastName value here> );
        jsonObject.put( "s^companyName", <Replace companyName value here> );   
 	 jsonArray.put(jsonObject);
  	 newPaylaod.put("payload", jsonArray);
        NetcoreSDK.track( this, identity,event_id , newPaylaod.toString());
}catch ( JSONException e ) {
   e.printStackTrace();
}
NSMutableDictionary *payloadList =  [NSMutableDictionary dictionary];
[payloadList setObject:@"<Replace email value here>" forKey:@"s^email"]
[payloadList setObject:@"<Replace firstName value here>" forKey:@"s^firstName"]
[payloadList setObject:@"<Replace lastName value here>" forKey:@"s^lastName"]
[payloadList setObject:@"<Replace company value here>" forKey:@"s^company"]
[payloadList setObject:@"<Replace mobile value here>" forKey:@"i^mobile"]

NSMutableArray *newPayload = [[NSMutableArray alloc] init];
[newPayload addObject: payloadList];NetCoreAppTracking.sharedInstance().sendEvent(withCustomPayload:event_id, payload: newPayload, block: nil);
let newPayload : NSMutableArray = NSMutableArray()
var payloadList : NSMutableDictionary = NSMutableDictionary()
payload.setValue("<Replace email value here>",forkey:"s^email");
payload.setValue("<Replace firstName value here>",forkey:"s^firstName");
payload.setValue("<Replace lastName value here>",forkey:"s^lastName");
payload.setValue("<Replace mobile value here>",forkey:"i^mobile");
payload.setValue("<Replace company value here>",forkey:"s^company");

newPayload.add(payloadList)
NetCoreAppTracking.sharedInstance().sendEvent(withCustomPayload:2, payload: newPayload, block: nil)

📘

Note

Please provide value of date (d^date) in format

Activity Pairing

The pairing between two activities is as follows

Activity - StartActivity - EndUse Case
Product Search1.Lead Submitted
2.Product view
3.Add to cart
Use Case: Looking for goa package search as part of product search and applied on a booking and given my details as lead.

Marketing Promotion: If user is not added as lead then send BPN personalized message to send lucrative offer on goa package.

Example: Dear (Ankur) You were looking for (goa package) holiday.

Other Use Cases :
A user is searching for a product but isn't showing any further interest such as viewing any product in particular.

Solution : A recommendation Browser push consisting of some other product similar to the product searched with better price/offer/rating will help to generate interest in purchasing the recommended product.
Product View1.Lead Submitted
2.Add to cart
Use Cases :

1.A first time user is viewing some products but is not signing up to purchase the product.

Solution : Send a BPN with a personalised offer/coupon encouraging the user to signup

2.A user is viewing certain products but is not adding them to cart

Solution :

Send a Browser push consisting of those very product/products along with a coupon/offer will help pushing down the user further down the purchase funnel.
Send a Browser push consisting of some other product with better price/offer/rating will help to generate interest in purchasing the recommended product.
Add to cart1. Checkout
2. Remove from cart
3. Cart expiry
Use case : A user adds products to cart but isnt checking out for sometime.

Solution :

Send a browser push notification after sometime consisting of the products abandoned along with a coupon code will help in recovering the cart at that very instance.
Lead submittedProduct PurchaseUse Case : A user Signs up on your website.After signing up the user is not taking any further action such as viewing product/category.

Solution : Send a Browser push consisting of products with better price/offer/rating will help to generate interest in purchasing the recommended products.

Send a browser push notification consisting of a thank-you note along with a coupon code for first purchase will help in engaging the newly added user even further.
CheckoutProduct PurchaseUse case : A user has checked out but isnt making the payment.The following cases can be possible - 1.too many steps/fields to enter 2.Payment option limited.

Solution : A BPN consisting of solutions to above mentioned cases at that very instance while the user is on the website can help addressing the user's troubles and thus helping the user purchase the product.
Add to WishlistAdd to CartUse Case - Client want to send wishlist reminder push notification to users who have added product to wishlist but not take further action (add to cart) within specified time.
Add to CartProduct PurchaseUse Case - Marketer want to send push notification to users who have added products into the cart but not done 'product purchase' within specified time.

📘

Digestified emails are supported by five system activities, namely:
PRODUCT SEARCH
PRODUCT VIEW
LEAD SUBMITTED
CHECKOUT
ADD TO CART

Read more about popular use-case in Smartech:
Cart abandonment via Journey
How to send digestified emails from Cart Abandonment Flow?

👍

In case of any queries, please contact [email protected]