Let DTM listens your JSON responses!!

jsonIt is more than over an year ago when I used to work for a retail client and my job was to create robust data layer for analytics on W3C standard while considering the ease of development. It was really getting tedious to give instruction to their development team to pull the response and then pass the key-value pair in our data layer on the page. It was a heck of task to complete all the variables. Now, I wonder what if we could have wisely used the tag management system (at most of the places) at that time to build our data elements.

In the web development, It is very common to read the response from the server and most of the UI developers read these response to show some beautiful messages and creatives on client side. As an analytics consultant, I have seen many times consultant suggesting client to add a direct call rule on call back function. Most of the developers hate analytics folks and I mean it. They literally say why are “you” making my job tough? This is just a sneak pick of the hustle.

Coming to the point, My idea here is to use the JSON response which comes through and use our basic coding skills to capture the response in DTM data elements.

For example- I have an API which gives me a response code 200 OK after successful Sign In along with User information data.

Dummy API url- http://test.com/account/signin?profileid=abhishek

AND Successful JSON response as-

{ “login”:  [{     “response code” : “200”,     “profileid” : “6545455”,      “region” :  “bihar” }]}

Using 3rd part Non-sequential script, we can capture the profile details and pass in to data element.

jQuery(document).ajaxComplete(function(event ,xhr, settings){
if(settings.url.indexOf(‘account/signin’)> -1){
var profile = xhr.responseJSON;
if(profile) { _satellite.setVar(“xyz”, profile.profileid)

The above code will get you the profileid in a data element. Now, You can use this data element across all the platform- Adobe Target, Adobe audience manager etc.

The other use case to capture the JSON response is to fire the page load rule. You can write some custom code.

Hope this is helpful for all folks. Feel free to add your thoughts/comments here.



Power your mobile games using Adobe Analytics

In this era of Smartphones, Everybody loves to play video games. If you are traveling to office in the morning or Even if you are getting bored due to jibber-jabber of your girl friend. Video games are real stress buster and a way to boost your morale whenever you feel down. No kidding though.I tried playing FIFA and  have beaten real madrid many times.!!


Most of the mobile games come free of  cost with restriction on playing levels and people choose to download free games. Most of the these games run ads to earn lot of money from the free version. Company like Zinga has invested alot to understand the behaviour of gamers. You can read this article about how Zinga has excelled on analysis of it’s gamer.

There are not so many mature analytics tools in the market using which you can track mobile games. Marketers have many options such as- Google analytics, flurry, Gamesanalytics, Mixpanel, Adobe Analytics etc. You can track virtually everything using few free tools. So, Why a game company should invest in paid analytics tools like- Adobe Analytics? That’s right. After reading this article, think twice before you chose your analytics tool to track your mobile games.

I am listing following key metrics related to mobile games on which a product manager should focus during planning phase-

  • Total Unique users of the game
  • Daily Unique users of the game
  • Repeat users of the game
  • Average session length per user
  • Average user acquisition cost
  • User experience rating
  • Return Frequency of the user
  • Revenue generation from the ads of the game

If you are keeping these above KPIs in your mind then you are almost ready to roll. Adobe analytics can power most of these KPI very peacefully without lot of customisation.These KPIs can be tracked by just plugging the AA SDK and some minor tweaks in the code.Marketers can run custom campaign by tracking “Time Since Last Use” value in AA to passive users of the app.

For marketers, It is key to let users play the mobile game. Some time, we get frustrated if we don’t clear few levels and we stop playing the game. At this point, marketer should run few In-app messaging campaign or Push Notification campaign to encourage users to play the game by providing some bounty or coupon code.

Adobe analytics provides easy way to track clicks on the ads using postback URL tracking. This help marketers to understand the ad performance. Marketers can get the data from appfigures and appflyers in to adobe analytics using simple integration wizard.

Marketers can change the experience of the mobile games using Adobe Target which comes with lot of features. Adobe also provides AMO to run your ads on mobile apps. So It is combine power of Adobe Analytics, Adobe Target and Adobe Media Optimiser.


Feel free to reach out to learnomics@outlook.com to know more about mobile games analytics using Adobe analytics and other available tools from adobe.

How to use SiteCatalyst Plugins in Mobile App


These days, I am writing very often but not publishing those articles. Most of the articles are in the draft folder and i am trying to give finishing touch to all. Ideas and thoughts,for me, come instantly. Sometimes, even after spending hours on work, i have to say to myself- “this is not working” and i get up and take a break. Last week i got an email from one of my colleague from previous employer saying that Can we use sitecatalyst plugins in My Mobile App? I read it again and i replied yes, we can use few of them but not all them.

It is evident that Mobile app doesn’t support cookies so there must be some other workaround to do so. These workarounds are very close to the implementation of sitecatalyst plugins. Let’s take a look on few plugins which are very often in use-

1. getNewRepeat– This plugin is used to capture new vs. repeat visitor based on a cookie and you can set the expiry of that cookie in one of the parameter of this function. In your mobile app, launches are similar to sessions which is again closely related to visit. Developer can see “Launches” as a context data in a Network packet sniffer tool.


Assign a variable for New vs. Repeat visitor, and then write a processing rule having following condition-


set eVarX= propX=new;

else  set eVarX= propX=repeat;

You can use this eVar similar to the one in website and can be used for attribution and segmentation as well.

2. DaysSinceLastVisit-  This plugin is used to identify how often visitors visit my site on daily basis and very useful to understand the behaviour of return visitors. In your mobile app, When user launches the app for the 2nd time then there is a context data- “DaysSinceLastUse”. You can map this context data in to an eVar or Prop to capture that data. The data will be in numeric format.


For the first launch, you may need to set some custom value like “First use” so that you can easily differentiate between “Zero” and “First use”.

3. getTimeParting-  This is one of the most popular plugins among clients. They can create segments based on days/type of days/ hours etc. and can analyse the data more deeply. In mobile App, Adobe provides Two out of box context data-


“DayOfWeek” and “HourofDay”. You can capture these values and use classification rule builder to get more valuable report out of it.

Hope this is helpful for new mobile app analyst to get the right data from adobe analytics mobile services SDK. Feel free to reach out to me if you have any queries at learnomics@outlook.com.

*Adobe Analytics logo is a copyright of Adobe Systems.

Tracking Set Top Box programs using Adobe Analytics

This post is more about my idea rather than reality and I hope that this may become reality soon. I was working with NDS TV technologies (Now, Part of Cisco) on EPG i.e. Electronic Program guide almost 5 years back during final year of my graduation. It was really exciting to work on something where you could see the result booting on a set top box at least when you were a fresher. We wrote some event listener code to capture user navigations from one channel to others by pressing some specific keys on TV remote.

Now, World is moving toward very advance and complex set top box. The set top box generally have internet connectivity and you can watch many programs by streaming on your TV.We press mute button on remote very often during ads. But not all ads are irritating, some of the TV ads are really interesting and kids love to watch those ads. Think of situation where you are watching a family drama and suddenly an awkward ad displays on your TV screen or the ads which you don’t like but you are forced to watch. Even though, you watch those ads but never going to buy those products in life. That’s the area where marketers are facing issues.The challenge is to deliver right content to right audiences real time. We need some system which can understand the user’s viewing experience on real time and deliver the right ads. Marketers has to plan a lot before they go to TV channels to register for their ads. why can’t we have a system which itself understands what need to be delivered to the users?

In my opinion, It may or may not be possible. The world is moving toward digital platform. We have moved toward digital version of set top box from analog almost 3 years before. Now, Imagine a Set Top Box with internet connection and can send data to servers real time about what are you watching and then trigger an ad from server by squeezing the screen for 5-10 seconds and rendering the ad over the screen(just like we see those ads during F-1, Soccer and cricket match).

Screen Shot 2015-07-21 at 2.29.36 am

Sounds unbelievable?? No, It is possible through adobe analytics. Currently, We think that sitecatalyst/Adobe Analytics is a tool to capture data only from website/mobile app but It is not true. Adobe Analytics has the capability to send data from your application to the server using  Data Insertion API.

Coming to the point here, when user changes the channel then that data will be send to the adobe analytics and based on real time live stream data, if user stays on that channel for more than few assigned minutes(it depends) then push real time commercial based on the interest. This is similar to pushing the personalised ad content to the user.

Use Case-  Based on past history of a current user, I figured out that an user is mostly watching sports channel and is not interested in any other channels. Now, It is important for marketers to show him right offer. It may possible that Flipkart/Amazon don’t advertise their sports related products but what if Flipkart wants to run some offer on this segment of products to sports fans. If I am not an avid fan of football then those ads doesn’t make sense to me but for that user who only watches football on TV might make sense. After watching those offers on jerseys, he/she might visit the site and buy any of those products.

Am I over imaging things here? Certainly not. I will keep you posted on this.

For any queries feel free to reach out to learnomics@outlook.com

Test DTM rules using charles proxy


I am sure that while reading this post you will start doing the handson with charles proxy. Yeah, It is so good to dig in to something new. Many people out there might have done this already. Before the weekend started, I had to implement DTM on one of the client’s site but there was no header and footer code added by their developers. It was hard to get the DTM rules and Data elements running before the monday. In this situation, charles proxy became one of my the best friends in web analytics. We have done so much things with this tool so far. Doing map local, map remote file, rewrite the code and so many other cool stuffs before pushing the code  to the end users.

Rewrite feature of Charles gives you so much flexibility to test your own code on production before pushing it to live. Using this, you can insert any code at different sections of the page. I have used this features frequently to test page tags whenever required.

Now, let’s talk about using DTM rules on your pages without adding any header and footer codes. Sometimes, I would say, It is important to understand weather it will work or won’t work before you get started.

Idea is very simple if you have used rewrite features of charles. you just need to add the header and footer script code on the different sections of the page. Let’s see how this can be done STEP BY STEP.

Step-1) Open charles proxy and Go to Tools->Rewrite. Rewrite setting window appears. Check the enable rewrite checkbox and click on “add” button to create your first rewrite. Refer the screenshot mentioned below. Give a name to this as shown in top highlighted box.


Step-2) Click on “Add” button presents locations section and add your website details as shown in below screenshot-


Step-3) Click on “Add” button presents below rules section of the above screenshot. Now, on the next screen, select the body option from the dropdown and “Response” from the checkbox. Write “<head>” in upper value input box while paste your DTM HEADER script code in the second value input field. Add the script code between <head> and </head>.

See the below screenshot for your details-


Step-4) Again, Click on “Add” button presents below rules section of the above screenshot. Now, on the next screen, select the body option from the dropdown and “Response” from the checkbox. Write “</body>” in upper value input box while paste your DTM FOOTER script code in the second value input field. Add the script code between <script> and </body>.

