Getting Started

FunnelConnect Web Services

These docs describe the FunnelConnect JavaScript integration via simple tag integration and JavaScript APIs.

FunnelConnect is a web service, which provides:

  • Identity resolution (visitor, login, network, click ident, and cross-domain)
  • Web analytics
  • Profile data access (including real-time retrieval from various internal and external data sources).
  • Consent (and Permissions) Management
  • ID matching and data inlining (for example with Google Floodlight, Facebook Custom Audience, etc.)

As a pre-requisite to setting up the FunnelConnect service, Teavaro requires a sub-domain to be created for all domains of the sites to be integrated, using the fc. prefix. Depending on your region, Teavaro Client Integration team will provide the address for your CNAME DNS setup.

FunnelConnect Tag Integration

The FunnelConnect JavaScript Tag comes with automatically loaded configuration file including all configuration entries needed to handle the library calls and services (pipelines) required.

Depending on the consent requirements the Tag should only be loaded once the appropriate consent has been granted. The script should be loaded with every page load. If consent is later retracted, the script should no longer be loaded, which stops any tracking and data processing.

If the consent including consent notification is managed by Teavaro, the service will be enabled accordingly, and the Tag needs to include the teavaroConsentManager. The permissions (consent purposes) need to be defined as per client requirement. Teavaro Consent Manager does not currently support TCF.

Tag snippet (without consentManager):

var script = document.createElement("script")
script.type = "text/javascript"
script.src = "https://fc.{domain-name}/fcTag.js"
document.head.appendChild(script)

Script element that can be added to a page directly:

<script type="text/javascript" src="https://fc.{domain-name}/fcTag.js"></script>

Script Tag with teavaroConsentManager as it can be used in Custom HTML tag in GTM:

<script>  
  (function(){
    // load client config file
    var clientConfigScript = document.createElement('script'); 
    clientConfigScript.type = 'text/javascript';
    clientConfigScript.src = 'https://fc.{domain-name}/{domain-name with dot(s) hyphenated}.js"';
    
    document.head.appendChild(clientConfigScript).onload = function(){
      // load teavaroConsentManager.js
      var teavaroConsentManagerScript = document.createElement('script');
      teavaroConsentManagerScript.type = 'text/javascript';
      teavaroConsentManagerScript.src = 'https://fc.{domain-name}/teavaroConsentManager.js';
      document.head.appendChild(teavaroConsentManagerScript);
    }();
  })();
</script>

Services Description

Teavaro FunnelConnect services uses the concept of pipelines to define client specific service configuration, for example analytics data collection, specific customer identifiers as part of login or other identity resolution process.

Identity Resolution

Visitor identity resolution uses the Info API. Every site visitor, after accepting the required consent or acknowledging legitimate interest, gets a Universal Marketing ID (UMID) returned in JSON or JS variable, and Universal Marketing Device ID (UMDID) set as 1st party cookie.

Customer identity resolution uses the Ident or Click Ident APIs and returns either a pixel, empty response, or redirect location, and sets a UMDID cookie.

See details.

Web Analytics

The web analytics service uses the Track API to track users across sites and collect behaviour, contextual, and any other customer and transactional information from the data layer.

See details.

Profile Data

User profile data is retrieved as JSON object from TargetData that holds real-time updated visitor and customer profile data, including identifiers, attributes (key-value-pairs), marketing data permissions, consent or legitimate interest notification acknowledgments.

Additional data sources including Teavaro’s Customer Data Store and external systems, which are integrated via API through the FunnelConnect Info pipeline, can be made available in real-time. The inclusion of these additional data sources requires FunnelConnect Info pipeline configuration, which will be done by your Teavaro support team.

This JSON object is also stored in session or local storage as fcData key.

fcData

fcData can be used for a range of use cases. A common use case is personalisation using the attributes’ key-value-pairs for example via query string parameter or as payload with personalisation tools to deliver personalised content.

Available fields:

Field Type Values Optional Description
umid String No Marketing ID
attributes Object Yes Object with the associated attributes.
   [attributeName] String No An attribute key value pair for the identified profile.
identifiers Array of Objects   Yes  
  name String   No The mapped name of the identifier as configured in the pipeline.
  value String   No The value of the identifier.
nextBestIdentifiers Array of Objects   Yes  
  name String   No The mapped name of the next-best identifier as configured in the pipeline.
  value String   No The value of the next-best identifier.
