Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function setCookie(cookieName, cookieValue, expirationTime) {
- expirationTime = expirationTime * 1000;
- var date = new Date();
- var dateTimeNow = date.getTime();
- date.setTime(dateTimeNow + expirationTime);
- var date = date.toUTCString();
- document.cookie =
- cookieName +
- "=" +
- cookieValue +
- "; expires=" +
- date +
- "; path=/; domain=." +
- domain;
- }
- function getCookie(name) {
- var value = "; " + document.cookie;
- var parts = value.split("; " + name + "=");
- if (parts.length == 2)
- return parts
- .pop()
- .split(";")
- .shift();
- return null;
- }
- function getParameterByName(name) {
- var url = window.location.href;
- name = name.replace(/[\[\]]/g, "\\$&");
- var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
- results = regex.exec(url);
- if (!results) return null;
- if (!results[2]) return "";
- return decodeURIComponent(results[2].replace(/\+/g, " ")) || null;
- }
- var httpReferrer = document.referrer || null;
- var finalSource;
- var utm_source = getParameterByName("utm_source");
- var utm_medium = getParameterByName("utm_medium");
- var gclid = getParameterByName("gclid");
- var domain = "bird-office.com";
- var EXPIRATE_DATE_COOKIE = 5184000;
- function getEmailSource(utm_medium, utm_source) {
- if (
- utm_medium === "email" ||
- utm_source === "email" ||
- utm_source === "hs_email"
- ) {
- return "Email marketing";
- }
- }
- function getReferrerSource(referrer) {
- var source = null;
- if (referrer) {
- if (referrer.indexOf("google") !== -1) {
- source = "Google Organic search";
- } else if (referrer.indexOf("bing") !== -1) {
- source = "Microsoft Organic Search";
- } else if (referrer.indexOf("twitter") !== -1) {
- source = "Twitter Organic";
- } else if (referrer.indexOf("facebook") !== -1) {
- source = "Facebook Organic";
- } else if (referrer.indexOf("linkedin") !== -1) {
- source = "Linkedin Organic";
- } else if (referrer.indexOf("blog.bird-office.com") !== -1) {
- source = "Blog";
- var regexBlogArticle = /https:\/\/blog\.bird-office\.com\/blog\/([0-9]{4})\/([0-9]{2})\/([0-9]{2})\/([a-z\-]*)\/?/gm;
- if (regexBlogArticle.test(referrer)) {
- var blogToken = referrer.split("/");
- setCookie(
- "leadBlogArticle",
- blogToken[blogToken.length - 2],
- EXPIRATE_DATE_COOKIE
- );
- }
- } else {
- source = "Referrals";
- setCookie("leadReferrer", httpReferrer, EXPIRATE_DATE_COOKIE);
- }
- }
- return source;
- }
- function getEventSource(utm_medium) {
- var source = null;
- if (utm_medium === "event") {
- source = "Event";
- }
- return source;
- }
- function getPaidSource(utm_medium, utm_source, gclid) {
- var source;
- if (utm_medium === "display") {
- return "Google Display";
- }
- if (gclid) {
- return "Google Paid search";
- }
- if (
- utm_medium === "ppc" ||
- utm_medium === "ad" ||
- utm_medium === "cpc" ||
- utm_medium === "paid"
- ) {
- switch (utm_source) {
- case "adwords":
- case "google":
- source = "Google Paid search";
- break;
- case "microsoft":
- case "bing":
- source = "Microsoft Paid search";
- break;
- case "facebook":
- source = "Facebook Ad";
- break;
- case "linkedin":
- source = "Linkedin Ad";
- break;
- case "twitter":
- source = "Twitter Ad";
- break;
- }
- return source;
- }
- return null;
- }
- var paidSource = getPaidSource(utm_medium, utm_source, gclid);
- var referrerSource = getReferrerSource(httpReferrer);
- var emailSource = getEmailSource(utm_medium, utm_source);
- var eventSource = getEventSource(utm_medium);
- finalSource =
- paidSource ||
- emailSource ||
- eventSource ||
- referrerSource ||
- "Direct traffic";
- setCookie("leadLastSourceAttribution", finalSource, EXPIRATE_DATE_COOKIE);
- var firstSourceAttribution = getCookie("leadFirstSourceAttribution");
- if (!firstSourceAttribution) {
- setCookie("leadFirstSourceAttribution", finalSource, EXPIRATE_DATE_COOKIE);
- }
- var getMultiSourceLastUpdate = getCookie("leadMultiSourceLastUpdate");
- var multiSourceAttribution = getCookie("leadMultiSourceAttribution");
- if (finalSource !== "Direct traffic") {
- //No Cookie Multi Touch
- if (!multiSourceAttribution) {
- setCookie("leadMultiSourceLastUpdate", Date.now());
- setCookie("leadMultiSourceAttribution", finalSource, EXPIRATE_DATE_COOKIE);
- //Cookie Multi Touch And Multi Touch Timer is past
- } else if (
- multiSourceAttribution &&
- Date.now() >= Number(getMultiSourceLastUpdate) + 60 * 30 * 1000
- ) {
- var splitMultiSource = multiSourceAttribution.split("|");
- if (splitMultiSource.length < 10) {
- setCookie(
- "leadMultiSourceAttribution",
- multiSourceAttribution + " | " + finalSource,
- EXPIRATE_DATE_COOKIE
- );
- setCookie("leadMultiSourceLastUpdate", Date.now());
- }
- }
- }
- if (getParameterByName("utm_term")) {
- setCookie(
- "leadUtmTerm",
- getParameterByName("utm_term"),
- EXPIRATE_DATE_COOKIE
- );
- }
- if (getParameterByName("utm_campaign")) {
- setCookie(
- "leadUtmCampaign",
- getParameterByName("utm_campaign"),
- EXPIRATE_DATE_COOKIE
- );
- }
- if (getParameterByName("utm_content")) {
- setCookie(
- "leadUtmContent",
- getParameterByName("utm_content"),
- EXPIRATE_DATE_COOKIE
- );
- }
- /* Inject variables */
- window.addEventListener('message', function(event) {
- if(event.data.type === 'hsFormCallback' && event.data.eventName === 'onFormReady') {
- console.log("ready");
- var event = new Event('change');
- if(getCookie("leadUtmTerm")){
- var utmTerm = document.getElementsByName("utm_term");
- if(utmTerm && utmTerm.length > 0){
- utmTerm[0].value = getCookie("leadUtmTerm");
- utmTerm[0].dispatchEvent(event);
- }
- }
- if(getCookie("leadUtmContent")){
- var utmContent = document.getElementsByName("utm_content");
- if(utmContent && utmContent.length > 0){
- utmContent[0].value = getCookie("leadUtmContent");
- utmContent[0].dispatchEvent(event);
- }
- }
- if(getCookie("leadUtmCampaign")){
- var utmCampaign = document.getElementsByName("utm_campaign");
- if(utmCampaign && utmCampaign.length > 0){
- utmCampaign[0].value = getCookie("leadUtmCampaign");
- utmCampaign[0].dispatchEvent(event);
- }
- }
- if(getCookie("leadBlogArticle")){
- var blogArticle = document.getElementsByName("lead_blog_article");
- if(blogArticle && blogArticle.length > 0){
- blogArticle[0].value = getCookie("leadBlogArticle");
- blogArticle[0].dispatchEvent(event);
- }
- }
- if(getCookie("leadReferrer")){
- var lastReferrer = document.getElementsByName("lead_source_referrer");
- if(lastReferrer && lastReferrer.length > 0){
- lastReferrer[0].value = getCookie("leadReferrer");
- lastReferrer[0].dispatchEvent(event);
- }
- }
- if(getCookie("leadLastSourceAttribution")){
- var leadLastSourceAttribution = document.getElementsByName("marketing_lead_source");
- if(leadLastSourceAttribution && leadLastSourceAttribution.length > 0){
- leadLastSourceAttribution[0].value = getCookie("leadLastSourceAttribution");
- leadLastSourceAttribution[0].dispatchEvent(event);
- }
- }
- if(getCookie("leadFirstSourceAttribution")){
- var leadLastSourceAttributionFirst = document.getElementsByName("marketing_lead_source_first");
- if(leadLastSourceAttributionFirst && leadLastSourceAttributionFirst.length > 0){
- leadLastSourceAttributionFirst[0].value = getCookie("leadLastSourceAttribution");
- leadLastSourceAttributionFirst[0].dispatchEvent(event);
- }
- }
- if(getCookie("leadMultiSourceAttribution")){
- var leadLastSourceAttributionMulti = document.getElementsByName("marketing_lead_source_multi");
- if(leadLastSourceAttributionMulti && leadLastSourceAttributionMulti.length > 0){
- leadLastSourceAttributionMulti[0].value = getCookie("leadLastSourceAttribution");
- leadLastSourceAttributionMulti[0].dispatchEvent(event);
- }
- }
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement