{"version":3,"file":"save_tracking_infos-d58e6ba7.js","sources":["../../../app/javascript/entrypoints/save_tracking_infos.js"],"sourcesContent":["/** @module utils/save_tracking_infos UTMパラメーターなどのトラッキング情報をCookieに保存するスクリプト */\nimport Cookies from \"js-cookie\";\n\n// 除外するURI\nvar noneTargetURIPatterns = \n new Array(\"/consultant/\",\n \"/consultantHelp/\",\n \"/sysadmin/\",\n \"/healthCheck\",\n \"/fckeditor/\",\n \"/api/\",\n \"/api-open/\",\n \"/popup/\",\n \"/lp_m/\",\n \"/viewed\");\n// m3careerドメイン\nvar defaultM3Domain = \".m3career.com\";\n\nvar defaultCookiePath = \"/\";\nvar defaultCookieExpires = 183; // 日数\nvar defaultCookieSecure = false;\n\nfunction saveLandingInfos(){\n var domain = getCookieDomain();\n var path = defaultCookiePath;\n var expires = defaultCookieExpires;\n var secure = defaultCookieSecure;\n \n var siteDomainName = location.hostname;\n \n var referrer = document.referrer;\n var referrerHostName = null;\n \n var requestHostName = location.href.split('/')[2];\n var requestUri = location.href.substring(location.href.indexOf(requestHostName) + requestHostName.length);\n \n if(referrer) {\n referrerHostName = referrer.split('/')[2];\n }\n \n // 他ドメインからの場合、流入元として記録する。\n if( isTargetRequest(referrer, referrerHostName, requestUri, siteDomainName)){\n setTrackingCookie('landed_page_referer', referrer, domain, path, expires, secure);\n setTrackingCookie('landed_page_uri', requestUri, domain, path, expires, secure);\n saveUtms(true);\n } else {\n saveUtms(false);\n }\n\n if(!Cookies.get('uuid')) {\n // uuid未設定の場合は設定\n Cookies.set('uuid', guid());\n }\n}\n\nfunction isTargetRequest(referrer, referrerHostName, requestUri, siteDomainName){\n // referrerあり\n if(referrer == null || referrer.length == 0 || referrer == '-'){\n return false;\n } \n \n // referrerが他ドメイン\n if(referrerHostName == null || referrerHostName.length == 0 || referrerHostName.indexOf(siteDomainName) == 0){\n return false;\n } \n \n //除外URIリストに含まれない\n var i = 0;\n if(requestUri == null || requestUri.length == 0){\n return true;\n }\n \n if(siteDomainName == \"agent.m3career.com\" ){\n for(i = 0; i < noneTargetURIPatterns.length; i++){\n // 除外URIと前方一致すれば、対象外とする。\n if (requestUri.indexOf(noneTargetURIPatterns[i]) == 0){\n return false;\n }\n }\n }\n\n return true;\n}\n\n// overwriteAnywise: utm_sourceがなくても強制的に上書きする\nfunction saveUtms(overwriteAnywise){\n var utmParamNames = new Array(\"utm_source\",\"utm_medium\",\"utm_content\",\"utm_campaign\");\n var gaParamNames = new Array(\"ga_source\",\"ga_medium\",\"ga_content\",\"ga_campaign\");\n var domain = getCookieDomain();\n var path = defaultCookiePath;\n var expires = defaultCookieExpires;\n var secure = defaultCookieSecure;\n\n var queryParams = getUrlVars();\n \n var i = 0;\n \n if(hasParameter(queryParams, utmParamNames)){\n for(i = 0; i < utmParamNames.length; i++){\n var val = utmParamNames[i];\n const utmValue = queryParams[val];\n setTrackingCookie(val, utmValue, domain, path, expires, secure);\n }\n } else if(hasParameter(queryParams, gaParamNames)){\n for(i = 0; i < gaParamNames.length; i++){\n var val = gaParamNames[i];\n const utmValue = queryParams[val];\n // クッキー名はutm_付き\n setTrackingCookie(utmParamNames[i], utmValue, domain, path, expires, secure);\n }\n } else if(overwriteAnywise){ \n // 強制上書きの場合、utm_sourceがなければ、クッキーからutmを削除する。\n for(i = 0; i < utmParamNames.length; i++){\n setTrackingCookie(utmParamNames[i], null, domain, path, expires, secure);\n }\n }\n}\n\nfunction hasParameter(queryParams, paramNames){\n for(let i = 0; i < paramNames.length; i++){\n if (queryParams[paramNames[i]] != null && queryParams[paramNames[i]].length > 0){\n return true;\n }\n }\n return false;\n}\n\nfunction getCookieDomain(){\n // m3generatorは.m3.comドメインのクッキーしかアクセスできないため、各サブドメインのクッキーを.m3.comで作成する。\n if (location.hostname.indexOf(defaultM3Domain) > -1){\n return defaultM3Domain;\n } else {\n return null;\n }\n}\n\nfunction getUrlVars()\n{\n var vars = [], hash;\n var pageUrl = window.location.href;\n \n if(pageUrl.indexOf('?') > 0){\n var urlQuery = pageUrl.slice(pageUrl.indexOf('?') + 1);\n // アンカー(#以降)を除く\n if(urlQuery.indexOf('#') > 0){\n urlQuery = urlQuery.slice(0, urlQuery.indexOf('#'));\n }\n var hashes = urlQuery.split('&'); \n for(var i = 0; i < hashes.length; i++) { \n hash = hashes[i].split('='); \n vars.push(hash[0]); \n vars[hash[0]] = hash[1]; \n } \n }\n return vars;\n} \n\n\n//クッキー保存 setTrackingCookie(クッキー名, クッキーの値, クッキーの有効日数); //\nfunction setTrackingCookie(name, value, domain, path, expires, secure) {\n if (!name) return;\n \n // 値がnullの場合はcookieを削除する。\n if (value == null) expires = -1;\n\n var str = name + \"=\" + escape(value);\n if (domain) {\n if (domain == 1) domain = location.hostname.replace(/^[^\\.]*/, \"\");\n str += \"; domain=\" + domain;\n }\n if (path) {\n if (path == 1) path = location.pathname;\n str += \"; path=\" + path;\n }\n if (expires) {\n var nowtime = new Date().getTime();\n expires = new Date(nowtime + (60 * 60 * 24 * 1000 * expires));\n expires = expires.toGMTString();\n str += \"; expires=\" + expires;\n }\n if (secure && location.protocol == \"https:\") {\n str += \"; secure\";\n }\n\n document.cookie = str;\n}\n\nfunction S4() {\n return Math.ceil(((1+Math.random())*0x10000)).toString(16).substring(1);\n};\n\n/** guidを生成 */\nfunction guid() {\n return (S4()+S4()+'-'+S4()+'-'+S4()+'-'+S4()+'-'+S4()+S4()+S4());\n};\n\n// トラッキング情報をCookieに保存\nsaveLandingInfos();\n"],"names":["noneTargetURIPatterns","defaultM3Domain","defaultCookiePath","defaultCookieExpires","defaultCookieSecure","saveLandingInfos","domain","getCookieDomain","path","expires","secure","siteDomainName","referrer","referrerHostName","requestHostName","requestUri","isTargetRequest","setTrackingCookie","saveUtms","Cookies","guid","i","overwriteAnywise","utmParamNames","gaParamNames","queryParams","getUrlVars","hasParameter","val","utmValue","paramNames","vars","hash","pageUrl","urlQuery","hashes","name","value","str","nowtime","S4"],"mappings":"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"}