9

It is not documented in which Web Application Event ADF should be executed. The recommendation would be to use an event that is executed before the Request Handler is executed and after the session data and cookies are available since they are mandatory for ADF. HttpApplication.PreRequestHandlerExecute is the right event for this. Please note that ADF is ...


9

You cannot access the request object directly, as cartridges are web-application-agnostic (i.e. the .NET request object is very different from the JSP one). Instead, you can access the headers and other parameters from the ClaimStore passed into your methods. The ADF automatically extracts the variables from the request and adds them as claims. For a list ...


8

I'll try to answer some of the questions I saw: Since we can set up additional claims, then this could include any other data an organization has on a given visitor, right? Anyone can add any claim to the ADF and it can have pretty much any value. So yeah, go nuts. The docs mention Footprints map to ADF keys. How are keys related to claims? The "...


7

For .NET Web Application the Tridion Home is dynamically setup by JuggerNET. It will check for the presence of an HttpContext, if it is true, then it will check for the presence of a Bin folder containing Config and Lib folders, if it cannot find them then it will try to find a [TRIDION_HOME] in the Environments Variables. Make sure you have a Bin folder ...


7

I think the servlet-name in your filter mapping might be the problem here: <filter-mapping> <filter-name>Ambient Data Framework</filter-name> <servlet-name>Content Delivery Web service</servlet-name> </filter-mapping> So your ADF Filter doesn't come into play for your Java app, since it seems to be mapped to the ...


7

It seems like I missed this step in the manual: <ExcludedPaths> <Path>/access_token.svc/</Path> </ExcludedPaths> In the ADF config file


6

PreviewContentModule: this is only used for XPM. And the responsibility of this module is to ensure that pages and/or any multimedia being retrieved from file system in the delivery site in context of xpm has the latest content. However the AmbientData.HttpModule is used by a lot of other conponents. This module is responsible for a datastore which is ...


6

The preview cartridge (cd_preview_ambient.jar) manages your sessions -- ensuring that you have a valid token that hasn't expired, creating a new sessions as necessary, etc. The footprint cartridge just adds some standard claims about the session. I think this one is mostly there for backwards-compatibility and to provide some claims out-of-the-box for the ...


6

Yes this is correct, there is an "AND" operator between triggers in a promotion, but an "OR" operator when selecting multiple values within a single trigger. For the use cases you mentioned it is also possible to use filters instead of triggers. This allows to have a single promotion getting potentially all promotional content available, but then filtering ...


6

Context Engine Cartridge documentation can be found here and within that information on how to download the latest device database is here EDIT (Nuno) Also check out Eric Huiza's excellent Community Webinar on this topic.


5

In order to successfully install/upgrade the Devices Database your server ip address needs to be added to the SDL Whitelist. Please contact to Customer Support or your sales contact in order to have this setup


5

A bit of a trivial piece of advice, I'll offer it anyway: use a separate Application Pool for each web site. My guess is that the .NET wrapper, Juggernet, spins up a JVM for each app pool, and this does not play nice when multiple sites try to use the same Java heap space.


5

From your link to the docs, you are using Tridion 2011 SP1. There was a hotfix that addressed this issue and it should be part of the Hotfix Rollup 2 release.


5

The modules are for the Tridion Experience Manager in-context editing tool, also known as the "User interface update for SDL Tridion 2011 SP1". Here are the docs: http://sdllivecontent.sdl.com/LiveContent/web/pub.xql?action=home&pub=UIU4SDLT2011SP1&lang=en-US. The Ambient Data Framework is the module that integrates various products within the ...


5

It looks like you need to brush up on your "read the documentation" skills. This functionality was added with Tridion 2011 SP1. Read all about it in this topic in Live Content "Forwarding Claims to a WebService" (login required). Short answer: yes, you can. How to do it is described in the documentation.


5

I don't have the 2011 .Net API handy, but I never used this third parameter to the Put method. Try the following: AmbientDataContext.CurrentClaimStore.Put(new Uri("taf:claim:myclaim"), "claimvalue"); You can use custom cartridges with Tridion 2011.


5

The Contact data is loaded anew on every request. There's no caching involved. That makes it simple, if not the most optimal in terms of resources.


5

The error is not specific to DXA; it occurs in the Ambient Data Framework. Looking at the Stack Trace, it seems that there is some claim with an unexpected type (HttpResponseStream ?!) which cannot be serialized by the JSON serializer used in the ADF. Did something change recently with regard to your ADF claims? It may be best to contact SDL Support to ...


4

Try the following, it worked for me: In your cartridge configuration xml e.g. date_cartridge.xml <ClaimDefinition Uri="fh:user:date" Scope="SESSION" Description="website visit date within the context." /> ... <ClaimProcessorDefinition Uri="taf:pe:claimprocessor:context:date" ImplementationClass="com.tridion.extensions.ambientdata....


4

The claimstore is physically stored in the web application's session; although most cartridges (re)set claim values at every request it makes sense they do not remove claim values at every request (if no contact ID claim is set the audience manager cartridge simply does nothing; a removal of existing claims would be relatively expensive here). You will ...


4

You can write an ADF Cartridge for this. In this ADF cartridge, you can read/write data to the claimstore, perform any action on these values, so you could store or retrieve them from/to the database. An example can be found here : https://github.com/jhorsman/weather-cartridge and here http://erichuiza.blogspot.be/2012/07/ambient-data-framework-in-nutshell....


4

The ADF stores a couple of the taf:request:parameters entries as a HashMap<String,String[]>>. These are: CONTENT_LENGTH CONTENT_TYPE QUERY_STRING PATH_INFO In addition, the ADF stores the HttpServletRequest parameter map in it's entirety on the claim as well, so given the following example query string: ?foo=1&bar=2 In total, you get the ...


4

It sounds from your question that you want to specify a wildcard in a Globally Accepted Claim and allow processing any forwarded claims that match this wildcard. Unfortunately you cannot specify wildcards and need to specify each Globally Accepted Claim individually. Here is how it works: The ADF extracts the GloballyAcceptedClaims from the config and ...


4

Ok apparently we need claims to be declared both in the <ForwardedClaims> and <GloballyAcceptedClaims> in the staging site's cd_ambient_conf.xml. Here is a working config file: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <Configuration Version="8.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:...


4

I would probably look into passing any relevant claims that are currently in the claimstore as parameters to this external service - which is very similar to what SmartTarget is doing. Basically, grab the values you need - or perhaps the whole claimstore? - and pass it on to the personalization service running outside your web application. Since your ...


3

Good questions, let me answer in 6 parts. 1) Audience manager claims According to the documentation (login required) Audience Manager provides claims for segments and contact details, like taf:claim:audiencemanager:contact:segments taf:claim:audiencemanager:contact:enabled If you are not using audience manager you could have your own code populating ...


3

If the there is an Fredhopper error for fetching the Trigger Types from Fredhopper then ADF is working and you have an issue in the SmartTarget cartrdige which is added to ADF. ADF config In ADF's cd_ambient_conf.xml you have enabled this cartrdige <Cartridge File="smarttarget_cartridge_conf.xml" /> SmartTarget config The SmartTarget cartridge ...


3

The default configuration for the ADF session cookie does not set the Path value to '/'. Add the following to your cd_ambient_conf.xml to resolve it: <Cookies><Cookie Type="Session" Name="TAFSessionId" Path="/" /></Cookies> You can also choose to change the cookie name. I've used the default value in the example above.


3

Here's the snippets from my log file (logback.xml) that I think will help you configure your environment: <appender name="rollingSmartTargetLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${log.folder}/smarttarget.%d{yyyy-MM-...


3

Like Philippe said, in Tridion 2011 you can't use the third parameter like that. AmbientDataContext.CurrentClaimStore.Put(new Uri("taf:claim:jaimesideas:blogurl"), "http://jaimesantosalcon.blogspot.com", Tridion.ContentDelivery.AmbientData.Runtime.ClaimType.Normal); Tridion 2011 SP1 has Claimstore.Put(Uri, Object) Claimstore.Put(Uri, Object, Boolean) ...


Only top voted, non community-wiki answers of a minimum length are eligible