{"id":2755,"date":"2023-05-17T19:36:16","date_gmt":"2023-05-17T19:36:16","guid":{"rendered":"https:\/\/obo.zoj.mybluehost.me\/uncategorized\/logic-introduction-to-advanced-page-rules\/"},"modified":"2025-10-24T14:20:22","modified_gmt":"2025-10-24T14:20:22","slug":"logic-introduction-to-advanced-page-rules","status":"publish","type":"post","link":"https:\/\/ioninteractive.com\/ionacademy\/logic-introduction-to-advanced-page-rules\/","title":{"rendered":"Logic: Introduction to advanced page rules"},"content":{"rendered":"\n<ul class=\"wp-block-list\">\n<li class=\"\"><a href=\"#Introduction\" rel=\"noopener\">Introduction<\/a><\/li>\n\n\n\n<li class=\"\"><a href=\"#Conditions\" rel=\"noopener\">Conditions<\/a><\/li>\n\n\n\n<li class=\"\"><a href=\"#Actions\" rel=\"noopener\">Actions<\/a><\/li>\n\n\n\n<li class=\"\"><a href=\"#DuplicateRules\" rel=\"noopener\">Duplicate Rules<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"\">&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Introduction<\/strong><\/h4>\n\n\n\n<p class=\"\">Advanced Rules can be used to create hyper-targeted experiences. Based on a Condition, or combination of Conditions, Ion can perform a specific Action or set of Actions. Any number and combination of 36 Conditions and 36 Actions can be configured for Rules:<\/p>\n\n\n\n<p class=\"\">&nbsp;<\/p>\n\n\n\n<p class=\"\"><strong>Page Rules<\/strong> are triggered as the page containing them loads, so they are usually used to calculate the respondent&#8217;s score after taking a Quiz or Assessment (in this case, the Page <span style=\"font-size: 1rem;\">Rules are normally placed in the results page of the experience). <\/span><strong>Submit Button Rules&nbsp;<\/strong><span style=\"font-size: 1rem;\">are triggered as the respondent submits a filled Form by clicking the button, and these Rules are usually used to run an Integration with a CRM or to send an email notification (note that the Submit Button might require setting Behaviors and Actions, besides Rules). <strong>Very often the Rules demand &#8220;No Conditions Required&#8221;<\/strong>.<\/span><\/p>\n\n\n\n<p class=\"\">&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Conditions<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"\"><strong>No conditions required<\/strong> \u2013 trigger an advanced rule for all respondents who view this page or take a given action.<\/li>\n\n\n\n<li class=\"\"><strong>Browser language<\/strong> \u2013 checks language a given respondent\u2019s browser uses to view the page.<\/li>\n\n\n\n<li class=\"\"><strong>Browser region<\/strong> \u2013 checks the region a respondent\u2019s browser is in.<\/li>\n\n\n\n<li class=\"\"><strong>Converted on this creative<\/strong> \u2013 checks respondent\u2019s ion cookie to see if they have converted within this creative experience at any point in time.<\/li>\n\n\n\n<li class=\"\"><strong>Converted previously in this campaign<\/strong> \u2013 checks respondent\u2019s cookie to see if they have converted on any creative within the campaign they are viewing.<\/li>\n\n\n\n<li class=\"\"><strong>Converted previously in any campaign<\/strong> \u2013 checks respondent\u2019s cookie to see if they have previously converted in any creative within your console.<\/li>\n\n\n\n<li class=\"\"><strong>Day of week<\/strong> \u2013 set up a rule that is based on the day of the week respondent\u2019s view your page.<\/li>\n\n\n\n<li class=\"\"><strong>Domain name<\/strong> \u2013 create a rule based on the domain of the traffic source URL used to view the creative.<\/li>\n\n\n\n<li class=\"\"><strong>First time at this point<\/strong> \u2013 used to set up a rule based on the condition that respondents have not viewed this page before.<\/li>\n\n\n\n<li class=\"\"><strong>Form successfully submitted<\/strong> &#8211; checks to ensure a freestyle form has been submitted before a given action can be taken.<\/li>\n\n\n\n<li class=\"\"><strong>Form not successfully submitted<\/strong> &#8211; checks to see if a freestyle form was not submitted before a given action can be taken.<\/li>\n\n\n\n<li class=\"\"><strong>Geolocated country (99% accuracy)<\/strong> \u2013 checks respondent\u2019s IP address to see if they are coming from a specific country that you define.<\/li>\n\n\n\n<li class=\"\"><strong>Geolocated region (75% accuracy)<\/strong> \u2013 checks respondent\u2019s IP address to see if they are coming from a specific region that you define.<\/li>\n\n\n\n<li class=\"\"><strong>Geolocated city (70% accuracy)<\/strong> \u2013 checks respondent\u2019s IP address to see if they are coming from a specific city that you define.<\/li>\n\n\n\n<li class=\"\"><strong>Geolocated postal code (60% accuracy)<\/strong> \u2013 checks respondent\u2019s IP address to see if they are coming from a specific postal code that you define.<\/li>\n\n\n\n<li class=\"\"><strong>Geolocated domain (75% accuracy)<\/strong> \u2013 checks the respondent\u2019s IP address to see the domain of the Internet Service Provider they are using to view your page.<\/li>\n\n\n\n<li class=\"\"><strong>Grade<\/strong> \u2013 create a rule based on a grade that you have assigned to certain respondents previously.<\/li>\n\n\n\n<li class=\"\"><strong>Lookup table data<\/strong> &#8211; checks a lookup table (aka data source) to see if a value is present for a certain lookup key.<\/li>\n\n\n\n<li class=\"\"><strong>Lookup table numeric data<\/strong> &#8211; checks a lookup table to see if a numeric value is present for a certain lookup key.<\/li>\n\n\n\n<li class=\"\"><strong>Number of actions in creative<\/strong> \u2013 create an advanced rule for respondents who have taken a certain number of actions (i.e. clicking a link, submitting a form, etc.) that you define.<\/li>\n\n\n\n<li class=\"\"><strong>Number of source clicks<\/strong> &#8211; condition that uses the number of clicks throughout the traffic source in order to trigger an action.<\/li>\n\n\n\n<li class=\"\"><strong>Number of user responses<\/strong> \u2013 set up an advanced rule based on a specific number of visits to any traffic source in your console as defined within the available text box.<\/li>\n\n\n\n<li class=\"\"><strong>Number of visits<\/strong> \u2013 create a rule based on the number of a times a given respondent has visited your creative.\n<ul class=\"wp-block-list\">\n<li class=\"\"><span style=\"text-decoration: underline;\">Please note:<\/span> Since this is cookie-based information, the same user may be counted more than once if they clear their cookies or use different browsers or devices to re-enter the page. To limit the experience after a certain number of visits, the use of <a href=\"https:\/\/ioninteractive.com\/ionacademy\/how-to-work-with-lookup-tables\/\">Lookup Tables<\/a> may be more effective.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li class=\"\"><strong>Query String Variable<\/strong> \u2013 define a query string variable and value that will trigger an action.<\/li>\n\n\n\n<li class=\"\"><strong>Referrer URL<\/strong> \u2013 define a URL from which a respondent is sent to your landing page to trigger an action.<\/li>\n\n\n\n<li class=\"\"><strong>Respondent Cookie<\/strong> &#8211; Reads data from a cookie that is passed into the page.<\/li>\n\n\n\n<li class=\"\"><strong>Respondent data<\/strong> \u2013 checks that a specific data field has a certain value saved to it to trigger an action.<\/li>\n\n\n\n<li class=\"\"><strong>Respondent numeric data<\/strong> \u2013 checks that a specific data field has a numeric value saved to it to trigger an action.<\/li>\n\n\n\n<li class=\"\"><strong>Respondent tag(s)<\/strong> \u2013 checks for a specific tag (or several specific tags) to trigger an advanced action.<\/li>\n\n\n\n<li class=\"\"><strong>Respondent first primary tag<\/strong> \u2013 checks that a given respondent picked up a certain tag first within this landing experience.<\/li>\n\n\n\n<li class=\"\"><strong>Respondent second primary tag<\/strong> \u2013 checks that a given respondent picked up a certain tag second within this landing experience.<\/li>\n\n\n\n<li class=\"\"><strong>Respondent integration successfully run<\/strong> \u2013 set up an advanced rule that makes sure a given respondent\u2019s data successfully exported first.<\/li>\n\n\n\n<li class=\"\"><strong>Respondent integration not successfully run<\/strong>\u00a0\u2013 set up an advanced rule for respondent\u2019s who did not have their data successfully export.<\/li>\n\n\n\n<li class=\"\"><strong>Server scriptlet result<\/strong> \u2013 set up an advanced rule to run a server scriptlet and check for a specific value to be returned.<\/li>\n\n\n\n<li class=\"\"><strong>Time of day<\/strong> \u2013 set up an advanced rule based on the time of day a given respondent views this page or takes this action.<\/li>\n\n\n\n<li class=\"\"><strong>Traffic source<\/strong> \u2013 set up an advanced rule based on which traffic source a given respondent used to view your landing experience.<\/li>\n\n\n\n<li class=\"\"><strong>User agent string<\/strong> \u2013 checks the respondent\u2019s user agent string for a specific value (or values) to trigger an advanced action.<\/li>\n<\/ul>\n\n\n\n<p class=\"\">&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Actions<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"\"><strong>Assign tag<\/strong> \u2013 assign respondents who meet a certain condition a tag either from your tag library or a new one that you create within the available text box.<\/li>\n\n\n\n<li class=\"\"><strong>Delete respondent data<\/strong> \u2013 delete data that was collected to a specific data field that you define within the available text box.<\/li>\n\n\n\n<li class=\"\"><strong>Delete all sensitive data now<\/strong> \u2013 delete any data from the console that was collected into a data field that was set as a \u201csensitive\u201d data field.<\/li>\n\n\n\n<li class=\"\"><strong>Get DemandBase profile<\/strong> \u2013 if a DemandBase integration is set up within the external services page in your console, you can import a given respondent\u2019s DemandBase profile data to segment your audience by using this action.<\/li>\n\n\n\n<li class=\"\"><strong>Go to next page<\/strong> \u2013 takes respondents to another page within the landing experience.<\/li>\n\n\n\n<li class=\"\"><strong>Go to external URL<\/strong> \u2013 takes respondents to a URL that you define within the available text box.<\/li>\n\n\n\n<li class=\"\"><strong>Go to traffic source<\/strong> \u2013 take respondents to another traffic source within the campaign the creative they are viewing was built in.<\/li>\n\n\n\n<li class=\"\"><strong>Go to download file<\/strong> \u2013 triggers a download of a file from your fulfillment library.<\/li>\n\n\n\n<li class=\"\"><strong>Grade as<\/strong> \u2013 assigns a specific grade or allows you to increase\/decrease that respondent\u2019s grade.<\/li>\n\n\n\n<li class=\"\"><strong>Populate respondent with user data<\/strong> &#8211; pull data saved\u00a0by the visitor in previous visits to the current respondent record.<\/li>\n\n\n\n<li class=\"\"><strong>Mark as converted<\/strong> \u2013 any respondent who take a specific action or views a certain page is marked as converted.<\/li>\n\n\n\n<li class=\"\"><strong>Mark to re-run all integrations<\/strong>\u00a0\u2013 allows data collected by that respondent to be exported more than once through all integrations set up in a given experience.\u00a0<\/li>\n\n\n\n<li class=\"\"><strong>Mark to re-run integration<\/strong> &#8211; allows data collected by that respondent to be exported more than once through a specific integration that is selected as part of this action.\u00a0<\/li>\n\n\n\n<li class=\"\"><strong>Notify via email<\/strong> \u2013 sends the email address added to the available text box an email alert (with all collected data) that a respondent has taken a certain action.<\/li>\n\n\n\n<li class=\"\"><strong>Read from lookup table<\/strong> &#8211; Checks a specific lookup table key to\u00a0save its corresponding value into a certain data field.<\/li>\n\n\n\n<li class=\"\"><strong>Run integration<\/strong>\u00a0\u2013 export respondent data immediately to a specific export.<\/li>\n\n\n\n<li class=\"\"><strong>Run integration in background<\/strong>\u00a0\u2013 export data immediately to a specific export and take respondents to the next page without waiting for a response from the external web service you are exporting to.<\/li>\n\n\n\n<li class=\"\"><strong>Run server scriptlet<\/strong> \u2013 runs a server scriptlet that has been created when respondents view a certain page or take a certain action.<\/li>\n\n\n\n<li class=\"\"><strong>Run server scriptlet in background<\/strong> \u2013 runs a server scriptlet that has been created\u00a0in the background immediately so the page can load without waiting for the scriptlet to execute.<\/li>\n\n\n\n<li class=\"\"><strong>Save data<\/strong>\u00a0\u2013 save a certain value to a specific data field.<\/li>\n\n\n\n<li class=\"\"><strong><strong>Save calculated data<\/strong>\u00a0\u2013 <\/strong>Save a numeric value to a specific data field.\u00a0This numeric value can be set with a formula defined within this action.<\/li>\n\n\n\n<li class=\"\"><strong>Save formatted numeric data<\/strong>\u00a0&#8211; Control the format of a numeric value that was saved to a given data field.\u00a0<\/li>\n\n\n\n<li class=\"\"><strong>Save\u00a0data from query string<\/strong>\u00a0\u2013 saves a specific value to a certain query string variable.<\/li>\n\n\n\n<li class=\"\"><strong>Save data from server scriptlet<\/strong> \u2013 saves a value that was generated by a server scriptlet that has run in a previous rule.<\/li>\n\n\n\n<li class=\"\"><strong>Save data without substitution<\/strong> &#8211; saves data with two @ signs without causing substitution.<\/li>\n\n\n\n<li class=\"\"><strong>Save data into lookup table<\/strong> &#8211; Saves respondent data into a specific lookup table.\u00a0<\/li>\n\n\n\n<li class=\"\"><strong>Save calculated data\u00a0into lookup table<\/strong> &#8211; Saves numeric value into a specific lookup table. This numeric value can be set with a formula defined within this action.<\/li>\n\n\n\n<li class=\"\"><strong>Save data from JSON property<\/strong> &#8211; Treats the value of a given data field as JSON and extracts a certain value from that JSON property and saves it to another ion data field.<\/li>\n\n\n\n<li class=\"\"><strong>Save data into JSON property<\/strong> &#8211; Saves a fixed value or one taken dynamically from a data field into a JSON property.<\/li>\n\n\n\n<li class=\"\"><strong>Stop processing rules<\/strong> \u2013 used in situations where you do not want to run advanced rules that were created below this one.<\/li>\n\n\n\n<li class=\"\"><strong>Send email to respondent<\/strong> \u2013 used to send an email template to respondents have they have filled out a form.<\/li>\n\n\n\n<li class=\"\"><strong>Substitute content element<\/strong> \u2013 substitute text or images on your page based on certain conditions being met.<\/li>\n\n\n\n<li class=\"\"><strong>Substitute content from user<\/strong> \u2013 substitutes text with content passed in by the user either on the query string or saved from a form submission.<\/li>\n\n\n\n<li class=\"\"><strong>Substitute form<\/strong> \u2013 changes the form that is presented to a given respondent.<\/li>\n\n\n\n<li class=\"\"><strong>Substitute master page<\/strong> \u2013 changes the layout of the page a given respondent is viewing.<\/li>\n\n\n\n<li class=\"\"><strong>Substitute theme (this page)<\/strong> \u2013 changes the theme of the specific page a given respondent is viewing.<\/li>\n\n\n\n<li class=\"\"><strong>Substitute theme (persist)<\/strong> \u2013 changes the theme of this page and every page that follows within the landing experience.<\/li>\n<\/ul>\n\n\n\n<p class=\"\">You can add an advanced rule at the page level by clicking on the &#8220;rules&#8221; button found in the Page tab of your creative studio. You can also add advanced rules to clickable elements on your page. Once the destination of the click is set, the green &#8220;+Advanced Rules&#8221; button within the Content tab of your creative studio.<\/p>\n\n\n\n<p class=\"\">&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Duplicate Rules<\/strong><\/h4>\n\n\n\n<p class=\"\">This new update allows you to duplicate Rules as you create them, making this process a lot easier and quicker! By clicking the &#8220;+Duplicate&#8221; button underneath each Rule, you\u2019ll only need to edit the variables of the new one, it\u2019s no longer necessary to start a new Rule from scratch if there already exists a similar one in that same Creative.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"452\" loading=\"lazy\" src=\"https:\/\/ioninteractive.com\/ionacademy\/wp-content\/uploads\/2023\/05\/image-17-1024x452.png\" alt=\"\" class=\"wp-image-8017\" srcset=\"https:\/\/ioninteractive.com\/ionacademy\/wp-content\/uploads\/2023\/05\/image-17-1024x452.png 1024w, https:\/\/ioninteractive.com\/ionacademy\/wp-content\/uploads\/2023\/05\/image-17-300x132.png 300w, https:\/\/ioninteractive.com\/ionacademy\/wp-content\/uploads\/2023\/05\/image-17-768x339.png 768w, https:\/\/ioninteractive.com\/ionacademy\/wp-content\/uploads\/2023\/05\/image-17.png 1359w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"\"><\/p>\n\n\n\n<p class=\"\">\u00a0If you have any questions, please reach out to us by emailing <em>help@ioninteractive.com<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Introduction Advanced Rules can be used to create hyper-targeted experiences. Based on a Condition, or combination of Conditions, Ion can perform a specific Action or set of Actions. Any number and combination of [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":5655,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","footnotes":""},"categories":[1114,1112],"tags":[2173,2242,2194],"class_list":["post-2755","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-rules-overview","category-the-logic-setup","tag-advanced","tag-logic","tag-rules"],"_links":{"self":[{"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/posts\/2755","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/comments?post=2755"}],"version-history":[{"count":3,"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/posts\/2755\/revisions"}],"predecessor-version":[{"id":8019,"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/posts\/2755\/revisions\/8019"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/media\/5655"}],"wp:attachment":[{"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/media?parent=2755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/categories?post=2755"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/tags?post=2755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}