E-Marketing Spots
E-Marketing Spots reserve space on your store pages for
displaying marketing information to your customers. By using web activities,
you can control the information that displays in e-Marketing Spots
without new development.
E-Marketing Spots can display the following types of marketing
information:
- Content, such advertisements for promotions
- Category recommendations
- Catalog entry recommendations, including merchandising associations
EMSPOT: This table contains registered e-Marketing Spots.
DMEMSPOTDEF: The default content to display in an e-Marketing Spot. Holds the unique identifier of the content. For content of type MarketingContent, it holds the COLLATERAL.COLLATERAL_ID. For content of type CatalogGroup, it holds the CATGROUP.CATGROUP_ID. For content of type CatalogEntry, it holds the CATENTRY.CATENTRY_ID.
COLLATERAL: This table contains data describing the advertisements used by marketing campaigns.
COLLDESC: This table holds language-dependent information related to a Collateral.
WebActivities
Web activities control what to display in each e-Marketing Spot.
Each e-Marketing
Spot typically has one or more web activities that are associated
with it. Web activities can target different types of customers with
different advertisements or recommendations, so each customer viewing
the e-Marketing Spot might not see the same thing. In this way, the
content of an e-Marketing Spot is dynamic.
Web activities are managed by Marketing
Managers. They are used to deliver brand or promotional messages to
customers through a variety of methods.
Tables Associated
DMACTIVITY: A definition of the interaction with a customer to
market content.
DMELEMENT: Campaign elements associated with a marketing
activity.
DMELEMENTNVP: Name value pairs associated with a campaign
element.
DMELETEMPLATE: Template definitions of trigger, target, and action
campaign elements. A trigger is used to wait for a customer to do
something, or to wait for a certain period of time to elapse. When
a trigger occurs, the activity flow can continue from where the
trigger was defined in the flow. A target is used to qualify
customers for subsequent actions or continue execution of the
activity flow. Targets are usually based on a customer's behavior
and segmentation. An action is a step to perform as part of the
activity flow. Actions are the "to do" based on the previous
sequence of triggers and targets. Most actions are for marketing
purposes, such as display content in an e-marketing spot, or send
the customer an e-mail.
DMELEMENTTYPE: Types of trigger, target and action campaign
elements for an activity.
DMTEMPLATETYPE: Types of marketing activity templates.
A dynamic e-Marketing Spot, at any time, has one or more scheduled activities whose behavior can depend on the current customer or the current context. These activities use targets, branches, and experiments.
Caching in Marketing Subsystem
The marketing caching technique that is based on activity behavior allows for optimal caching of e-Marketing Spots with no manual involvement. The marketing engine automatically detects if the e-Marketing Spot is static or dynamic. If the e-Marketing Spot is static, then JSP caching can be used for the e-Marketing Spot results. If the e-Marketing Spot is dynamic, then the marketing engine determines the content to display. The marketing engine then uses the dynacache command cache and distributed map cache entries to display the results. Configuration is set in the e-Marketing Spot JSP snippets and the store cachespec.xml file, then static e-Marketing Spots are automatically JSP cached.
In general, marketing objects can be cached within the following marketing-specific caches:
- Marketing Business Objects Cache
- Marketing User Behavior Cache
- WCMarketingDistributeMapCache
- DynaCache Marketing Command Cache
- Marketing JSP caching
- Marketing command caching
- Marketing business object caching
Marketing JSP Caching
We can improve performance by caching an e-Marketing Spot
at the storefront based on the activity behavior, which includes web
activities and marketing content for which JSP snippet caching based on activity behavior can be setup.
To set up this type of caching, dependency IDs are dynamically
set to invalidate the cached JSP when the e-Marketing Spot definition
changes. These definition changes can be caused by events such as
web activity changes, default content changes, content changes, product
changes, and category changes. The page time limit is set to invalidate
the page at the next scheduled time that an activity is added or removed
from the e-Marketing Spot. When the page is reloaded, the new set
of active activities for the e-Marketing Spot is in effect.
For each e-Marketing Spot JSP snippet in the store, include
a cache entry similar to the following code.
Ensure
that the following are specified:
<cache-entry>
<class>servlet</class>
<name>/Madisons/Snippets/Marketing/ESpot/ContentAreaESpot.jsp</name>
<property name="do-not-consume">true</property>
<property name="do-not-cache">true</property>
<property name="save-attributes">false</property>
<cache-id>
<component id="emsName" type="parameter">
<required>false</required>
</component>
<component id="DC_storeId" type="attribute">
<required>false</required>
</component>
<component id="DC_lang" type="attribute">
<required>false</required>
</component>
<metadatagenerator>com.ibm.commerce.marketing.cache.EMarketingSpotMetaDataGenerator</metadatagenerator>
</cache-id>
</cache-entry>
For more information please visit the infocenter in the following link
EMarketingSpotMetaDataGenerator
This class is used to assist in determining how an e-Marketing Spot can
cache its results based on the definition of the web activities and
default content scheduled to the e-Marketing Spot. The default value for
do-not-consume should be true and for do-not-cache should be true. This
specifies to not cache the e-Marketing Spot JSP fragment. This class
will dynamically set the e-Marketing Spot JSP fragment to be cached if
the e-Marketing Spot displays the same results to all customers.
For more information about metadata generator please visit the below infocenter link
<wcf:eMarketingSpotCache>
wcf:eMarketingSpotCache tag can be included within an e-Marketing Spot JSP fragment to indicate that the JSP fragment is to be dynamically cached. This tag dynamically sets dependency IDs for e-Marketing Spot cache entries. No variables are defined for the wcf:eMarketingSpotCache tag.
When the wcf:eMarketingSpotCache tag is used, the class for this tag dynamically sets the dependency IDs to invalidate the cached e-Marketing Spot JSP fragment when the e-Marketing Spot definition changes. The e-Marketing Spot definition changes whenever the content (marketing content, products, categories) or web activities that are associated with the e-Marketing Spot changes. The dependency IDs are set for the e-Marketing Spot (ID or name). Dependency IDs can also be set for the data (catalog entry, category, content) that is being displayed within an e-Marketing Spot.
wcf:eMarketingSpotCache tag can be included within an e-Marketing Spot JSP fragment to indicate that the JSP fragment is to be dynamically cached. This tag dynamically sets dependency IDs for e-Marketing Spot cache entries. No variables are defined for the wcf:eMarketingSpotCache tag.
When the wcf:eMarketingSpotCache tag is used, the class for this tag dynamically sets the dependency IDs to invalidate the cached e-Marketing Spot JSP fragment when the e-Marketing Spot definition changes. The e-Marketing Spot definition changes whenever the content (marketing content, products, categories) or web activities that are associated with the e-Marketing Spot changes. The dependency IDs are set for the e-Marketing Spot (ID or name). Dependency IDs can also be set for the data (catalog entry, category, content) that is being displayed within an e-Marketing Spot.
- If the parent page is being cached, the dependency IDs are set on the parent page cache entry
- If the parent page is not being cached, the dependency IDs are set on e-Marketing Spot JSP cache entry
Sample Code
<wcf:eMarketingSpotCache marketingSpotData="${marketingSpotDatas}" contentDependencyName="contentId" catalogEntryDependencyName="productId" categoryDependencyName="categoryId"/>
<wcf:eMarketingSpotCache marketingSpotData="${marketingSpotDatas}" contentDependencyName="contentId" catalogEntryDependencyName="productId" categoryDependencyName="categoryId"/>
Marketing Command Caching
The most resource-intensive part of evaluating a marketing
rule is processing the query to return the Service Data Object (SDO)
business object. The SDO business object for categories, catalog entries,
and marketing content displays in an e-Marketing Spot. Command caching
stores the results of earlier queries in cache to take advantage of
lower retrieval times in comparison to retrieving results from main
storage.
For marketing commands cache entries like the below has to be in place.
<!-- Cache Entry for Filter Marketing Content -->
<cache-entry>
<class>command</class>
<sharing-policy>not-shared</sharing-policy>
<name>com.ibm.commerce.marketing.commands.marketingspot.FilterContentTaskCmdImpl</name>
<cache-id>
<component id="getCacheKey" type="method">
<required>true</required>
</component>
<component id="getDataType" type="method">
<required>true</required>
</component>
<component id="getStoreId" type="method">
<required>true</required>
</component>
<component id="getLanguageId" type="method">
<required>true</required>
</component>
<component id="getActivityId" type="method">
<required>true</required>
</component>
<component id="getCatalogId" type="method">
<required>true</required>
</component>
<component id="getExperimentId" type="method">
<required>false</required>
</component>
<component id="getTestElementId" type="method">
<required>false</required>
</component>
<!-- NEW: for e-Marketing Spot caching -->
<component id="getMarketingSpotBehavior" type="method">
<value>1</value>
</component>
</cache-id>
<!-- Invalidate when the associated marketing content or activity has changed. -->
<dependency-id>contentId
<component id="getCacheKey" type="method">
<required>true</required>
</component>
</dependency-id>
<dependency-id>activityId
<component id="getActivityId" type="method">
<required>true</required>
</component>
</dependency-id>
<dependency-id>dialogMarketingCommand</dependency-id>
</cache-entry>
<dependency-id>contentId
<component id="getCacheKey" type="method">
<required>true</required>
</component>
</dependency-id>
<dependency-id>activityId
<component id="getActivityId" type="method">
<required>true</required>
</component>
</dependency-id>
<dependency-id>dialogMarketingCommand</dependency-id>
</cache-entry>
To verify that
cache is receiving data properly check the cache entries in the cache monitor.
Marketing object caching
Business object caching eliminates querying of marketing
database tables when evaluating the marketing rules for a
customer. By managing the memory that is allocated to the cache we can fine-tune marketing performance.
The MarketingCache object cache instance is a location where a distributed map cache (DM_Cache) stores data that pertains to a marketing business object.
The data that is stored in the MarketingCache includes:
- Activity business objects
- Element business objects
- Trigger Listener business objects (which triggers are associated with each activity)
- Rules for detecting the occurrence of triggers and when something is to be recorded for a target
- Default content that is associated with an e-Marketing Spot
- e-Marketing Spot ordering rules
Note: Do not clear the DM_Cache with the WebSphere Application Server cache monitor. If the entire DM_Cache is cleared with the WebSphere Application Server cache monitor, then the marketing services do not detect the events that are associated with any behavior rules. As a result, certain triggers and targets that are used in marketing activities to detect customer behavior do not work properly. If you need to clear the DM_Cache, then update the Marketing registry with the Administration Console.
Marketing user behavior cache (DM_UserCache)
The MarketingUserCache object cache instance is a location where a distributed map cache (DM_UserCache) stores data about customers that participate in marketing activities.
Note: For the Display Recently Viewed action in a web activity, only the server stores the list of recently viewed items in the marketing user behavior cache. The list is not stored in the database by default. When the customer's user behavior cache entry is removed from the cache, that customer's recently viewed list is lost. The user behavior cache entry of a customer is removed from the cache when it is not modified for 30 minutes. The user behavior cache can also be removed when the cache is full. The default size is 10,000 cache entries. You can configure the user behavior cache to hold more entries by increasing the size of the cache and by enabling disk offload.
Updating the registry
If the marketing information in the database is updated through SQL, massload, or stageprop, then clear all cached information. Updating the registry through the Administration Console clears the MarketingCache and MarketingUserCache, and the command and JSP caches.
Note: Clearing the cached information is not required if you use staging utilities to update marketing information and use the e-Marketing Spot JSP caching technique that is based on activity behavior. Clearing the cached information is required when you are using SQL statements and the mass load utility with any caching technique.
Valuable information! Thank You. Keep Sharing.
ReplyDeleteWebsite Development services in Bangalore | website development company Bangalore | Ecommerce website development Bangalore | ecommerce development Bangalore
Wow this blog is really good. Thanks for this digitalmarketingseo
ReplyDeleteI really liked this blog!! thanks for sharing...
ReplyDeletedigital marketing!!
best blog very informative!! i really liked it.digitalmarketing
ReplyDeletemust checkout this blog!!! very helpful and informative digitalmarketing
ReplyDeleteHi...amazing content..Really helpful...Get Money Tips here..
ReplyDeleteGreat content..
ReplyDeleteA guide to all WCS learners. Informative contents, Thanks
ReplyDelete