1. Home
  2. Integrations
  3. Bizible
  4. Creating PathFactory Touchpoints in Bizible 

Creating PathFactory Touchpoints in Bizible 

This article outlines the integration process for setting up Bizible attribution touchpoints based on PathFactory engagement data from platforms like Marketo, Eloqua, Pardot, or HubSpot. For mutual PathFactory and Bizible users/customers, this can help you achieve the following insights:

  • See the level of engagement your visitors are having with content/campaigns
  • Understand the value contributed by PathFactory to the revenue pipeline
  • Get a more comprehensive view of revenue-impacting activities using better engagement data that goes beyond traditional metrics like email clicks and pageviews

PathFactory relies on the connection between your Marketing Automation Platform (MAP) and Bizible to help create Bizible attribution touchpoints. Below, you will find a section that outlines setup instructions for each of the following MAPs:

  • Marketo
  • Eloqua
  • Pardot
  • HubSpot

How to Set Up Bizible Touchpoints for PathFactory and Marketo

The following two PathFactory-Bizible touchpoints can be created for clients who use Marketo.

Bizible Touchpoint: Marketo Form Is Submitted to PathFactory

If you are using the Custom HTML option to host your Marketo forms in PathFactory, you can add the following code snippet below as an External Code snippet and enable it globally. This allows the Bizible script tag to be added automatically to all of your Marketo forms. This script will create a Bizible touchpoint when the form is submitted. 

<script src="https://cdnjs.cloudflare.com/ajax/libs/arrive/2.4.1/arrive.min.js" integrity="sha512-wkU3qYWjenbM+t2cmvw2ADRRh4opbOYBjkhrPGHV7M6dcE/TR0oKpoDkWXfUs3HrulI2JFuTQyqPLRih1V54EQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<script>

document.arrive("#qa-custom-form", function() {

        this.addEventListener("load", function() {

            var doc = document.getElementById("qa-custom-form").contentWindow.document;

            var formScript = document.createElement("script");

            var scriptTemplate = document.getElementById("bizible-script-tag").innerHTML;

            formScript.appendChild(document.createTextNode(scriptTemplate));

            doc.body.appendChild(formScript);

    });

});

</script>

<template id="bizible-script-tag">

var bizible_script = document.createElement('script');

bizible_script.setAttribute('src','//cdn.bizible.com/scripts/bizible.js');

document.head.appendChild(bizible_script);

</template>

Bizible Touchpoint: Visitor Has Met The Threshold on an Asset in a PathFactory Experience

  1. Start by creating a form in Marketo. The form should have just the email address field. Grab the embed code of the form from Marketo. 
  2. Provide PathFactory Support or your Solutions Architect with Marketo’s form embed code. Our Solutions team will use the embed code to create the code snippet below in your PathFactory instance and add it as external code, test it, and enable it globally in consultation with you.

The script below will create a Bizible touchpoint if a known visitor meets the threshold on an asset. If the PathFactory Experience has a gating form strategy enabled, the script will create a  Bizible  touchpoint based on the form submission versus when the visitor meets the threshold on the asset.

<script src='https://cdnjs.cloudflare.com/ajax/libs/visibility.js/1.2.4/visibility.min.js'></script>

<script src="INSERT-YOUR-MARKETO-DOMAIN-HERE/js/forms2/js/forms2.min.js"></script>

<form id="INSERT-YOUR-FORM-ID" style="display:none"></form>