permissions Object Yes
   LI-OM Boolean true or false Yes The value false equals opt out. Default value is true.
   LI-OPT Boolean true or false Yes The value false equals opt out. Default value is true.
   LI-NBA Boolean true or false Yes The value false equals opt out. Default value is true.
permissionsLastModification Object Yes
   LI-OM String ISO 8601 Date Yes Date and time in UTC this permission has been last modified by an user action. Format YYYY-MM-DD’T’hh:mm:ss’Z'.
   LI-OPT String ISO 8601 Date Yes Date and time in UTC this permission has been last modified by an user action. Format YYYY-MM-DD’T’hh:mm:ss’Z'.
   LI-NBA String ISO 8601 Date Yes Date and time in UTC this permission has been last modified by an user action. Format YYYY-MM-DD’T’hh:mm:ss’Z'.
notificationHistory Array Yes
   name String No Identifier of the notification.
   version Int No Version of the notification.
   permissions Array LI-OPT, LI-NBA, LI-OM No Permission this notification covers.
   date String ISO 8601 Date No Date and time in UTC this notification has been shown to this visitor. Format YYYY-MM-DD’T’hh:mm:ss’Z'.
notificationStatus Object Yes
   LI-OM Boolean true or false Yes This value is computed from the notficationHistory and denotes if a valid notification has been shown for the permission LI-OM. True equals a valid notification for this permission, false equals invalid.
   LI-OPT Boolean true or false Yes This value is computed from the notficationHistory and denotes if a valid notification has been shown for the permission LI-OPT. True equals a valid notification for this permission, false equals invalid.
   LI-NBA Boolean true or false Yes This value is computed from the notficationHistory and denotes if a valid notification has been shown for the permission LI-NBA. True equals a valid notification for this permission, false equals invalid.
state Int 1 or 0 No The state of the current identification. 0 indicates a prospect, 1 an identified customer.

Accessing fcData object data:

JSON.parse(localStorage.fcData)

Example data:

{
  "umid": "c3641a83-8ea8-412f-b234-ea91cfaa3242",
  "state": 1,
  "permissions": {
    "LI-NBA": true,
    "TransactionData": true,
    "LI-OPT": true,
    "CustomerData": true,
    "LI-OM": true
  },
  "permissionsLastModification": {
    "LI-NBA": "2019-12-20T17:10:35.003Z",
    "TransactionData": "2020-09-18T11:51:00.684Z",
    "LI-OPT": "2019-12-20T17:10:35.003Z",
    "CustomerData": "2020-12-17T17:37:41.826Z",
    "LI-OM": "2020-04-21T13:30:58.064Z"
  },
  "notificationHistory": [
    {
      "name": "APP",
      "version": 1,
      "permissions": ["LI-OM", "LI-OPT", "LI-NBA"],
      "date": "2020-04-21T13:18:55.880Z"
    },
    {
      "name": "WEB",
      "version": 1,
      "permissions": ["LI-OPT", "LI-OM", "LI-NBA"],
      "date": "2019-10-24T00:00:00Z"
    }
  ],
  "notificationStatus": {
    "LI-OM": true,
    "LI-OPT": true,
    "LI-NBA": true
  },
  "attributes": {
    "deviceName": "PC",
    "isp": "Vodafone Ltd",
    "domainName": "vodafone.co.uk",
    "browserType": "BR",
    "region": "England",
    "mobileBrand": "Vodafone UK",
    "city": "Warrington",
    "osFamily": "Windows",
    "browserFamily": "Chrome",
    "cc": "GB",
    "sample_name_1": "sample_value_1",
    "sample_name_2": "sample_value_2",
    "sample_name_3": "sample_value_3"
  }
}

Profile data is retrieved using the Info API. See details.

Consent (and Permissions) Management uses the Info API. It requires information about the permissions to be managed, for example online marketing, web analytics, personalisation, etc. The legal basis being consent or legitimate interest.

ID Matching and Data Inlining

Teavaro provides ID matching pipelines with a redirecting or forwarding functionality, sending required identifiers, for example the UMID, a hashed Email, etc. with any other required profile data to external systems like Google Floodlight, Facebook Custom Audience, and others.

Integration Support

For any integration support queries, please email ClientSDKs.