See the below screenshot for your details-


Step-5)Click on Apply button and then OK button. Open your website and see the tags under correct server response.


In the above screenshot, you can see that, I have fired a page load rule using DTM on my wordpress website. [Wordpress.com’s sites don’t support DTM yet]. Now onward, you will never complain whenever your development team some how forgets to add DTM code before you create your rules and test them.

Let me know if you face any difficulties while doing this. Feel free to add your comments.

Life Beyond s_code for Sitecatalyst Consultant


I am sure title for this blog may sound bit odd for you but wait I am not going to tell you about my daily routine after I finish my day. For me, Title sounds apt for what I am going to explain.

To tell you the story behind this title, Last year, one of my colleague was totally pissed off with s_code and its complexity so he whispered that “There is no life beyond s_code”. Though, I got the actually meaning of what he meant but nevertheless I am putting this other way around for a consultant(hopefully, J ) and I would say, ’ Sitecatalyst consultant have many alternate choices but you just need to pick the best possible solutions  to be the best consultant’.

Now, let me come to the point, Life is becoming tough for sitecatalyst consultants with complex and tricky business requirements from clients. In my day-to-day consulting experience, I have faced several issues with s_code such as –

  1. s_code doesn’t load on time before sitecatalyst image request send to adobe server.
  2. Developer has missed to remove correct report suites name before s_code goes on to production.
  3. Marketing team can’t wait to track new campaign for Black Friday but IT release doesn’t allow them to do so.
  4. Managing several s_code for many sub domains is a big headache and a single code error results in huge data loss.

