Digital Marketing in practice (final episode)

In our last episode of the series we have spoken of the holy grail of Digital Marketing landscape and how this is deeply connected to the identity of our customers. So let’s try to recap for a moment what we need :

  1. all our customer data (web logs, app logs, purchases, calls, surveys,etc…) marked with same identity Id in order to proper assign every event to the same customer and we need this data to be collected in real/near real time.
  2. to define what are our targets (sales, customer satisfaction, market penetration,etc..) and define a strategy to reach those goals.
  3. To define the strategy we use the data collected at point 1 to identify the patterns that are leading to : high revenues customers, abandoned carts, poor reviews, good surveys,etc….
  4. Once our overall strategy (sales, discounts, promos, coupons, social,etc.. ) is defined we need to put this strategy in practice defining our customers journeys, for example look at this or this , so literally we have to define on each touch point (where), what and when some “actions” will happen, who will be the target of those actions and what are the subsequent “sub actions” or steps that automatically have to happen at every step of the journey.
  5. To produce on all the touch points the respective UI associated to the actions.
  6. To go back to Point 1, evaluate the new data and check if the strategy is working and if necessary take the corrective actions.

Now in an hypothetical “perfect world” we should be finished,  but reality is much more complicated than that 🙂 .

rality check ahead sign

In fact , while we can define journeys and customer segments, profiles and target audiences , we need some “binding” to happen between our defined journeys and the real touch points.

An example? Let’s assume we define a coupon/loyalty initiative, this only means a quite large list of system configurations and actions :

  1. Define the new coupon initiative in the loyalty system
  2. Define the budget allocated for those coupons and the limits associated
  3. Integrate the new coupons with the e-commerce in order to have them to be applied and accepted at order time
  4. Integrate the journey builder actions into the e-commerce in order to have the e-commerce UI display the promotion new look & feel
  5. Integrate into e-commerce UI engine journey builder sub-steps if any
  6. Tag properly all the consumer journey steps in order to collect back the data points of the journey
  7. Etc..

Now repeat this for the marketing campaign system that handles email, sms and notifications, repeat this for the call center,etc….

simpsons_panic

As you can imagine we need a single unified collection of products (identity,e-commerce, apps, crm, marketing email/sms, etc…) all connected by the same vendor and the “unified data collector system” to be also the customer journey builder , in fact we can reasonably understand if our strategies are effective only if we can observe on the very same tool if the journeys we designed are working or not (what if we define a journey of 12 steps and almost nobody goes after step 3 ? ).

I guess that if you look now on preferred search engine and do so basic research you will find at least 20+ vendors that are saying that they have this kind of combined solution in place.

In reality , even if we assume that all the 20+ vendors have all fantastic and well connected platforms, all the enterprises have already a gargantuan amount of systems already in place and you cannot “turn off” everything and start from the scratch.

At the same time even if you start from zero, often the cost and the lock in risk associated with ALL IN ONE solutions are so high that you can anyway end up going to think about a Lego approach.

lego-1

So what is our recommendation here ?

buildorbuy-resized-600

The right approach can be perhaps neither build or buy , I call it smart integration.

Smart integration means the following:

  1. Define your own MML : marketing markup language
  2. From the central data repository define the personalized MML journey for each customer
  3. Write this MML journey on the identity of each customer
  4. Build/Configure on all the touch points the functionality needed to read the MML journey (leverage first the customer device/browser to perform the integration) from the identity itself ,translate that in meaningful actions on that specific touch point (email template on marketing automation, call center Next Best Action on the CRM, etc…)
  5. Collect all the data and evaluate , correct and start again 🙂

An example of MML?

You can start simply with something like this:

loyaltyblrule1

Now if you want to create a unified MML definition for the main strategies and touch points , I think it would be a fantastic idea and for sure a very successful start up!

success-loading-pic1-1024x768

Digital Marketing in practice (part 4)

We finished part 3 defining the need of a customer identity provider that can seamlessly be integrated in all our touch points , but this also means that we can personalize our front ends only when our customers logins with our identity provider.

Can we personalize the appearance and the offers of our front ends without requiring the user to login?

If we look back to part 2 during the RTB the combined systems essentially do this job , because they recognize the user with a cookie or by device Id and they trigger the “right” advertising for him according to his profile (the real time auction is triggered only on the brands/campaigns that have this user profile in their target audience) .

Can we use cookies/device ids to do the same?

In reality we can do even more than that, because of the following : while DMP can “see” the same customer as two or more different customers because he uses a laptop with different browsers and a smartphone (in reality DMP uses a very sophisticated algorithms to match cookies and devices ids with IP addresses and other variables to remove ,when possible, duplicates and build unified profiles…) since we have an identity provider in place , when the customer logins we can match the same identity Id with all the different device ids and cookies ids and target correctly the very same customer.

