{"sessionId":"7ac3e3c4db9445a888da02f1749f4f19","tntId":"7ac3e3c4db9445a888da02f1749f4f19.34_0","offers":[{"plugins":["<script type=\"text/javascript\">if (typeof(s_tnt)=='undefined'){var s_tnt='';}s_tnt+='1662034:1:0,'</script>"],"responseTokens":{"experience.id":"1","activity.id":"1662034","experience.name":"SDU - Variation 1","activity.name":"SD Utility - Page Tracking"},"actions":[{"action":"customCode","selector":"HEAD","content":"<script>\n\"use strict\";\n\n(function () {\n  /*\n   ** Author: Tan Karasalih\n   ** Date: 05/2025\n   ** Test: SYN-005 | Returning Visitor Personalisation\n   ** Variation: Variation-1\n   */\n  (function () {\n    \"use strict\";\n\n    var debugMode = 1;\n    try {\n      // Tampermonkey has a specific window scope. This will make sure you access the correct website's \"window\" object.\n      var variationNumber = 1;\n      window.sd_pageTracker_var = variationNumber;\n      var isMobile = window.matchMedia(\"only screen and (max-width: 760px)\").matches;\n      if (!document.documentElement.classList.contains(\"SD_SYN_PT_var\")) {\n        document.documentElement.classList.add(\"SD_SYN_PT_var\");\n        document.documentElement.classList.add(\"SD_SYN_PT_var_1\");\n        // Polling for an element (cssSelector)\n        var waitForElements = function waitForElements(cssSelector, multi, callback, maxCalls) {\n          try {\n            var elementsCached; // [Configurable] Times out after 6 seconds\n            var interval = setInterval(function () {\n              try {\n                if (multi) {\n                  elementsCached = document.querySelectorAll(cssSelector);\n                  // Checks if element 'cssSelector' exists\n                  if (elementsCached.length) {\n                    clearInterval(interval);\n                    callback(elementsCached);\n                  }\n                } else {\n                  elementsCached = document.querySelector(cssSelector);\n                  // Checks if element 'cssSelector' exists\n                  if (elementsCached) {\n                    clearInterval(interval);\n                    callback(elementsCached);\n                  }\n                }\n                // After trying to find the element for 6 seconds, it stops\n                if (typeof maxCalls === \"number\" && --maxCalls < 0) clearInterval(interval);\n              } catch (e) {\n                if (debugMode) console.log(\">>> \", e.message);\n              }\n            }, 20);\n          } catch (e) {\n            if (debugMode) console.log(\">>> \", e.message);\n          }\n        };\n        // wait for body section to be available\n        waitForElements(\"body\", false, function () {\n          try {\n            // solution type\n            var solutionType = document.querySelector(\"meta[name='searchSolutionType']\").content;\n            if (solutionType == \"AI & Machine Learning\" || solutionType == \"Multi-Die\" || solutionType == \"Automotive\") {\n              // create object to save to localStorage\n              window.sd_visitorData = {\n                title: document.querySelector(\"h1\").innerText,\n                url: window.location.href,\n                solutionType: solutionType\n              };\n              // push to localStorage\n              localStorage.setItem(\"sd_pageTracker\", JSON.stringify([window.sd_visitorData]));\n              // set flag to session storage so it doesn't run while user is still in same session\n              sessionStorage.setItem(\"sd_pageTracker\", \"true\");\n            }\n          } catch (e) {\n            if (debugMode) console.log(\">>> \", e.message);\n          }\n        });\n      }\n    } catch (e) {\n      if (debugMode) console.log(\">>> \", e.message);\n    }\n  })();\n})();\n</script>","cssSelector":"$cssSelector"}]}]}