<script>MktoForms2.loadForm("INSERT-YOUR-MARKETO-DOMAIN-HERE", "INSERT-YOUR-MUNCHKIN-CODE-HERE", "INSERT-YOUR-FORM-ID", function(form) {

  form.onSuccess(function(values, followUpUrl) {

        return false;

    });

    var threshold = "{{content.engagement_threshold}}";

    var visitorEmail = "{{visitor.email}}"

var hasForm= __PATHFACTORY__.pageViewData.captureConfig.formId;

if(!hasForm){ 

         var queryString = new URLSearchParams(window.location.search);

         var personInfo = {};

         var data = {

           "munchkinId": "INSERT-YOUR-MUNCHKIN-CODE-HERE",

           "formid": "INSERT-YOUR-FORM-ID",

           "formVid": "INSERT-YOUR-FORM-ID",

           "Email": visitorEmail

         };

           /* end of bizible-related snippet*/

           var timeOnPage = 0;

        var timer = Visibility.every(1000, function () {

           timeOnPage += 1;

          if (timeOnPage >= parseInt(threshold)) {

              if (visitorEmail){

                    form.addHiddenFields({

           // These are the values which will be submitted to Marketo

               "Email": visitorEmail

           });

            form.submit();

                    window['Bizible'] = window['Bizible'] || { _queue: [], Push: function (o, p) {this._queue.push({ type: o, data: p }); } };

               Bizible.Push('User', {

                 eMail: visitorEmail,

               });   

              } 

             if (!visitorEmail){

                                    window.getPFContact().then((response) => {

                                        if (response.status == 200) {

                                         return response.json();

                                        }

                                    }).then(pfcontact => {

                                      visitorEmail = pfcontact.email;

                                      form.addHiddenFields({

           // These are the values which will be submitted to Marketo

               "Email": visitorEmail,

           });

            form.submit();

              window['Bizible'] = window['Bizible'] || { _queue: [], Push: function (o, p) {this._queue.push({ type: o, data: p }); } };

               Bizible.Push('User', {

                 eMail: visitorEmail,

               });   

            });

                    }      

          Visibility.stop(timer);

           }

        });

   }

});

</script>

How to Set Up Bizible Touchpoints for PathFactory and Eloqua

Bizible Touchpoint: When an Eloqua Form Is Submitted in PathFactory

If you are using the Custom HTML option to host your Eloqua forms in PathFactory, you can add the following code snippet below as an External Code snippet and enable it globally. This allows the Bizible script tag to be added automatically to all of your Eloqua forms. This script will create a touchpoint when the form is submitted. 

<script src="https://cdnjs.cloudflare.com/ajax/libs/arrive/2.4.1/arrive.min.js" integrity="sha512-wkU3qYWjenbM+t2cmvw2ADRRh4opbOYBjkhrPGHV7M6dcE/TR0oKpoDkWXfUs3HrulI2JFuTQyqPLRih1V54EQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<script>

document.arrive("#qa-custom-form", function() {

        this.addEventListener("load", function() {

            var doc = document.getElementById("qa-custom-form").contentWindow.document;

            var formScript = document.createElement("script");

            var scriptTemplate = document.getElementById("bizible-script-tag").innerHTML;

            formScript.appendChild(document.createTextNode(scriptTemplate));

            doc.body.appendChild(formScript);

    });

});

</script>

<template id="bizible-script-tag">

var bizible_script = document.createElement('script');

bizible_script.setAttribute('src','//cdn.bizible.com/scripts/bizible.js');

document.head.appendChild(bizible_script);

</template>

Bizible Touchpoint: When a Visitor Has Met The Threshold on an Asset in a PathFactory Experience

  1. Start by creating a form in Eloqua. The form should contain just the email address field. Grab the HTML code of the form from Eloqua. 
  2. Provide PathFactory Support or your Solutions Architect with Eloqua’s form HTML code. Our Solutions team will use the HTML code to create the code snippet below in your PathFactory instance and add it as external code, test it, and enable it globally in consultation with you.

The script below will create a Bizible touchpoint if a known visitor meets the threshold on an asset. If the PathFactory Experience has a gating form strategy enabled, the script will create a Bizible touchpoint that is based on form submission versus when the visitor meets the threshold on the asset. If there is no form fill on the experience, the script will create a Bizible touchpoint based on the asset threshold that has been configured. 

<script type="text/javascript" src="https://cdn.bizible.com/scripts/bizible.js" async=""></script>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/visibility.js/1.2.4/visibility.min.js"></script>

