Marketing Cloud Personalisation
Get Started
Marketing Cloud Personalization is a dynamic and data-driven approach to marketing that leverages advanced technologies, such as customer relationship management (CRM) platforms, artificial intelligence, and machine learning, to tailor marketing messages and content based on individual customer preferences, behaviors, and interactions. Unlike generic mass marketing, personalized marketing aims to create a one-to-one connection with the audience, delivering content that resonates with each individual on a personal level...Read more
Get Started
Understanding Marketing Cloud Personalization:
Marketing Cloud Personalization is a dynamic and data-driven approach to marketing that leverages advanced technologies, such as customer relationship management (CRM) platforms, artificial intelligence, and machine learning, to tailor marketing messages and content based on individual customer preferences, behaviors, and interactions. Unlike generic mass marketing, personalized marketing aims to create a one-to-one connection with the audience, delivering content that resonates with each individual on a personal level.
Key Components of Marketing Cloud Personalization:
- Data Integration: Central to Marketing Cloud Personalization is the integration of diverse data sources. This includes customer demographics, purchase history, browsing behavior, and social media interactions. By consolidating this information into a centralized platform, businesses gain a comprehensive understanding of each customer, enabling them to create highly targeted and relevant marketing campaigns.
- Customer Segmentation: Segmentation involves categorizing customers into groups based on shared characteristics, interests, or behaviors. Marketing Cloud Personalization utilizes this segmentation to tailor messages and content to the specific needs and preferences of each group. This ensures that marketing efforts are more focused and resonate with the unique aspects of each segment.
- Behavioral Tracking: Monitoring and analyzing customer behavior across various touchpoints is crucial for effective personalization. Marketing Cloud solutions track customer interactions with websites, emails, social media, and other channels. This data is then used to create a holistic view of the customer journey, enabling businesses to deliver timely and relevant content at each stage.
- Dynamic Content Delivery: With Marketing Cloud Personalization, businesses can dynamically adjust the content displayed to individual users in real-time. This can include personalized product recommendations, tailored offers, and targeted promotions. The goal is to present each customer with content that aligns with their preferences and increases the likelihood of conversion.
Benefits of Marketing Cloud Personalization:
- Enhanced Customer Experience: Personalized marketing fosters a sense of individualized attention, making customers feel valued. By delivering content that aligns with their interests and needs, businesses can significantly enhance the overall customer experience, leading to increased loyalty and satisfaction.
- Improved Engagement and Conversion Rates: Personalized marketing messages are more likely to capture the attention of the audience. When customers receive content that is relevant to them, they are more inclined to engage and take desired actions, such as making a purchase or subscribing to a service.
- Optimized Marketing Spend: Personalization enables businesses to allocate their marketing budget more efficiently. By targeting specific audience segments with tailored messages, businesses can reduce wasted ad spend on irrelevant audiences and focus on those more likely to convert.
- Data-Driven Insights: The wealth of data generated through Marketing Cloud Personalization provides valuable insights into customer behavior and preferences. This data can be analyzed to refine marketing strategies, improve product offerings, and make informed business decisions.
Personalization Datasets
Personalization datasets refer to collections of data that are used to train and evaluate personalized recommendation systems. These recommendation systems are designed to provide users with personalized content, product recommendations, or other suggestions based on their preferences, behavior, or historical interactions with a platform......Read more
Personalization Datasets
Personalization datasets refer to collections of data that are used to train and evaluate personalized recommendation systems. These recommendation systems are designed to provide users with personalized content, product recommendations, or other suggestions based on their preferences, behavior, or historical interactions with a platform.
Components of Personalization Datasets
- Users: Information about the individuals for whom recommendations are being generated. This may include demographic details, user IDs, or other relevant attributes.
- Items: Details about the items or content that are being recommended. This could be products, articles, videos, or any other type of content that the recommendation system is designed to suggest.
- Interactions: Records of user interactions with items. This includes data on which items users have viewed, liked, purchased, rated, or interacted with in some way.
The primary goal of personalization datasets is to train machine learning models that can predict or infer user preferences based on historical data. Popular techniques for personalization include collaborative filtering, content-based filtering, and hybrid approaches that combine multiple methods.
Types of Datasets
Each dataset is configured to be one of the following types:
- Production: Datasets used in the production environment for real-world scenarios.
- Staging: Datasets used in a staging environment for testing before deployment to production.
- QA: Datasets specifically used for quality assurance and testing purposes.
- Development: Datasets utilized during the development phase for initial testing and setup.
Popular Personalization Datasets
- MovieLens
- Netflix Prize
- Amazon Reviews
It's important to note that handling personal data in these datasets raises privacy concerns, and dataset creators often take steps to anonymize or aggregate data to address these issues. Additionally, researchers and practitioners need to be mindful of ethical considerations when working with personalization datasets, ensuring that user privacy is protected and that recommendations are made in a fair and unbiased manner.
Read less10 Tips for Mastering Cloud Personalization in Your Marketing Strategy
In the rapidly evolving landscape of digital marketing, staying ahead requires innovative strategies. One such strategy gaining prominence is cloud personalization. Leveraging cloud technology for personalization can significantly enhance customer experiences and boost engagement. Here are 10 tips to help you master cloud personalization in your marketing strategy...Read more
10 Tips for Mastering Cloud Personalization in Your Marketing Strategy
In the rapidly evolving landscape of digital marketing, staying ahead requires innovative strategies. One such strategy gaining prominence is cloud personalization. Leveraging cloud technology for personalization can significantly enhance customer experiences and boost engagement. Here are 10 tips to help you master cloud personalization in your marketing strategy:
1. Understand Your Audience:
Before diving into cloud personalization, it's crucial to have a deep understanding of your target audience. Use data analytics to gather insights into customer preferences, behaviors, and demographics. This knowledge forms the foundation for effective personalization.
2. Utilize Advanced Analytics:
Leverage the power of advanced analytics tools available in the cloud to gain actionable insights. Analyzing data patterns and customer journeys can help you identify opportunities for personalization, enabling you to deliver more relevant content and offers.
3. Implement Real-Time Personalization:
Cloud technology allows for real-time data processing. Use this capability to personalize customer interactions in real-time. Whether it's website content, email campaigns, or product recommendations, delivering personalized experiences as customers engage with your brand enhances their satisfaction and loyalty.
4. Employ Machine Learning Algorithms:
Harness the capabilities of machine learning algorithms available in cloud platforms. These algorithms can analyze vast amounts of data to predict customer preferences and behaviors, enabling you to offer personalized recommendations and experiences.
5. Omnichannel Personalization:
A seamless customer experience across multiple channels is essential. Ensure your cloud personalization strategy is capable of delivering consistent and personalized messages across various touchpoints, such as websites, mobile apps, email, and social media.
6. Dynamic Content Personalization:
Tailor your content dynamically based on user behavior and preferences. Cloud personalization allows you to create adaptable content blocks that change in real-time, ensuring that each user receives the most relevant information.
7. Prioritize Data Security and Privacy:
With great personalization comes great responsibility. Ensure that your cloud personalization strategy aligns with data security and privacy regulations. Gain customer trust by being transparent about data usage and providing opt-in/opt-out options.
8. Segmentation for Targeted Campaigns:
Use cloud-based segmentation tools to group your audience based on shared characteristics. This enables you to run targeted campaigns, ensuring that each segment receives personalized content tailored to their specific needs and interests.
9. A/B Testing for Optimization:
Continuous improvement is key to successful personalization. Implement A/B testing using cloud tools to experiment with different personalized elements and measure their impact. This iterative process helps optimize personalization efforts over time.
10. Stay Agile and Adaptive:
The digital landscape is dynamic, and customer preferences evolve. Stay agile and adaptive by regularly reassessing your personalization strategy. Cloud platforms provide the flexibility to adjust and refine your approach based on changing market trends and customer behaviors.
Read lessSalesforce Interactions SDK
The Salesforce Interactions SDK serves as an extensible data capture and collection framework, designed to empower businesses in tracking and analyzing the profile data and interactions of website visitors. This robust software development kit allows organizations to glean valuable insights from user behaviors on their websites and seamlessly transmit this information to Salesforce for further analysis and integration with various Salesforce products...Read More
Salesforce Interactions SDK
The Salesforce Interactions SDK serves as an extensible data capture and collection framework, designed to empower businesses in tracking and analyzing the profile data and interactions of website visitors. This robust software development kit allows organizations to glean valuable insights from user behaviors on their websites and seamlessly transmit this information to Salesforce for further analysis and integration with various Salesforce products.
Comprising a base SDK and specific modules tailored for Marketing Cloud Personalization and Salesforce Data Cloud (formerly Customer Data Platform), the Salesforce Interactions SDK provides a comprehensive solution for businesses aiming to enhance their understanding of customer engagement. The modular nature of the SDK allows for flexibility, accommodating the specific needs and preferences of different businesses.
One notable feature of the Interactions SDK is its utilization of a unified event data model. This standardized approach ensures consistency in capturing and integrating essential business objects, as well as user and behavioral data. The unified data model enables businesses to gather information in a coherent and standardized format, facilitating easier analysis and interpretation.
Moreover, the Interactions SDK stands out for its versatility. It allows users to leverage a single SDK for integration with both Marketing Cloud Personalization and Salesforce Data Cloud. This unified approach simplifies the development and integration process, offering efficiency and ease of use for businesses seeking a seamless and consolidated solution.
For developers, the extensibility of the SDK is a key highlight. The framework is built to be customizable, enabling developers to tailor its functionality to meet specific business requirements. This adaptability ensures that businesses can not only capture data effectively but also mold the SDK to align with their unique needs and objectives.
As with any Salesforce product, users and developers are encouraged to refer to the official documentation, developer resources, and support channels for the most accurate and detailed information. The Salesforce Developer site, in particular, serves as a valuable hub for those seeking guidance and insights into implementing and maximizing the capabilities of the Salesforce Interactions SDK.
Read lessPersonalization Sitemap
A Personalization Sitemap is a configuration-driven system deployed and executed within the Personalization module of the Salesforce Interactions SDK. This system is designed to facilitate the implementation of personalized experiences in the context of web channels. The term "Sitemap" in this context doesn't refer to a traditional sitemap used for search engine optimization; rather, it pertains to a structured configuration that orchestrates how personalization is applied on a website or web application...Read More
Personalization Sitemap
A Personalization Sitemap is a configuration-driven system deployed and executed within the Personalization module of the Salesforce Interactions SDK. This system is designed to facilitate the implementation of personalized experiences in the context of web channels. The term "Sitemap" in this context doesn't refer to a traditional sitemap used for search engine optimization; rather, it pertains to a structured configuration that orchestrates how personalization is applied on a website or web application.
Key Aspects of a Personalization Sitemap:
-
Configuration-Driven Nature:
The behavior and functionality of the Personalization Sitemap are determined by its configuration rather than by hard-coded logic. This makes it flexible and adaptable to various personalization requirements.
-
Client Context Events:
The Sitemap configuration enables the registration and receipt of events from the client context. This suggests that it is involved in capturing and responding to user interactions or events on the client side, such as clicks, page views, or other relevant actions.
-
JavaScript Components:
Configuration guidance likely includes the use of JavaScript components. This implies that the Personalization Sitemap leverages client-side scripting to implement its features and respond to user interactions.
-
Part of Salesforce Interactions SDK:
The Personalization Sitemap is integrated into the Salesforce Interactions SDK, which is a software development kit provided by Salesforce. This SDK is likely used to manage and interact with customer data and behaviors.
-
Role in Personalization Web Channel Solution Architecture:
The Sitemap is a component within the broader architecture of a Personalization web channel solution. It plays a crucial role in orchestrating how personalized content and experiences are delivered to users across web channels.
Configure Sitemap
SalesforceInteractions.init({
// Initializes the Personalization module of the Salesforce Interactions SDK
cookieDomain: "company.com", // Optional tracking cookie domain configuration (overrides default)
}).then(() => {
const sitemapConfig = {
// Sitemap configuration object
global: {}, // Object used to contain Global site object configuration
pageTypes: [], // Array used to contain the page type object configurations
};
SalesforceInteractions.initSitemap(sitemapConfig); // Initializes the Sitemap
});
Salesforce Interactions SDK Initialization Explanation
The provided JavaScript code initializes the Salesforce Interactions SDK. Let's break it down:
Personalization Module Initialization:
SalesforceInteractions.init({
cookieDomain: "company.com",
}).then(() => {
// ...
});
The SalesforceInteractions.init
function initializes the Personalization module. The
cookieDomain
parameter, set to "company.com," configures the tracking cookie domain.
Sitemap Configuration:
const sitemapConfig = {
global: {}, // Object used to contain Global site object configuration
pageTypes: [], // Array used to contain the page type object configurations
};
The code initializes a configuration object named sitemapConfig
for the sitemap.
Sitemap Initialization:
SalesforceInteractions.initSitemap(sitemapConfig);
The SalesforceInteractions.initSitemap
function is called with the
sitemapConfig
object
as its parameter. This function initializes the sitemap using the provided configuration.
E-Commerce Sitemap Example : Myntra.com
Step by Step Guide
- Dataset
Login to Marketing Cloud and open Personalization Tool. Navigate to Manage Datasets, click on create Dataset, provide the ID and Name for the dataset, select "Developement" as Dataset Type
- Website Configuration
Navigate to CHANNEL & CAMPAIGNS, Hover on Web, click on Website Configuration
Click "New Domain", add "myntra.com" and click "Save"
Read More
E-Commerce Sitemap Example : Myntra.com
Step by Step Guide
- Dataset
Login to Marketing Cloud and open Personalization Tool. Navigate to Manage Datasets, click on create Dataset, provide the ID and Name for the dataset, select "Developement" as Dataset Type
- Website Configuration
Navigate to CHANNEL & CAMPAIGNS, Hover on Web, click on Website Configuration
Click "New Domain", add "myntra.com" and click "Save"
- SDK Launcher
Install Salesforce Interactions SDK Launcher for your chrome extension. Click here
- Beacon
Navigate to Web Setup, under JavaScript Integration you will find the evergage CDN, copy the CDN
<script type="text/javascript" src="//cdn.evgnet.com/beacon/ampscriptify/myntra/scripts/evergage.min.js"></script>
- Inject SDK
Open a browser and open Myntra Website. Launch the Salesforce Interactions launcher. Add Account and Dataset as defined in your CDN. Here in this example, Account is "ampscriptify" and Dataset is "myntra"
-
Visual Editor
Enable visual editor and let the SDK launcher start. On the visual editor, click "sitemap"
- Sitemap Integration
Copy and paste the below code into your sitemap editor
SalesforceInteractions.init({ // Initializes the Personalization module of the Salesforce Interactions SDK cookieDomain: "myntra.com", // Optional tracking cookie domain configuration (overrides default) }).then(() => { const sitemapConfig = { // Sitemap configuration object global: {}, // Object used to contain Global site object configuration pageTypes: [], // Array used to contain the page type object configurations }; SalesforceInteractions.initSitemap(sitemapConfig); // Initializes the Sitemap });
Click Execute and Save
- Page Types
-
Validate
Fix the issue by adding PageTypeDefault
pageTypeDefault: { name: "default", interaction: { name: "Default Page", }, }
- Users Tracked
- Attributes
Attributes are custom-configured, type-safe fields that can store additional custom data at various levels in the platform.
- Global OnActionEvent
Send events to Personalization on user actions.
global: { onActionEvent: (actionEvent) => { const pageDetails=window.dataLayer; actionEvent.user = actionEvent.user || {}; actionEvent.user.attributes=actionEvent.user.attributes||{}; actionEvent.user.identities = actionEvent.user.identities || {}; actionEvent.user.identities.emailAddress = pageDetails[1].userEmail; actionEvent.user.attributes.pageName=pageDetails[1].pageName; return actionEvent; }, }, // Object used to contain Global site object configuration
- Page Type Interactions : View Catalog Object
{ name: "kurta-sets", isMatch: () => /\/kurta-sets/.test(window.location.href), interaction: { name: SalesforceInteractions.CatalogObjectInteractionName.ViewCatalogObject, catalogObject: { type: "Product", id: () => { const productId = window.dataLayer[2].productStyleId; return productId; }, attributes: { sku: { id: window.dataLayer[2].productInStock[0].skuId, name:window.dataLayer[2].productDisplayName, imageUrl:window.dataLayer[2].productBigImage, price:window.dataLayer[2].productPriceAfterDiscount }, } }, },
Read less
Let's config page fields that we want to track, in this example we will config "Name", "Interactions" and "IsMatch"
Copy and Paste the code
SalesforceInteractions.init({
// Initializes the Personalization module of the Salesforce Interactions SDK
cookieDomain: "myntra.com", // Optional tracking cookie domain configuration (overrides default)
}).then(() => {
const sitemapConfig = {
// Sitemap configuration object
global: {}, // Object used to contain Global site object configuration
pageTypes: [
{
name: "Men_Catlog",
interaction: {name:"Men Items"},
isMatch: () => /\/men/.test(window.location.href)
},
{
name: "Women_Catlog",
interaction: {name:"Women Items"},
isMatch: () => /\/women/.test(window.location.href)
},
{
name: "Kids_Catlog",
interaction: {name:"Women Items"},
isMatch: () => /\/kids/.test(window.location.href)
},
{
name: "personal_care",
interaction: {name:"Personal Care"},
isMatch: () => /\/personal-care/.test(window.location.href),
},
{
name: "home_living",
interaction: {name:"home living"},
isMatch: () => /\/home-living/.test(window.location.href),
}
], // Array used to contain the page type object configurations
};
SalesforceInteractions.initSitemap(sitemapConfig); // Initializes the Sitemap
});
Interactions in the Event API
Today,In this example,we will show, how we can trigger SalesforceInteractions.SentEvent when the user clicks the DOM element referenced by the provided selector,".show-flight-btn" for Air India Website
SalesforceInteractions.init({
// Initializes the Personalization module of the Salesforce Interactions SDK
cookieDomain: "airindia.com", // Optional tracking cookie domain configuration (overrides default)
}).then(() => {
const sitemapConfig = {
// Sitemap configuration object
global: {}, // Object used to contain Global site object configuration
pageTypeDefault: {
name: "default",
interaction: {
name: "Default Page",
},
},
pageTypes: [
{
name: "search-flights",
isMatch: () => /\/search-flights/.test(window.location.href),
interaction: {
name:"search-flights"
},
listeners: [
SalesforceInteractions.listener("click", ".show-flight-btn", (event) => {
const From = SalesforceInteractions.cashDom("input[placeholder='From']").val();
const To=SalesforceInteractions.cashDom("input[placeholder='To']").val();
if (From) {
SalesforceInteractions.sendEvent({
user: {
identities: { emailAddress: "shashi@gmail.com" },
attributes:{LatestFrom:From, LatestTo:To},
},
});
}
}),
],
}
], // Array used to contain the page type object configurations
};
SalesforceInteractions.initSitemap(sitemapConfig); // Initializes the Sitemap
});
Interactions in the Event API
Today,In this example,we will show, how we can trigger SalesforceInteractions.SentEvent when the user clicks the DOM element referenced by the provided selector,".show-flight-btn" for Air India Website
SalesforceInteractions.init({
// Initializes the Personalization module of the Salesforce Interactions SDK
cookieDomain: "airindia.com", // Optional tracking cookie domain configuration (overrides default)
}).then(() => {
const sitemapConfig = {
// Sitemap configuration object
global: {}, // Object used to contain Global site object configuration
pageTypeDefault: {
name: "default",
interaction: {
name: "Default Page",
},
},
pageTypes: [
{
name: "search-flights",
isMatch: () => /\/search-flights/.test(window.location.href),
interaction: {
name:"search-flights"
},
listeners: [
SalesforceInteractions.listener("click", ".show-flight-btn", (event) => {
const From = SalesforceInteractions.cashDom("input[placeholder='From']").val();
const To=SalesforceInteractions.cashDom("input[placeholder='To']").val();
if (From) {
SalesforceInteractions.sendEvent({
user: {
identities: { emailAddress: "shashi@gmail.com" },
attributes:{LatestFrom:From, LatestTo:To},
},
});
}
}),
],
}
], // Array used to contain the page type object configurations
};
SalesforceInteractions.initSitemap(sitemapConfig); // Initializes the Sitemap
});
Copy and Paste the code in your visual editor and execute
-
Validation
- DOM listeners
- User Data
Enter To and From details and click on "Show Flights"
listeners: [ SalesforceInteractions.listener("click", ".show-flight-btn", (event) => { const From = SalesforceInteractions.cashDom("input[placeholder='From']").val(); const To=SalesforceInteractions.cashDom("input[placeholder='To']").val(); if (From) { SalesforceInteractions.sendEvent({ user: { identities: { emailAddress: "shashi@gmail.com" }, attributes:{LatestFrom:From, LatestTo:To}, }, }); } }), ],
-
validate event stream
DisplayUtils
When dealing with the necessity to await data availability using Promises, DisplayUtil offers a useful function for ensuring specific elements are present on the page. These functions are designed to activate only when the specified element has been successfully loaded onto the page.
Consider a scenario where you're dealing with a dropdown, and you need to wait for the #SearchByProduct element to be present on the page before capturing the selected value of a product. In such cases, leveraging the pageElementLoaded utility is demonstrated in the following examples:
ProductName: SalesforceInteractions.DisplayUtils.pageElementLoaded("#SearchByProduct", "html").then((ele) => {
const element = SalesforceInteractions.cashDom(ele).attr("selected");
return element;
})
Built-In Catalog Objects
Utilize built-in catalog objects for a swift start in constructing and outlining your catalog. Personalization leverages these catalog objects to interpret customer engagement and preferences. Behavioral data about your customers within the framework of your catalog is gathered through personalization. Catalog objects can exist independently or interconnect to offer a more detailed structure for your catalog.
In this instance, we will use "The Hindu" news website to create a catalog focused on articles.
Sitemap
SalesforceInteractions.init({
cookieDomain: "thehindu.com",
}).then(() => {
const config = {
global: {
onActionEvent: (actionEvent) => {
const subscriberKey = window.dataLayer[1].data['email'];
if (subscriberKey) {
actionEvent.user = actionEvent.user || {};
actionEvent.user.attributes = actionEvent.user.attributes || {};
actionEvent.user.identities = actionEvent.user.identities || {};
actionEvent.user.identities.emailAddress = subscriberKey;
}
return actionEvent;
},
},
pageTypes: [
{
name: "sci-tech",
action: "Viewed sci-tech",
isMatch: () => /\/sci-tech/.test(window.location.href),
interaction: {
name: SalesforceInteractions.CatalogObjectInteractionName.ViewCatalogObject,
catalogObject: {
type: "Article",
id: () =>
window.dataLayer[0].pageDetails['articleId'],
attributes: {
url: SalesforceInteractions.resolvers.fromHref(),
name: window.dataLayer[0].pageDetails['headline'],
publishDate:window.dataLayer[0].pageDetails['publishDate'],
featureType:window.dataLayer[0].pageDetails['featureType'],
authorName:window.dataLayer[0].pageDetails['authorName'],
articleType:window.dataLayer[0].pageDetails['articleType'],
imageUrl: SalesforceInteractions.resolvers.fromSelectorAttribute(
"div.picture verticle img",
"src",
),
},
}
}
},
{
name: "elections",
action: "Viewed elections",
isMatch: () => /\/elections/.test(window.location.href),
interaction: {
name: SalesforceInteractions.CatalogObjectInteractionName.ViewCatalogObject,
catalogObject: {
type: "Article",
id: () =>
window.dataLayer[0].pageDetails['articleId'],
attributes: {
url: SalesforceInteractions.resolvers.fromHref(),
name: window.dataLayer[0].pageDetails['headline'],
publishDate:window.dataLayer[0].pageDetails['publishDate'],
featureType:window.dataLayer[0].pageDetails['featureType'],
authorName:window.dataLayer[0].pageDetails['authorName'],
articleType:window.dataLayer[0].pageDetails['articleType'],
imageUrl: SalesforceInteractions.resolvers.fromSelectorAttribute(
"div.picture verticle img",
"src",
),
},
}
}
},
],
};
SalesforceInteractions.initSitemap(config);
});
Comments
Post a Comment