Popular Posts

Marketing Subsystem

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
Tables Associated

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 static e-Marketing Spot, at any time, schedules only those activities that display the same results to all customers. The activities do not contain targets, branches, or experiments. The activities can have specific start and end dates.

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
There are three aspects to gaining improvements in management center marketing:
  • 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.
  •     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"/>


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>
     
 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.

Marketing cache (DM_Cache)

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
The marketing commands to activate or deactivate activities, and to manage e-Marketing Spots, maintain the appropriate data in the business object cache.

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.

8 comments: