I never did hear back. I can't say for sure it was a bug, but Adobe did make an update that a month ago that cleared it up. I think you posted an update in the forum about it. Adobe Target September 14th Release Notes
I looked into this a little more and I think that you have set everything up correctly and that this is a bug. I think it should be evaluating the audience on every page load, but for some reason once the user is put in the audience they get stuck there, even if the parameter isn't present. I submitted a ticket to support to see if it actually is a bug and am waiting to hear back. In the mean time, the solution is to not use an audience and just use the refinements on step 1 like I described in my previous comment. I will keep you posted if I hear back on the bug.
My bad here. I overlooked that you said audience originally. I think it may be that you are using an audience to check if the query parameter exists. Once the parameter exists, the user is put into an audience. I would think that the "current site page" would check every time to validate, but it seems like its not and that once they are in the audience, then they are stuck there. Which is why it seems like it is caching the experience and the one experience overrides the other. A person can be a part of more than one audience, but it is basically prioritizing them because of the priority of the XTs.
Rather than using an audience, you could try and set up the filtering directly in the XT activity. On step 1, just below where you select the mbox location, you can add refinements. I am sure that you have done this before. I would add your query parameters here. This is evaluated every page load and I think it will solve your problem.
I double checked the campaign set up, and can confirm neither audience or offer are duplicates, these are all unique and should therefore work. I noticed that if an experience is set to a higher priority it will then show the correct experience, even after seeing one with lesser priority. But if I change the link to meet parameter to the experience with the least priority following this, I am still seeing the experience with highest priority, although the audience no longer match this campaing.
With the above campaign settings, if checking XT 1 first, I will see the offer of $10. If I then check XT 2, I will see the $20 offer as this is set to a higher priority. If I after this check XT 1 again, I will then still see XT 2, although the experience no longer match the audience parameter for this offer.
Target shouldn't be caching things like that. It should evaluate every time and make sure that the targeting is correct. This is the first thing I would try to debug it. Open a new Incognito window. This should clear all cache and cookies. Then go straight to XT 2. Does XT 2 come up like you expect or are you still seeing 1? I would also double check 2 things.
First check to make sure your targeting is correct on XT 2. Make sure it isn't an accidental duplicate of 1. Also make sure that your targeting for XT 2 is exclusive to 2. For example if you were targeting the url parameters campaign1 and campaign12 and XT1 targeting said "contains campaign1", it would be true for both 1 and 2. If your targeting for XT2 said "contains campaign12", it would be true also, but target could prioritize XT1 first and would therefore show 1.
Second, check to make sure you didn't accidentally copy creative 1 into XT 2. Are you visually verifying which XT you are in? If you pass that info in a Datalayer, you could check the Datalayer and make sure that you're not in XT2 even though it looks like XT1.
We are currently using this, but having some issues with the experience getting cached and not reevaluatied per audience requirements.
We run several XT campaigns on the same page, with different offers and audiences (url query parameter contains xxx). When I check the link with query responding to campaign 1, I am presented with the corresponding offer. However, if I following this check the link with query responding to campaign 2, I am still presented with the offer corresponding to campaign 1, not 2. Any idea why this would be?
Yes, it will reevaluate the requirements each time the pages loads. Basically, it needs to check each time the page loads to make sure that the user still meets the requirements for the experience. Can you give a use case or example on how you are planning on using it?
With that said, there are ways to make an XT persistent from page to page even if the initial thing that you were keying off of isn't available on subsequent pages. For example, if you only wanted to show an experience to users from a certain campaign, that you targeted from a url parameter on the landing page, you could use a profile script or landing page parameter to show that experience on subsequent pages.