These docs describe the FunnelConnect JavaScript integration via simple tag integration and JavaScript APIs.
FunnelConnect is a web service, which provides:
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.
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>
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.
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.
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.
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 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.
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.
For any integration support queries, please email ClientSDKs.