<script>

  var hasForm= __PATHFACTORY__.pageViewData.captureConfig.formId;

      if(!hasForm){ 

  var email ="{{visitor.email}}";

  var threshold = "{{content.engagement_threshold}}";

  var timeOnPage = 0;

  var url = "https://[Eloqua Instance].t.eloqua.com/e/f2?elqSiteID=[EloquaSiteID]&elqFormName=[FormName]";

  var timer = Visibility.every(1000, function () {

    timeOnPage += 1;

    if (timeOnPage >= parseInt(threshold)) {

     console.log('email addresss is {{visitor.email}}');

       if (email){

           $.post(url, "emailAddress=" + email);

                    window['Bizible'] = window['Bizible'] || { _queue: [], Push: function (o, p) {this._queue.push({ type: o, data: p }); } };

               Bizible.Push('User', {

                 eMail: email,

               });  

              } 

if(!email){

  window.getPFContact().then((response) => {

                                        if (response.status == 200) {

                                         return response.json();

                                        }

                                    }).then(pfcontact => {

                                      email = pfcontact.email;

             $.post(url, "emailAddress=" + email);

                    window['Bizible'] = window['Bizible'] || { _queue: [], Push: function (o, p) {this._queue.push({ type: o, data: p }); } };

               Bizible.Push('User', {

                 eMail: email,

               });   

                                    });

              }

               Visibility.stop(timer); 

    }

  });

}

</script>

 


How to Set Up Bizible Touchpoints for PathFactory and Pardot

Bizible Touchpoint: When a Pardot Form is Submitted in PathFactory

If you are using the Custom HTML option to host your Pardot forms in PathFactory, you can add the following code snippet below as an External Code snippet and enable it globally. This allows the Bizible script tag to be added automatically to all of your Pardot forms. This script will create a touchpoint when the form is submitted. 

<script src="https://cdnjs.cloudflare.com/ajax/libs/arrive/2.4.1/arrive.min.js" integrity="sha512-wkU3qYWjenbM+t2cmvw2ADRRh4opbOYBjkhrPGHV7M6dcE/TR0oKpoDkWXfUs3HrulI2JFuTQyqPLRih1V54EQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<script>

document.arrive("#qa-custom-form", function() {

        this.addEventListener("load", function() {

            var doc = document.getElementById("qa-custom-form").contentWindow.document;

            var formScript = document.createElement("script");

            var scriptTemplate = document.getElementById("bizible-script-tag").innerHTML;

            formScript.appendChild(document.createTextNode(scriptTemplate));

            doc.body.appendChild(formScript);

    });

});

</script>

<template id="bizible-script-tag">

var bizible_script = document.createElement('script');

bizible_script.setAttribute('src','//cdn.bizible.com/scripts/bizible.js');

document.head.appendChild(bizible_script);

</template>


Bizible-Pardot Touchpoint: When a Visitor Has Met The Threshold on an Asset in a  PathFactory Experience

  1. Start by creating a form Handler in Pardot. The form handler should have just the email address field. Grab the Form handler’s URL from Pardot. 
  2. Provide PathFactory Support or your Solutions Architect with Pardot’s form handlers URL. Our Solutions team will use the Form Handler’s URL to create the code snippet below in your PathFactory instance and add it as external code, test it, and enable it globally in consultation with you.

The script below will create a Bizible touchpoint if a known visitor meets the threshold on an asset. If the PathFactory Experience has a gating form strategy enabled, the script will create a Bizible touchpoint that is  based on form submission versus when the visitor meets the threshold on the asset. If there is no form fill on the experience, the script will create a Bizible touchpoint based on the asset threshold that has been configured. 

<script type="text/javascript" src="https://cdn.bizible.com/scripts/bizible.js" async=""></script>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/visibility.js/1.2.4/visibility.min.js"></script>

<script>

  var hasForm= __PATHFACTORY__.pageViewData.captureConfig.formId;

      if(!hasForm){ 

  var email ="{{visitor.email}}";

  var threshold = "{{content.engagement_threshold}}";

  var timeOnPage = 0;

  var url = "Form_Handler_URL";

  var timer = Visibility.every(1000, function () {

    timeOnPage += 1;

    if (timeOnPage >= parseInt(threshold)) {

     console.log('email addresss is {{visitor.email}}');

       if (email){

           $.post(url, "email=" + email);

                    window['Bizible'] = window['Bizible'] || { _queue: [], Push: function (o, p) {this._queue.push({ type: o, data: p }); } };

               Bizible.Push('User', {

                 eMail: email,

               });  

              } 

if(!email){

  window.getPFContact().then((response) => {

                                        if (response.status == 200) {

                                         return response.json();

                                        }

                                    }).then(pfcontact => {

                                      email = pfcontact.email;

             $.post(url, "email=" + email);

                    window['Bizible'] = window['Bizible'] || { _queue: [], Push: function (o, p) {this._queue.push({ type: o, data: p }); } };

               Bizible.Push('User', {

                 eMail: email,

               });   

                                    });

              }

               Visibility.stop(timer); 

    }

  });

}

