Dynamically calling _satellite.pageBottom()

Avatar

Avatar

sunilrongali

Avatar

sunilrongali

sunilrongali

23-07-2018

Hi team,

My requirement is, in the head tag, will be loading adobe tracking js file..

I don't wanna include assignment of digitalData object and calling of _satellite.pageBottom() in body tag...

After the load of DOM, in another Js file, i will be doing assignment of digitalData and calling of _satellite.pageBottom()

If i do it in this way, 2 times call is going to metrics...

1st time from DomReady in adobe tracking js file..(by the time domready gets called, as there is no script of calling pageBottom in document)...its firing pageBottom....

2nd time when i call in external js file...

Can we eliminate DomReady call, So, that the call which i do in my js file will alone be calling pageBottom....

The reason, why i do it in separate js file is, document title will be loading will be loaded dynamically in our application(not in the initial page load)...

We change document load after DOM loading...So, we wanna assign digital Obj once document title gets updated...

Can someone help me in this...

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar

jantzen_belliston-Adobe

Community Manager

Total Posts

(val/1000)?string[".0"]}K

Likes

308

Correct Answer

570

Avatar

jantzen_belliston-Adobe

Community Manager

Total Posts

(val/1000)?string[".0"]}K

Likes

308

Correct Answer

570
jantzen_belliston-Adobe
Community Manager

24-07-2018

No, deploying DTM in the way you have indicated is unsupported as it can lead to unexpected results. The duplicate calls is just one of those results. The DOM Ready calls _satellite.pageBottom() if the page bottom hasn't already been fired.

I'm not aware of a way to change that without heavily modifying the DTM library. If you need a more custom approach to what DTM offers, I'd suggest looking into Launch. Launch was redesigned to accommodate more advanced implementations and even allows you to deploy it asynchronously. You can learn more about Launch on the Launch, by Adobe community.

Answers (1)

Answers (1)

Avatar

Avatar

mehdio81538436

Avatar

mehdio81538436

mehdio81538436

31-07-2018

Hi @sunilrongali

You don't need to modify "heavily" the DTM library but just deactivate the automatic pageBottom putting the following  line in your page:

_satellite.pageBottomFired = true;

DTM will consider that the pageBottom is already executed and will not launch fire the safeguard automatic call. So, you will able to fire it programmatically (as example, in a callback, when your digital data layer is ready for it).

Regards,