PageSourceSearch

https://www.rollingstone.de/wp-content/plugins/tealium-tracker/js/tealium-tracker.js?ver=1.5

js rollingstone.de collected 2026-09-24 17:39:26 UTC 9,974 bytes, 264 lines download raw bytes

1// let articleHeftteaserObj = {
2//     "tealium_event": "teaser_article",
3//     "event_action": "click",
4//     "target_url": "url",
5//     "teaser_title": "title"
6// }
7
8// To do's
9// Test with Danilo's browser plugin
10// tealium_event instead of event_name
11
12document.addEventListener("DOMContentLoaded", function () {
13  let checkUtagObject = setInterval(function () {
14    if (typeof utag !== "undefined") {
15      clearInterval(checkUtagObject);
16      const options = {
17        root: null,
18        rootMargin: "0px",
19        threshold: 1.0,
20      };
21      let page_name;
22      if (myData.is_home) {
23        page_name = "home";
24      } else {
25        page_name = myData.current;
26      }
27
28      const searchBarBtn = document.getElementById("suchenBtn2");
29      searchBarBtn.addEventListener("click", function (event) {
30        let search = {
31          tealium_event: "search",
32          event_action: "click",
33          event_content: document.getElementById("searchBar").value,
34        };
35        console.log(search);
36        window.utag.link(search);
37      });
38      const newsletterBtns = document.getElementsByClassName("newsletter-btn");
39      for (let i = 0; i < newsletterBtns.length; i++) {
40        newsletterBtns[i].addEventListener("click", function (event) {
41          let newsletterSub = {
42            tealium_event: "email_signup",
43            event_action: "click",
44            event_section: newsletterBtns[i].getAttribute("data-section"),
45          };
46          window.utag.link(newsletterSub);
47        });
48      }
49
50      const cmsBannerObserver = new IntersectionObserver(
51        cmsBannerCallback,
52        options
53      );
54      function cmsBannerCallback(entries, cmsBannerObserver) {
55        entries.forEach((entry) => {
56          if (entry.isIntersecting) {
57            console.log(entry.target);
58            let cmsBannerObj = {
59              tealium_event: "cms_banner",
60              event_action: "view",
61              event_data: entry.target.getAttribute("href"),
62              page_name: page_name,
63            };
64            window.utag.link(cmsBannerObj);
65          }
66        });
67      }
68      const cmsBanner = document.querySelectorAll(".cms-banner div a");
69      for (let i = 0; i < cmsBanner.length; i++) {
70        cmsBannerObserver.observe(cmsBanner[i]);
71        cmsBanner[i].addEventListener("click", function (event) {
72          let cmsBannerObj = {
73            tealium_event: "cms_banner",
74            event_action: "click",
75            event_data: cmsBanner[i].getAttribute("href"),
76            page_name: page_name,
77          };
78          window.utag.link(cmsBannerObj);
79        });
80      }
81
82      const adTeasersObserver = new IntersectionObserver(
83        adTeasersCallback,
84        options
85      );
86      function adTeasersCallback(entries, adTeasersObserver) {
87        entries.forEach((entry) => {
88          if (entry.isIntersecting) {
89            console.log(entry.target);
90            let adTeasersObj = {
91              tealium_event: "advertorial_teaser",
92              event_action: "view",
93              target_url: entry.target.getAttribute("href"),
94              teaser_title: entry.target.querySelector(".teaser-title div h1")
95                .innerHTML,
96              page_name: "home",
97            };
98            window.utag.link(adTeasersObj);
99          }
100        });
101      }
102      const adTeasers = document.querySelectorAll(".is-advertorial");
103      for (let i = 0; i < adTeasers.length; i++) {
104        adTeasersObserver.observe(adTeasers[i]);
105        adTeasers[i].addEventListener("click", function (event) {
106          let adTeaserObj = {
107            tealium_event: "advertorial_teaser",
108            event_action: "click",
109            target_url: adTeasers[i].getAttribute("href"),
110            teaser_title: adTeasers[i].querySelector("a .teaser-title div h1")
111              .innerHTML,
112            page_name: "home",
113          };
114          window.utag.link(adTeaserObj);
115        });
116      }
117
118      if (myData.is_home) {
119        const issueBtnsObserver = new IntersectionObserver(
120          issueBtnsCallback,
121          options
122        );
123        function issueBtnsCallback(entries, issueBtnsObserver) {
124          entries.forEach((entry) => {
125            if (entry.isIntersecting) {
126              console.log(entry.target);
127              let ausgabeObj = {
128                tealium_event: "Issue",
129                event_action: "view",
130                event_data: entry.target.innerHTML,
131                target_url: entry.target.getAttribute("href"),
132                page_name: page_name,
133              };
134              window.utag.link(ausgabeObj);
135            }
136          });
137        }
138        const issueBtnsContainers = document.getElementsByClassName(
139          "asmb-issue-slider-button-container"
140        );
141        for (let i = 0; i < issueBtnsContainers.length; i++) {
142          const issueBtns = issueBtnsContainers[i].querySelectorAll("a");
143          for (let j = 0; j < issueBtns.length; j++) {
144            issueBtnsObserver.observe(issueBtns[j]);
145            issueBtns[j].addEventListener("click", function (event) {
146              let ausgabeObj = {
147                tealium_event: "Issue",
148                event_action: "click",
149                event_data: issueBtns[j].innerHTML,
150                target_url: issueBtns[i].getAttribute("href"),
151                page_name: page_name,
152              };
153              window.utag.link(ausgabeObj);
154            });
155          }
156        }
157        const heroSlidesObserver = new IntersectionObserver(
158          heroSlidesCallback,
159          options
160        );
161        function heroSlidesCallback(entries, heroSlidesObserver) {
162          entries.forEach((entry) => {
163            if (entry.isIntersecting) {
164              console.log(entry.target);
165              let heroSlidesObj = {
166                tealium_event: "hero_banner",
167                event_action: "view",
168                target_url: entry.target.getAttribute("href"),
169                teaser_title:
170                  entry.target.querySelector(".teaser-title").innerHTML,
171                page_name: page_name,
172              };
173              window.utag.link(heroSlidesObj);
174            }
175          });
176        }
177        const heroSlides = document.querySelectorAll(".hero-slider-btn");
178        for (let i = 0; i < heroSlides.length; i++) {
179          heroSlidesObserver.observe(heroSlides[i]);
180          heroSlides[i].addEventListener("click", function (event) {
181            let heroSlideObj = {
182              tealium_event: "hero_banner",
183              event_action: "click",
184              target_url: heroSlides[i].getAttribute("href"),
185              teaser_title: heroSlides[i].querySelector(".teaser-title div h1")
186                .innerHTML,
187              page_name: page_name,
188            };
189            window.utag.link(heroSlideObj);
190          });
191        }
192      } else if (myData.is_post) {
193        const iosAd = document.querySelector(".ios-ad-banner");
194        if (iosAd) {
195          console.log("iOS Ad banner found:", iosAd); // Confirm that iosAd is successfully selected
196        } else {
197          console.log("iOS Ad banner not found, check your selector!"); // Error handling if iosAd is null
198        }
199        iosAd.addEventListener("click", function (event) {
200          console.log("Ad clicked", event); //Log the click event object
201          let iosAdClickEvent = {
202            tealium_event: "ios_ad_click",
203            event_action: "click",
204            event_content: "iOS Ad",
205            page_name: page_name,
206          };
207          console.log("Click event data", iosAdClickEvent); // Log the data being sent on click
208          window.utag.link(iosAdClickEvent);
209        });
210        const iosAdObserver = new IntersectionObserver(iosAdCallback, options);
211        function iosAdCallback(entries, iosAdObserver) {
212          entries.forEach((entry) => {
213            console.log("IntersectionObserver entry:", entry); // Log each entry object from IntersectionObserver
214            if (entry.isIntersecting) {
215              console.log("Ad is in view", entry.target); // Log the target that has intersected the viewport
216              console.log(entry.target);
217              let iosAdObj = {
218                tealium_event: "ios_ad_view",
219                event_action: "view",
220                page_name: page_name,
221              };
222              console.log("View event data", iosAdObj); // Log the data being sent on view
223              window.utag.link(iosAdObj);
224            }
225          });
226        }
227        iosAdObserver.observe(iosAd);
228        const currentIssueObserver = new IntersectionObserver(
229          currentIssueCallback,
230          options
231        );
232        function currentIssueCallback(entries, currentIssueObserver) {
233          entries.forEach((entry) => {
234            if (entry.isIntersecting) {
235              console.log(entry.target);
236              let currentIssueObj = {
237                tealium_event: "current_issue",
238                event_action: "view",
239                target_url: entry.target.getAttribute("href"),
240                teaser_title: entry.target.querySelector(
241                  ".asmb-current-issue-content h1"
242                ).innerHTML,
243                page_name: page_name,
244              };
245              window.utag.link(currentIssueObj);
246            }
247          });
248        }
249        // const currentIssue = document.querySelector("#current-issue-btn");
250        // currentIssueObserver.observe(currentIssue)
251        // currentIssue.addEventListener("click", function (event) {
252        //     let currentIssueObj = {
253        //         "tealium_event": "current_issue",
254        //         "event_action": "click",
255        //         "target_url": currentIssue.getAttribute("href"),
256        //         "teaser_title": document.querySelector(".asmb-current-issue-content h1").innerHTML,
257        //         "page_name": page_name,
258        //     }
259        //     window.utag.link(currentIssueObj)
260        // })
261      }
262    }
263  }, 100);
264});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.