</script>

How to Set Up Bizible Touchpoints for PathFactory and HubSpot

The following two PathFactory-Bizible touchpoints can be created for clients who use HubSpot.

Bizible Touchpoint: When a HubSpot Form is Submitted in PathFactory

If you are using the Custom HTML option to host your HubSpot forms in PathFactory, you can add the following code snippet below as an External Code snippet and enable it globally. This allows the Bizible script tag to be added automatically to all of your HubSpot forms. This script will create a touchpoint when the form is submitted. 

<script src="https://cdnjs.cloudflare.com/ajax/libs/arrive/2.4.1/arrive.min.js" integrity="sha512-wkU3qYWjenbM+t2cmvw2ADRRh4opbOYBjkhrPGHV7M6dcE/TR0oKpoDkWXfUs3HrulI2JFuTQyqPLRih1V54EQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<script>

document.arrive("#qa-custom-form", function() {

        this.addEventListener("load", function() {

            var doc = document.getElementById("qa-custom-form").contentWindow.document;

            var formScript = document.createElement("script");

            var scriptTemplate = document.getElementById("bizible-script-tag").innerHTML;

            formScript.appendChild(document.createTextNode(scriptTemplate));

            doc.body.appendChild(formScript);

    });

});

</script>

<template id="bizible-script-tag">

var bizible_script = document.createElement('script');

bizible_script.setAttribute('src','//cdn.bizible.com/scripts/bizible.js');

document.head.appendChild(bizible_script);

</template>

Bizible Touchpoint: When a Visitor Has Met The Threshold on an Asset in a PathFactory Experience

  1. Start by creating a form in HubSpot. The form should have just the email address field. Grab the embed code of the form from HubSpot. 
  2. Provide PathFactory Support or your Solutions Architect with HubSpot’s form embed code. Our Solutions team will use the embed code to create the code snippet below in your PathFactory instance and add it as external code, test it, and enable it globally in consultation with you.

The script below will create a Bizible touchpoint if a known visitor meets the threshold on an asset. If the PathFactory Experience has a gating form strategy enabled, the script will create the Bizible-touchpoint that is based on form submission versus when the visitor meets the threshold on the asset. If there is no form fill on the experience, the script will create a Bizible touchpoint based on the asset threshold that has been configured. 

<script type="text/javascript" src="https://cdn.bizible.com/scripts/bizible.js" async=""></script>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/visibility.js/1.2.4/visibility.min.js"></script>

<script>

  var hasForm= __PATHFACTORY__.pageViewData.captureConfig.formId;

      if(!hasForm){ 

  var email ="{{visitor.email}}";

  var threshold = "{{content.engagement_threshold}}";

  var timeOnPage = 0;

  var url = "https://forms.HubSpot.com/uploads/form/v2/portal_id/form_guid";

  var timer = Visibility.every(1000, function () {

    timeOnPage += 1;

    if (timeOnPage >= parseInt(threshold)) {

     console.log('email addresss is {{visitor.email}}');

       if (email){

           $.post(url, "email=" + email);

                    window['Bizible'] = window['Bizible'] || { _queue: [], Push: function (o, p) {this._queue.push({ type: o, data: p }); } };

               Bizible.Push('User', {

                 eMail: email,

               });  

              } 

if(!email){

  window.getPFContact().then((response) => {

                                        if (response.status == 200) {

                                         return response.json();

                                        }

                                    }).then(pfcontact => {

                                      email = pfcontact.email;

             $.post(url, "email=" + email);

                    window['Bizible'] = window['Bizible'] || { _queue: [], Push: function (o, p) {this._queue.push({ type: o, data: p }); } };

               Bizible.Push('User', {

                 eMail: email,

               });   

                                    });

              }

               Visibility.stop(timer); 

    }

  });

}

</script>

Updated on April 5, 2024

Was this article helpful?

Need Support?
Can't find the answer you're looking for? Don't worry we're here to help!
CONTACT SUPPORT