Prevent rule from being triggered if parameter exists | Community
Skip to main content
floriane3493069
Level 2
July 10, 2018
Solved

Prevent rule from being triggered if parameter exists

  • July 10, 2018
  • 6 replies
  • 4573 views

Hi there,

I just set up a page load rule. The only condition for this rule is that it is not triggered if a certain parameter exists. Unfortunately AEM only offers me the possibility to trigger the rule if a parameter is pressent. Can you tell me if it is also possible to prevent a rule from being triggered if a parameter exists?

Thank you

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Stewart_Schilling

If you can test for the parameter using javascript then you can accomplish this using a custom condition on the rule.

If a custom condition does not return true, then the condition is not met and the rule will not fire.

As an example, you could use this javascript in a DTM custom condition:

var paramExists = true; //replace this with code to determine existence of the param

if (paramExists) {

  return false;

} else {

  return true;

}

6 replies

Stewart_Schilling
Community Advisor
Stewart_SchillingCommunity AdvisorAccepted solution
Community Advisor
July 10, 2018

If you can test for the parameter using javascript then you can accomplish this using a custom condition on the rule.

If a custom condition does not return true, then the condition is not met and the rule will not fire.

As an example, you could use this javascript in a DTM custom condition:

var paramExists = true; //replace this with code to determine existence of the param

if (paramExists) {

  return false;

} else {

  return true;

}

floriane3493069
Level 2
July 10, 2018

Great, thanks stewarts16448458

Unfortunately I am afraid I am not exactly sure what i have to insert for "//replace this with code to determine existence of the param". Could you give me an example. Let's say my url is xyz.com?parameter1=a&parameter2=b and I want do not want the rule to be triggered if parameter2 exists.

Thank you very much.

Florian

Stewart_Schilling
Community Advisor
Community Advisor
July 10, 2018

I think I'd do it this way -

Create a DTM data element for parameter2 call it qsParam2.

Then the code becomes :

if (_satellite.getVar('qsParam2') != "") {

return false;

} else {

return true;

}

jantzen_b
Adobe Employee
Adobe Employee
July 11, 2018

Stewart,

Wouldn't it be opposite? Florian is wanting to not trigger the rule if parameter2 exists. I believe your code reads

If parameter2 does not equal null (IE if parameters contains a value), return false and thus do not fire the rule

Wouldn't you want to remove the ! from your code so that it read

if parameter 2 equals null, return false and thus do not fire the rule

Thanks,
Jantzen

Stewart_Schilling
Community Advisor
Community Advisor
July 11, 2018

Jantzen,

  I think we're saying the same thing.

Florian,

  Let us know if you are all set.  I guess, If I got it wrong, swap the return statements in the custom condition.

-Stew

floriane3493069
Level 2
July 23, 2018

Hi Stewart, hi Jantzen,

thank you for your feedback and your discussion. Sorry for my late response, it took me a while to put everything in place. Actually the solution Stewart suggested worked perfectly well. I used the above mentioned code to prevent the rule from being fired if a certain parameter existed.

Thanks again guys. This helped a lot.