However again , we don’t want to build completely from the scratch such a complicated system, and there are options available on the market .

We can ,for example, leverage Google Analytics (GA) Id coupled with our Identity Id as GA Crm Id (some examples are listed here) and use this combo to provide personalization even when customers are not logged (ga Id–> Identity Id–> customer identified).

Of course we need to store this relationship somewhere and the nosql structure of the identity provider can be a nice place (but it will not be so simple as you can imagine 😉 ).

Another way to do it is to have the personalization/promotion engine directly integrated with a DMP and use the DMP segments to define the personalization on the front-end, but this, if we plan to leverage correctly our identity provider, it is not a good idea.

If instead you plan to have a “no-registration/login” website, this technique can be really useful.

Now if we assign to each customer one or more “tags” where , for example we say if the customer is Gold, Bronze or Silver:

and we write those tags directly into the identity record of the customer, what will happen it is that any front-end that is able to read from the identity provider , can also do personalization and promotions looking at those tags, right?

And since the identity is the same across all front-ends, we can have always the right personalization for our customers right?

Well in theory yes , in practice we need something more to achieve this:

1) A personalization / loyalty / promotion engine on the front end that usually reads from front end db

2) A push down operation that copies the “tags” from the identity provider to the local front end

3) A magic system that writes to the identity provider the “right tags” for each customer and also coordinates what “gold/silver/bronze” mean for all the various actors :

  • what is the email template for a gold customer?
  • what is the discount for a bronze one in the e-commerce shop?
  • what silver means for the smartphone app?

If you pick the right identity provider and the right front ends the steps 1-2 should be only some minor configuration to do on the identity provider adapter for that front end.

Step 3 it is the holy grail of the overall landscape and we will look at it in the next part.

Digital Marketing in practice (part 3)

In the first and second part of this series we enumerated already several systems that we need to have in place to actually drive our digital shop of toys:

E-commerce (this alone it is a universe of components like payment gateways, web log analytics, social integrations, rating & reviews , coupons/promotions etc …) , supply chain, crm , marketing platform and last but not least the DMP with all the pieces and integrations .

How to manage all those platforms and how to integrate them?

How to perform something “simple” like define a campaign with promotion and special look & feel and have this promotion displayed only to the special customers irrespective if they browse the e-commerce site or they are on the Facebook page or they use the iPhone/Android app? And what if we want this to happen only x times to each specific customer and after that do not appear any more?

What if we want to do this for N (let’s say N=30 or 300) customer groups?

If we have 4-5 or more front ends (e-commerce, app Iphone, app Android, social pages, marketing emails, etc…) do we have to perform 5×300=1500 ui changes (1 for each combination of ui and customer group) ?

How do we recognize the same customer across different front ends in order to offer him the right promotions (multi channel)?

And if we add also retail stores (our own retail stores) into the mix (omni-channel) ?

What is the cost if we do this in the wrong way?

Finally one of the most desired features: Can we have a customer group journey builder and on each step of the journey decide what will happen on all the touch points (front ends) for those customers?


Those questions are usually the bread and butter of all the digital marketing and sales departments trying to serve their clients with the best of breed available technologies but at a reasonable cost , not only in terms of licensing and customization but mainly in terms of maintenance and integration costs.

In fact a “build” approach for those scenarios is simply impossible not only from a budget perspective but principally from a time to market perspective.

In order to proceed and propose some feasible approaches we need first try to figure out what are our key enablers that can help to simplify our landscape .

A first consideration is the following:

If we want to provide the same “service” to our customers on different touch points, we need to recognize customers in those front ends in the very same way.

One way to achieve this is to assign and reuse for each customer a unique identity that can identify him across all channels.

Ideally we need an identity solution, with hashing, encryption, cyber threat detection, multi factor authentication, social logins, etc…

More importantly we need an identity provider that is “plug-gable” in our e-commerce, apps and other touch points.

Assuming that our identity provider is in place (here a list of possible vendors) we can already offer very nice features and obtain very important benefits:

1. We do not manage passwords, we offload almost completely the identity security and compliance to our identity provider

2. We can offer social or sms login so people do not have to remember new passwords but they can re-use identities that they already have.

3. We can leverage identity provider advanced features like: progressive profiling (ask info to our customers at the right time and not all in once at registration time), identity sso across multiple touch points (if you are already logged in website A you are also automatically logged in website B) , conditional multi factor authentication (mfa), mobile app with qr code scan for mfa instead of sms, etc…

4. Identity forms (registration, password reset, login/multi factor login, etc) managed centrally once for all in the identity provider. Defined once, used in all the touch points.

