1// Function for getting price from landings 2function parsePrices(priceStr) { 3 let cleanedPrice = priceStr.replace(/вÑд\s*/g, "").trim(); 4 5 const matches = cleanedPrice.match(/(\d[\d\s]*\d|\d)/g); 6 7 if (!matches) { 8 return []; 9 } 10 11 const prices = matches.map((match) => 12 parseInt(match.replace(/[\s\n]/g, ""), 10) 13 ); 14 15 return prices; 16} 17 18let page_category = ""; 19let type_form = ""; 20 21let prev_page_category = Cookies.get("a_page_category"); 22 23if (document.location.href == "https://prometheus.org.ua/") { 24 page_category = "Ðоловна"; 25 type_form = "basic"; 26} else if ( 27 document.location.href.startsWith("https://prometheus.org.ua/course/") 28) { 29 page_category = "CÑоÑÑнка кÑÑÑÑ"; 30 type_form = "basic"; 31} else if ( 32 document.location.href == 33 "https://prometheus.org.ua/courses-catalog/prometheus-plus" 34) { 35 page_category = "ÐÑомеÑеÑÑ +"; 36 type_form = "basic"; 37} else if (document.location.href == "https://prometheus.org.ua/blog/") { 38 page_category = "Ðлог"; 39 type_form = "basic"; 40} else if ( 41 document.location.href == "https://prometheus.org.ua/corporate-learning/" 42) { 43 page_category = "ÐоÑпоÑаÑивне навÑаннÑ"; 44 type_form = "basic"; 45} else if ( 46 document.location.href.startsWith("https://prometheus.org.ua/prometheus-plus") 47) { 48 page_category = "СÑоÑÑнка плаÑного кÑÑÑÑ"; 49 type_form = "basic"; 50 Cookies.set("a_item_list_name", prev_page_category, { 51 domain: ".prometheus.org.ua", 52 }); 53 54 // document.addEventListener("DOMContentLoaded", e => { 55 // let course_data = JSON.parse(localStorage.getItem("course_data")); 56 // localStorage.removeItem("course_data"); 57 58 // let price = ""; 59 // if (course_data.price_selector != "") { 60 // let price_text = document.querySelector(course_data.price_selector).textContent; 61 // price = parsePrices(price_text)[0]; 62 // } else { 63 // price = ""; 64 // } 65 66 // let item_list_name = Cookies.get('a_prev_page_category') || ''; 67 68 // dataLayer.push({ ecommerce: null }); 69 // dataLayer.push({ 70 // 'event': 'view_item', 71 // 'ecommerce': { 72 // 'items': [ 73 // { 74 // 'item_name': course_data.title, 75 // 'price': price, 76 // 'item_brand': course_data.item_brand, 77 // 'item_list_name': item_list_name, 78 // 'item_category_2': course_data.item_category_2, 79 // }] 80 // } 81 // }); 82 // }) 83} else if ( 84 document.location.href == "https://prometheus.org.ua/courses-catalog/" 85) { 86 page_category = "ÐаÑалог кÑÑÑÑв"; 87 type_form = "basic"; 88} 89 90Cookies.set("a_prev_page_category", Cookies.get("a_page_category") || "", { 91 domain: ".prometheus.org.ua", 92}); 93Cookies.set("a_page_category", page_category, { domain: ".prometheus.org.ua" }); 94 95document.querySelector(".register-button")?.addEventListener("click", (e) => { 96 window.dataLayer = window.dataLayer || []; 97 dataLayer.push({ 98 event: "registration_start", 99 page_category: page_category, 100 button_place: "header", 101 type_form: type_form, 102 }); 103 Cookies.set("a_type_form", "basic", { domain: ".prometheus.org.ua" }); 104}); 105 106document.querySelector(".login-button")?.addEventListener("click", (e) => { 107 window.dataLayer = window.dataLayer || []; 108 dataLayer.push({ 109 event: "login_start", 110 }); 111}); 112 113// document.querySelectorAll("#menu-megamenu-submenu .menu-item").forEach(item => { 114// item.addEventListener("click", e => { 115// window.dataLayer = window.dataLayer || []; 116// dataLayer.push({ 117// 'event':'click_menu', 118// 'type_menu': item.textContent 119// }); 120// }) 121// }) 122 123document 124 .querySelector(".prometheus-plus-button") 125 ?.addEventListener("click", (e) => { 126 window.dataLayer = window.dataLayer || []; 127 dataLayer.push({ 128 event: "click_menu", 129 type_menu: "Prometheus+", 130 }); 131 }); 132 133document 134 .querySelector(".order-course-button") 135 ?.addEventListener("click", (e) => { 136 window.dataLayer = window.dataLayer || []; 137 dataLayer.push({ 138 event: "click_menu", 139 type_menu: "ÐамовиÑи кÑÑÑ", 140 }); 141 }); 142 143document.querySelector(".header__dropdown")?.addEventListener("click", (e) => { 144 window.dataLayer = window.dataLayer || []; 145 dataLayer.push({ 146 event: "click_menu", 147 type_menu: "ÐаÑалог", 148 }); 149}); 150 151// Analytics for free course 152window.addEventListener("DOMContentLoaded", (event) => { 153 document 154 .querySelector('a[href*="https://courses.prometheus.org.ua/register?"]') 155 ?.addEventListener("click", (e) => { 156 Cookies.set("a_type_form", "free_course", { 157 domain: ".prometheus.org.ua", 158 }); 159 }); 160}); 161 162// Analytics for paid course 163window.addEventListener("DOMContentLoaded", (event) => { 164 document 165 .querySelectorAll( 166 'a[href^="https://ecommerce.prometheus.org.ua/basket/add/"]' 167 ) 168 ?.forEach((elem) => { 169 elem.addEventListener("click", (e) => { 170 Cookies.set("a_type_form", "pay_course", { 171 domain: ".prometheus.org.ua", 172 }); 173 }); 174 }); 175}); 176 177// Traffic sources 178const UTM_PARAMS = [ 179 "utm_source", 180 "utm_medium", 181 "utm_campaign", 182 "utm_term", 183 "utm_content", 184]; 185 186function has_utm(url) { 187 for (let i = 0; i < UTM_PARAMS.length; i++) { 188 if (url.searchParams.get("utm_source")) { 189 return true; 190 } 191 } 192 return false;
193} 194 195let data = { 196 gclid: "", 197 utm_source: "", 198 utm_medium: "", 199 utm_campaign: "", 200 utm_term: "", 201 utm_content: "", 202}; 203 204let url = new URL(window.location.href); 205 206if (url.searchParams.get("gclid")) { 207 data.utm_source = "google"; 208 data.utm_medium = "cpc"; 209 data.utm_campaign = url.searchParams.get("utm_campaign") || "none"; 210 data.utm_term = url.searchParams.get("utm_term") || "none"; 211 data.utm_content = url.searchParams.get("utm_content") || "none"; 212 data.gclid = url.searchParams.get("gclid"); 213} else { 214 data.gclid = null; 215 216 if (has_utm(url)) { 217 data.utm_source = url.searchParams.get("utm_source") || "none"; 218 data.utm_medium = url.searchParams.get("utm_medium") || "none"; 219 data.utm_campaign = url.searchParams.get("utm_campaign") || "none"; 220 data.utm_term = url.searchParams.get("utm_term") || "none"; 221 data.utm_content = url.searchParams.get("utm_content") || "none"; 222 } else { 223 if (document.referrer) { 224 let referrer_url = new URL(document.referrer); 225 let referrer_host = referrer_url.host; 226 227 data.utm_medium = "referral"; 228 data.utm_campaign = "none"; 229 data.utm_term = "none"; 230 data.utm_content = "none"; 231 232 if ( 233 referrer_host == "www.google.com" || 234 referrer_host == "www.google.com.ua" 235 ) { 236 data.utm_source = "google"; 237 data.utm_medium = "organic"; 238 } else if (referrer_host == "www.bing.com") { 239 data.utm_source = "bing"; 240 data.utm_medium = "organic"; 241 } else if (referrer_host == "duckduckgo.com") { 242 data.utm_source = "duckduckgo"; 243 data.utm_medium = "organic"; 244 } else { 245 data.utm_source = referrer_host; 246 } 247 } else { 248 data.utm_source = "direct"; 249 data.utm_medium = "none"; 250 data.utm_campaign = "none"; 251 data.utm_term = "none"; 252 data.utm_content = "none"; 253 } 254 } 255} 256 257let cookies_array = document.cookie.split("; "); 258 259for (let i = 0; i < cookies_array.length; i++) { 260 if (cookies_array[i].startsWith("_ga_62JY148LQZ")) { 261 // console.log("Found session id", cookies_array[i]); 262 break; 263 } 264} 265 266if (Cookies.get("a_source_data")) { 267 if ( 268 data.utm_source != "direct" && 269 !data.utm_source.includes("prometheus.org.ua") 270 ) { 271 Cookies.set("a_source_data", JSON.stringify(data), { 272 domain: ".prometheus.org.ua", 273 }); 274 } 275} else { 276 if (!data.utm_source.includes("prometheus.org.ua")) { 277 Cookies.set("a_source_data", JSON.stringify(data), { 278 domain: ".prometheus.org.ua", 279 }); 280 } 281} 282 283// Cookies check 284const raw_cookie = Cookies.get("a_source_data"); 285 286if (raw_cookie) { 287 const cookie = JSON.parse(raw_cookie); 288 289 if (cookie.utm_source.includes("prometheus.org.ua")) { 290 Cookies.remove("a_source_data", { domain: ".prometheus.org.ua" }); 291 } 292}
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.