Simon Data

Customer Recognition Tag

If you are integrating FullContact's Customer Recognition Tag with Simon Data's "Simon Signal" tag, make sure you have followed the below steps before getting started:

1.) Received confirmation from Simon Data that your CRM file has been loaded

2.) Been given an authorization key from Simon Data:

ex: 7W1fw6wYJa5tzdP2iB0po6UM5PznZDld

3.) Have an existing Simon Signal tag in your tag manager of choice (ex: Google Tag Manager or Tealium)


Implementations Vary!

If your Simon Signal tag integration has been customized or modified from the standard implementation, names and variables may be different. Make sure to double-check the variables and tag names your implementation is using before using the below code.

If all 3 steps above has been taken, find the Simon Signal tag (usually called "Simon Data - Primary Tag", and modify it's HTML. Add the below code to the end of the line, right above the ending script line:

(function(w, d, s, o, f, js, fjs) {
    w['FCObject'] = o;
    w[o] = w[o] || function() {
      (w[o].q = w[o].q || []).push(arguments)
    js = d.createElement(s), fjs = d.getElementsByTagName(s)[0]; = o;
    js.src = f;
    js.async = 1;
    fjs.parentNode.insertBefore(js, fjs);
  }(window, document, 'script', 'fc', ''));
  var config = {
    forceCallback: true,
    callback: function(pid) {
      if (!{{Simon Data - email}}) {
        sd.identify(pid, {
          'personId': pid
  fc('init', "YOUR AUTHORIZATION KEY HERE", config);


Edit it!

Make sure you modify the above code by adding your Simon Data provided Authorization Key.

When you save and publish the new code, you are all setup. PersonID for recognized customers will begin to funnel into the Simon Data platform for anonymous visitors.


Q1. I am not seeing PersonID - what's wrong?

Answer: While a PersonID is not given for every website visitor, you should start to see around 30%+ of traffic identified. If no PersonIDs are appearing at all, make sure you have your Authorization Key copied correctly.

Q2. After a customer authenticates and logs in, the PersonID is overriding their email address. How do I prevent this?

Answer: The code assumes you have two things: A.) The customers authenticated email being stored locally on the browser, and B.) The email is present in the 'Simon Data - email' variable. If you have a different variable name, go ahead and add it as another 'If' statement, nested within the first one, like so:

callback: function(pid) {
      if(!{{Simon Data - email}}){
        if(!{{Simon Data - email (footer)}}){
        sd.identify(pid, {'personId': pid})

Did this page help you?