1/* GA4 ç¨ dataLayer åæåãGTM ã¹ããããããå ã«èªã¿è¾¼ãåæ */ 2(function () { 3 if (window.__GN_DATALAYER_INITIALIZED__) return; 4 window.__GN_DATALAYER_INITIALIZED__ = true; 5 6 var STORAGE_KEY = 'gn_prev_page_type'; 7 8 // URL ãã¿ã¼ã³ â page_type å¤å® (åæãã¼ã åé¡è¡¨æºæ ) 9 // ä¸ããé ã«è©ä¾¡ãæåã«ããããããã®ãæ¡ç¨ãããããªã㯠'other' 10 var URL_PATTERNS = [ 11 // top 12 [/^\/$/, 'top'], 13 [/^\/usedcar\/?$/, 'top'], 14 [/^\/index_00[1-4]\.html$/, 'top'], 15 [/^\/index_x\.html$/, 'top'], 16 [/^\/ipn\/?(index\.html)?$/, 'top'], 17 [/^\/usedcar\/index-\d+\.html$/, 'top'], 18 // brand-top.html 㯠"ã¡ã¼ã«ã¼ä¸è¦§" ãã¼ã¸ã§ other (car_list ã® SEO éç URL ããå ã«å¤å®) 19 [/^\/usedcar\/brand-top\.html/, 'other'], 20 // car_list (SEO éç URL) 21 [/^\/usedcar\/(brand|bodytype|pref|price|certified|exhaust|option|max|nenshiki|year|distance)[-\/]/, 'car_list'], 22 // car_list (åç) 23 [/^\/php\/search\/summary\.php/, 'car_list'], 24 [/^\/cgi-bin\/fsearch\/goo_used_search(_for_iphone)?\.cgi/, 'car_list'], 25 // car_detail 26 [/^\/php\/search\/(spread|print)\.php/, 'car_detail'], 27 [/^\/usedcar\/spread\//, 'car_detail'], 28 // shop_list 29 [/^\/usedcar_shop\/?$/, 'shop_list'], 30 [/^\/usedcar_shop\/pref-/, 'shop_list'], 31 [/^\/php\/shop\/summary\.php/, 'shop_list'], 32 // shop_detail 33 [/^\/php\/shop\/(stock|user_review|after_service|hdplan|tdrive)/, 'shop_detail'], 34 [/^\/usedcar_shop\/[^/]+\/(detail|stock|tdrive)\.html/, 'shop_detail'], 35 [/^\/goonet\/php\/userreview\//, 'shop_detail'], 36 [/^\/user_review\/[^/]+\/detail\.html/, 'shop_detail'], 37 // form_estimate (OEM /goonet/php/estimate_daihatsu/ çã¯ãããããªãã.php å¢çã§ cart_ins çã®æ´¾çãé¤å¤) 38 [/^\/goonet\/php\/estimate\/(cart|cart_tradein|confirm|finish|finish_est_chat)\.php/, 'form_estimate'], 39 [/^\/estimate\/no_data\.html$/, 'form_estimate'], 40 [/^\/ipn\/estimate\/no_data\.html$/, 'form_estimate'], 41 // favorite 42 [/^\/php\/mysearch\/compare_list\.php/, 'favorite'] 43 ]; 44 45 function inferPageType(path) { 46 for (var i = 0; i < URL_PATTERNS.length; i++) { 47 if (URL_PATTERNS[i][0].test(path)) return URL_PATTERNS[i][1]; 48 } 49 return 'other'; 50 } 51 52 // åªå é ä½: window.PAGE_TYPE (ãã³ãã¬æç¤º) > URL å¤å® > 'other' 53 var pageType = window.PAGE_TYPE || inferPageType(window.location.pathname); 54 // ä»ã¹ã¯ãªãã (æ¥åºäºç´ãªã³ã¯ã¸ã® page_type ä»ä¸ç) ããåç §ããããã°ãã¼ãã«ã«é²åº 55 window.__GN_PAGE_TYPE__ = pageType; 56 57 var stockId = window.STOCK_ID || window.STOCKID || ''; 58 var shopId = window.CLIENT_ID || ''; 59 60 var prevPageType = ''; 61 try { 62 // èªãµã¤ãããã®é·ç§»æã®ã¿åãã¼ã¸ page_type ãç¶æ¿ (å¤é¨åå ¥ã§å¤ãå¤ãæ¾ããªããã) 63 var ref = document.referrer || ''; 64 if (ref.indexOf('goo-net.com') > -1 || ref.indexOf('gooworld.jp') > -1) { 65 prevPageType = window.sessionStorage.getItem(STORAGE_KEY) || ''; 66 } 67 // iframe å ã§ã¯ sessionStorage ãæ¸ãæããªã (親ã³ã³ããã¹ãã® gn_prev_page_type ãæ±æããªããã) 68 if (window.top === window.self) { 69 window.sessionStorage.setItem(STORAGE_KEY, pageType); 70 } 71 } catch (e) { 72 // sessionStorage ãããã¯æ (ãã©ã¤ãã¼ãã¢ã¼ãç) ã¯ç¡è¦ 73 } 74 75 // TODO: WebView å¤å®ã¯ã¢ããªæ å½è 確èªå¾ã«æ¬å®è£ ãæ«å® 'web' 76 var platform = window.PLATFORM || 'web'; 77 78 window.dataLayer = window.dataLayer || []; 79 window.dataLayer.push({ 80 page_type: pageType, 81 referrer_page_type: prevPageType, 82 stock_id: String(stockId), 83 shop_id: String(shopId), 84 platform: platform 85 }); 86 87 // æ¥åºäºç´ (goo-reserve.com) é·ç§»æã« page_type=<é·ç§»å > ãèªåä»ä¸ã 88 // <a> ã¯ãªãã¯ã¨ window.open ã®ä¸¡æ¹ã hook ãã (å¼ã³åºãå´ 10+ ãã¡ã¤ã«ã触ããã«æ¸ã¾ãããã) 89 document.addEventListener('click', function (e) { 90 var a = e.target && e.target.closest ? e.target.closest('a[href*="goo-reserve.com"]') : null; 91 if (!a) return; 92 if (a.href.indexOf('page_type=') > -1) return; 93 var pt = window.__GN_PAGE_TYPE__ || ''; 94 var sep = a.href.indexOf('?') > -1 ? '&' : '?'; 95 a.href = a.href + sep + 'page_type=' + encodeURIComponent(pt); 96 }, true); 97 var _origOpen = window.open; 98 window.open = function (url, target, features) { 99 if (url && typeof url === 'string' && url.indexOf('goo-reserve.com') > -1 && url.indexOf('page_type=') === -1) { 100 var sep = url.indexOf('?') > -1 ? '&' : '?'; 101 url = url + sep + 'page_type=' + encodeURIComponent(window.__GN_PAGE_TYPE__ || ''); 102 }
103 return _origOpen.call(window, url, target, features); 104 }; 105})();
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.