Skip to main content

Hi, is there any possibility of passing the email address as a variable to a script ? My use case is that I’d like to use the Facebook Pixel with advanced matching which looks like that :


<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=e];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)e0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '00000000000'); // Insert your pixel ID here.
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=000000000000&ev=PageView&noscript=1"
/></noscript>
<!-- DO NOT MODIFY -->
<!-- End Facebook Pixel Code -->
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=e];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)e0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '000000000', {
em: '**insert_email_variable,**'
});
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=169282586826790&ev=PageView&noscript=1"
/></noscript>
<!-- DO NOT MODIFY -->
<!-- End Facebook Pixel Code -->

As you can see at one point it calls for em= and requests the email variable. How can I pass this info to the script ?


Thanks!

Not sure, but I’d like to know as well! I’m guessing it’s just a matter of adding in the form field name e.g.

em: 'email_address',


Do you guys know @Hristian, @Nicholas ???


i guess this pixel is on the confirmation page? email has been collected on previous page?


in which case, set form to include form fields in URL


there is a slim chance this might work (it’s probably close 😦 ): (you need a developer really which is not me):


<script>
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 (!resultst2]) return '';
return decodeURIComponent(resultst2].replace(/\+/g, " "));
}

$(document).ready(function(){

document.body.innerHTML += '<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=e];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)e0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '00000000000'); // Insert your pixel ID here.
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=000000000000&ev=PageView&noscript=1"
/></noscript>
<!-- DO NOT MODIFY -->
<!-- End Facebook Pixel Code -->
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=e];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)e0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '000000000', {
em: '+getParameterByName('INSERTEMAILFIELDNAME')'
});
fbq('track', 'PageView');
</script>'


});
});
</script>

Hey @Zoe_Tattersall, did you manage to make this work for you ?


No sorry 😦


Reply