It is really frustrating in daily analytics activities when sitecatalyst consultant struggles with s_code.js file when some tags do not get set the way they want. To deal with such issues adobe analytics really have something beyond s_code file. App measurement.js (Light js) and Dynamic Tag Management are in demand solutions from adobe which may resolve several complexity and dependencies for clients.

App measurement.js is not a new offering from adobe but it has quite a while in use. This js file is very light and loads much faster than s_code.js file and will reduce your sleepless nights. It offers same flexibility as s_code and works well with almost all sitecatalyst plugins (different version). So, I think you should try using appmeasurement.js file next time rather than going for s_code file. App Measurement has ability to support Visitor ID services and Heartbeat video integration

Tag management solution is also not new in the market. There are so many tag management solution such as Ensighten, Teliuem, Google Tag manager etc. which helps client to remove dependencies from IT release and unavailability of core development team.

Dynamic Tag Management aka DTM is a recent delight in adobe’s Digital Marketing suite from Search Discovery. DTM is a very powerful tool to keep your implementation intact without touching your application code enough.

You can implement more than one web analytics solution using it. Several benefits of having DTM on the table are-

  1. Change your codes whenever you want.
  2. Launch and track any marketing campaign during any time of the year.
  3. No scope of JavaScript error (Compiles JS script on the fly).

