- TLC Home Home
- Discussions & Ideas Discussions & Ideas
- Product Guides Product Guides
- Knowledge Base Knowledge Base
- Developer Docs Developer Docs
- Education Education
- Blog TLC Blog
- Support Desk Support Desk
03-15-2016 07:17 AM - edited 03-15-2016 07:20 AM
We have the case that when some (friendly) robots visit our website, we do not want tracking to be executed. We can identify those robots by a URL parameter or a specific cookie value.
Now I ideally would like a pre-loader tag to once check if this is a robot and then deactivate Tealium for the whole page, e.g. also deactivate Tealium for utag.link calls.
I know I can create a JS Extension scoped to one or more individual tags (e.g. SiteCatalyst, AdWords) to return false and then these tags are not executed.
That seems to be a bit inefficient for our use case, because each tag will be loaded and started first and then interrupted. Moreover, for each new tag I add I need to make sure it is added to the Extension as well.
Using an Extension scoped to All Tags that returns false does not work.
So I simply want Tealium to stop operations entirely under some circumstances. How do I do that?
Solved! Go to Solution.
There are lots of details being left out of your request and I would suggest you reach out to your Tealium Account Manager or open a support request: https://community.tealiumiq.com/t5/custom/page/page-id/support-contact-form
Some things to think about:
1) A solution like you suggest will still make a http request to Tealium's Content Delivery Network and count as a session from an accounting point of view.
2) Tealium has load rules which can prevent a tag from loading (which will prevent it from firing) however this is on a tag by tag basis. You could create a load rule to "Block Tag" and then apply it to each of your Tags in Tealium.
3) If the bot is not going to take any actions that fire a Tealium utag.view or utag.link then you can apply the noview flag in a Tealium Extension scoped to Pre Loader. Only downside is Pre Loaders have to be 100% JavaScript and cannot use any Tealium functionality as they execute before any other Tealium Code.
Without having more detail, my guess is option 3 will be the easiest to setup (however this is only a guess). Here is some sample code.
Let's assume the robot goes to the page:
http://www.example.com?robot=abc123
if(location.search.indexOf('robot=abc123') > -1){ window.utag_cfg_ovrd = window.utag_cfg_ovrd || {}; window.utag_cfg_ovrd.noview = true; }
I learned today from @adrian_browning that there is a rarely used feature called noload. Works almost the same as noview, except stops all the loading of utag and therefore all utag.view and utag.link calls will also not load.
So the code would look like:
if(location.search.indexOf('robot=abc123') > -1){ window.utag_cfg_ovrd = window.utag_cfg_ovrd || {}; window.utag_cfg_ovrd.noload = true; }
Hi Brian, thanks for your answer.
Does not surprise me that @adrian_browning knew this. He already won several nobel peace prizes for acquiescing desperate clients or partners... :)
Will try that and post here if it worked.
Lukas
Officially confirmed that it works. :)
@loldenburg Glad to hear it worked!
Hi @loldenburg, @brian_kranson and @adrian_browning,
thanks for this post - I just have a similar situation when debugging side effects in MSIE. I would like to be able to disable all Tealium loading (except the basic request).
The
window.utag_cfg_cfg_ovrd.noload = true;
works perfect on "standard" pages. However, it does not block utag.view() and utag.link() calls in an AngularJS environment though the basic utag.js loading is blocked as described.
Any idea why?
I added an extension as described above which checks for a specific URL parameter and/or cookie. You can test the behaviour here (page is in German - sorry - but source code should be readable ;) )
>> works as described
>> still loads upon a utag.view() call
The extensions - scope to pre loader - looks like this:
if(window.location.search.toString().toLowerCase().indexOf('tealium=noload') > -1 || document.cookie.toString().indexOf("tealium_noload=1") > -1) { console.log("Tealium iQ: starting in noload mode"); if(document.cookie.toString().indexOf("tealium_noload=1") < 0) { document.cookie = "tealium_noload=1"; console.log("Tealium iQ: saving noload mode to cookie"); } window.utag_cfg_ovrd = window.utag_cfg_ovrd || {}; window.utag_cfg_ovrd.noload = true; } else console.log("Tealium iQ: starting in standard mode");
Thanks for your help!
Andreas
Hi Andreas,
So looks like there is an other extension setting the utag_cfg_ovrd object, but isn't first checking to make sure it isn't already defined.
If you update that extension, to be how you have defined utag_cfg_ovrd, your extension will work as expected.
Adrian
Copyright All Rights Reserved © 2008-2021