Expand my Community achievements bar.

Join us on September 25th for a must-attend webinar featuring Adobe Experience Maker winner Anish Raul. Discover how leading enterprises are adopting AI into their workflows securely, responsibly, and at scale.

Mark Solution

This conversation has been locked due to inactivity. Please create a new post.

SOLVED

Wrapping DTM Code in a Try/Catch

Avatar

Level 2

Our developers have indicated in several tests that conflicts have occasionally caused issues with the loading of the DTM header library, so that when the footer runs, it generated a JavaScript error due to the _satellite.pageBottom() function not being found.

Are there any circumstances where wrapping the pageBottom function in a try/catch might cause issues?

1 Accepted Solution

Avatar

Correct answer by
Level 10

Hi ,

We have not observed any circumstances where wrapping the pageBottom function in a try/catch block caused any issue. We have also tested the same on our test environment and the results were positive.Please find below try/catch block script being used.

To verify that our dynamic tag management header library is loading properly on our site, we used the command  _satellite.settings.notifications = true;  in  try block  and If the code was not properly installed, we will get the reference error: _satellite is not defined  and the same will caught by catch block  and  flag is set to 1 . 

Ultimately the  finally block runs and if flag is not 1 i.e. Header library is properly loaded, call the _satellite.pageBottom(); function.

<script> try{ _satellite.settings.notifications = true; } catch(err) { flag=1; console.log(err); } finally { if(flag!=1) { _satellite.pageBottom(); } else { alert("DTM Header Library not properly Loaded"); } } </script> </body> </html>

Please make sure to initialize the flag to 0 at the start of the head tag , like below :

<head> <script> var flag=0; </script> <script src="//assets.adobedtm.com/satelli4b6f12d-staging.js"></script>

 

Please let us know if you have any questions or queries.

Thanks & Regards

Parit Mittal

View solution in original post

1 Reply

Avatar

Correct answer by
Level 10

Hi ,

We have not observed any circumstances where wrapping the pageBottom function in a try/catch block caused any issue. We have also tested the same on our test environment and the results were positive.Please find below try/catch block script being used.

To verify that our dynamic tag management header library is loading properly on our site, we used the command  _satellite.settings.notifications = true;  in  try block  and If the code was not properly installed, we will get the reference error: _satellite is not defined  and the same will caught by catch block  and  flag is set to 1 . 

Ultimately the  finally block runs and if flag is not 1 i.e. Header library is properly loaded, call the _satellite.pageBottom(); function.

<script> try{ _satellite.settings.notifications = true; } catch(err) { flag=1; console.log(err); } finally { if(flag!=1) { _satellite.pageBottom(); } else { alert("DTM Header Library not properly Loaded"); } } </script> </body> </html>

Please make sure to initialize the flag to 0 at the start of the head tag , like below :

<head> <script> var flag=0; </script> <script src="//assets.adobedtm.com/satelli4b6f12d-staging.js"></script>

 

Please let us know if you have any questions or queries.

Thanks & Regards

Parit Mittal