5. Custom schema: in addition to the usual username/userid etc… modern identity providers give you also a flexible schema for customer identity data that you can leverage for multiple purposes. We will see the value of this soon..

In the next part we will look in the architectural benefits that this choice can bring and how we can leverage this to deliver the previously discussed features.

Digital Marketing in practice (part 2)

In part one we defined our landscape and the first challenges encountered on managing the known customers .

We now want to investigate how to bring new customers to our e-commerce site and more importantly how to target , among potentially 7 billion customers, the ones that have the higher chances to buy our fantastic product.

Ideally we would like to place advertisement on :

  1. search engines (google, bing, etc..)
  2. social networks (facebook, twitter, snapchat, etc..)
  3. big content websites (msn.com, yahoo, news websites,etc..)
  4. inside famous apps that can host advertisement
  5. etc…

How do we contact all these different “information publishers” and how we can create a single “campaign” targeting all these “channels” ?

Here we have go into the DMP, DSP,SSP world, and see how these platforms can help us in reaching our objectives.

Let explain this with an example : go now to this yahoo page https://www.yahoo.com/news/ , you should see almost immediately on the top of the page an advertisement like this:

How and why this advertisement was placed there ?

The “publishers” like yahoo, have a so called “inventory” of places where ads can be positioned on each page , on different times of day or of the week typically. So they use a platform called SSP  to communicate to the entire world the following message : “I have these open slots/positions in my pages, who pays the highest amount to buy them and place their own ads?”

On the other side of the fence there is another platform called DSP where “marketers” can say the following : “I want to pay this amount of money to place my banner in yahoo pages “.

The process where “supply” and “demand” meet together is called RTB , real time bidding , and thanks to that, in real time it will be decided what is the advertisement appearing in yahoo website. If you want to understand this more in deep look at articles like this , but you understood that in this way we can have new customers that can reach our e-commerce site clicking on the banner.

But now another question comes up: is this banner the same for all the visitors? And if it has been displayed to 1 Million or 10 Million or 100 Million visitors what is the price that we have to pay?

This is the right time to explain the concept of audience: before going to the DSP and search for “open inventory” we first want to define who are the visitors or anonymous customers that we want to target in our campaign, in this way we can have an idea of how many of them in theory can see the banner.

But if these customers are “unknown” how do I target them? Here the final piece of the puzzle comes into play: the DMP . With DMP we can actually “purchase” (or better rent) from third parties anonymous customers profiles  that are based on browser cookies or smartphone device ids and pick only the ones that according to us are the best ones.

So for example we select them using simple filters in this way:

Once our audience is prepared, we can have an idea of how many of these potential customers we can reach and with this have an idea of the money we will spend if all of them will see our banner and hopefully click on it.

Now this is a pretty straightforward process, but it is not really super optimized…

In fact we already have customers in our e-commerce site (the so called first party data) and we already know who are the ones that are “our best customers”, it would make sense to find on the DMP platform the potential customers that are very similar to those ones, right?

This process exists and it is called look-alike modeling:

So now we know that we have somehow to integrate also the DMP world (that is already a world on his own with connections to DSPs and third party data providers) into our digital marketing landscape at least in two directions:

  1. unknown–>known campaigns integration
  2. known–>unknown look alike modeling and on-boarding process (bring our first party data into the DMP)

Be patient now 🙂 .

We will start designing our digital marketing landscape in part 3.

Digital Marketing in practice (Part 1)

Several times you hear these buzzwords: digital transformation, digital marketing, etc.., but what really is that from a technology point of view?

I will try to give you my point of view (mainly looking at architectures and components involved) but I hope this can be useful to a large audience.

In order to understand the digital marketing ecosystem imagine that we are the founder of one of the an innovative company that is launching a new incredible mini robot that is mainly focused for kids , let’s call our product TheToy:

Now that we have a product to sell we need to prepare the following:

  1. An e-commerce web site to sell this product
  2. A payment provider that help us to accept any credit card/bitcoin/bank transfer/paypal/etc..
  3. A delivery/supply chain provider that help us to bring the goods to our customers
  4. Speaking of customers we need a CRM system with integrated call center
  5. ……

This of course it’s just an over simplified view of the needs of an e-commerce initiative , but it’s already interesting to speak of this because in this way we can for example evaluate the following options:

  • Our IT related “stuff” (e-commerce, crm,etc..) needs servers, where do I buy, host and maintain these servers?
  • Do I build from scratch ,hiring some developers, the e-commerce website, the payment provider, the CRM,etc..?

Since our focus , should be, to create a fantastic product and having customers happy and not be an IT company we can do , for example, the following choices :

A) Pick a cloud provider that gives us all necessary “virtual hardware” and bandwidth, pick an e-commerce software package, install/configure a huge amount of stuff and hopefully end up in something (again high level) like this :