DTM comes free with standard sitecatalyst contract can be used with google analytics as well.

I hope you have now better idea to make a good choice before you start adobe analytics implementation.

Write to learnomics@outlook.com if you have any queries on this.

Magic of Cart Abandonment in Digital Marketing


Photo credit- formisimo

For most of the people, online shopping is fun. But for marketers, it is really a serious business. Digital Marketers hate that people don’t place order after entering his/her details. But I got lucky today after doing form abandonment. 🙂  Yeah, it is true. I am not kidding. I knew what will be coming for me.

All sites track form abandonment these days but buyers don’t get to know about this until they start receiving emails, call from them. Today, I had to buy a watch so I went to an online site and selected my favorite watch. I entered all my details but just before payment page, I thought let’s check out some other watches. After 5 minutes, I got a call from customer care from that company that I forgot something in my cart.

But how should I justify my abandonment? I said that I was looking for discount and then customer care replied very generously that he will give 25% discount. After that I bought that product.If you are true buyer try to abandon your cart and see if anything good may come for you.

My point is- It is essential for online shopping website to track form abandonment. Customers can buy your products even if they will get 1% of discount.

It is very easy to track cart abandonment using  Web analytics tool like Google analytics, Adobe analytics and coremetrics.

For Google analytics, Define a funnel with all your pageName and capture important details in custom variables.

For Adobe Analytics, Define event variables on all the cart steps and capture user details in eVars. So, once user abandon his/her cart then set an event and eVars (user details/phone no.) to capture these details. You can get the details in report and push the report to support team to do follow up. If you are runing an automated process then i suggest to capture these details using Adobe analytics APIs to your databses.

Happy shopping guys and keep abandoning your cart to get more offers. But i tell you that you are not the smartest one sitting over there, a marketer can understand that – are you really a true buyer or are you doing this for some fun?

If you need any assistance on cart abandonment tracking, send your queries to learnomics@outlook.com