B) Pick a software as service e-commerce provider that already has all of this in place and where we have just to upload our product catalog and start our e-commerce site immediately:

Now choice is not simple as it seems because every time we pick a “the shortest route”, there is a price to pay , not only in terms of pricing of the solution, but also in terms of functionalities that we would like later to have.

As we said there are other pieces of the puzzle like our CRM and not only we have to pick the CRM that best serves our needs and budget but that also it has to be “somehow integrated” with our e-commerce site…

Before we dig also in this , let’s imagine for a moment that , magically, our e-commerce and CRM and Delivery/Supply Chain/etc.. are already in place and we are selling/delivering our products successfully , what if we have a new product/offer to sell and we want to notify our customers that we have a new product?

This process of contacting customers in order to sell/advertise a new product/offer is called “marketing campaign” and of course we need a tool for that 🙂 : we need a marketing campaign automation tool that help us to create targeted campaigns (we want to reach the right consumer for the right product….) and deliver those messages in multiple ways :

  • emails
  • sms
  • push notifications if we have also an e-commerce app
  • social accounts/pages (btw we need to setup also those accounts!)
  • personalized pages and messages on the e-commerce website advertising the new product only to the “right customers”
  • personalized CRM responses (when the target customers calls only to these customers the crm agent has to propose the new offer/product)
  • etc…

So now the things became to be a bit more complicated, we need in fact an e-commerce site integrated with CRM both integrated with a marketing campaign automation tool .

In order to have even more fun let’s also consider the following : we said that we want to produce “targeted campaigns” , this means that we want to leverage all our data on customers to target only the “right” ones ….

What is the data that we can leverage?

Some ideas:

  • The weblogs of the e-commerce site (google analytics logs for example)
  • The orders of the e-commerce site
  • The calls/cases of the CRM
  • The responses/interactions with our previous campaigns
  • The interactions on our social channels
  • etc…

This , even at small scale of our little e-commerce initiative , seems like a little data warehouse project and if we plan to find the right customers for the right offer , this is also a data science project involving machine learning…..

So we need an e-commerce site integrated with CRM integrated with a marketing campaign automation tool integrated with a big data engine with machine learning capabilities .

In the part 2 we will start to look also to another dimension of the digital marketing landscape: the unknown customers that are waiting to purchase our product but they don’t know that the product exists and we don’t how to reach them 🙂

Extract text from documents at scale in the Azure Data Lake

Hi across all the content posted on Build 2017 , I was really impressed by this presentation where you can learn how to lift and shift almost any runtime to Azure Data Lake Analytics for large scale processing.

Following those recommendations I built a custom Extractor and Processor for USQL leveraging tika.net extractor in order to extract in a text format all the content stored in files like pdf, docx, etc…

The idea is to solve the following business scenario: you have a large collection of docs (azure data lake store capacity is unlimited)  : pdfs, xls, ppts, etc.. and you want to quickly understand the information stored in all those documents without having to create/deploy your own cluster but in pure PaaS mode.

Here a sample of code built around the Visual Studio Project template for U-SQL Applications.

ADLA4As you can see in this demo we limited the max size of the extracted content to 128Kb in order to comply to this ADLA limit. This limit can be bypassed working on byte arrays.

Now I uploaded all the dll binaries to the data lake stored and registered them as assembly

adla3.jpg

Then I launched a U-SQL command to actually take text data stored in a collection of pdf documents specifying 22 AU .adla2

And in less than 2 min I have my collection of documents parsed inside one single csv file .adla.jpg

Now that the information is in text format we can use the Azure Data Lake topics and keywords extensions to understand quickly what kind of information is stored inside our document collection.

The final result that shows how keywords are linked to documents can be visualized in Power Bi with several nice visualizations

rev1

And clicking on one keyword we can see immediately which documents are linked to it

rev2

Another way to visualize this , it is with word cloud

rev4

where we see for a specific document this time what are the keywords most representative of the document.

If you are interested into the solution and you want to know more send me a message on my twitter handle.

My Top 2 Microsoft Build 2017 Sessions

Let’s start with Number 1 this is the Visionary Cloud that is arriving , compute nodes combined with FPGA neurons that act as Hardware Micro services communicating and changing their internal code directly attached to the Azure Network , like a global neural network. Do you want to know more? Click here and check directly with the new video index AI the content of this presentation jumping directly on the portions of the video that you like, searching words, concepts and people appearing in the video.

We can then look here at Number 2 (go to 1:01:54) :

Matt Velloso teaching to a Robot (Zenbo) how to recognize the images the robot sees using Microsoft Bot Framework and the new Custom Image Recognition Service.

Do you want to explore more?

Go here at channel9 and have fun exploring all the massive updates that has been released!