Skip to main content
Skip table of contents

Info Ident Track

The Info Ident Track API combines a number of capabilities into a single GET or POST request. It enables you to …

  • create a user profile, establish a Unified Marketing ID, and sets a server cookie.

  • retrieve profile data using cookie and / or customer identifiers as lookup IDs.

  • handle all identity resolution operations in real-time, including complex configurable backend operations leading to profile merge or profile switch.

  • capture full analytics tracking data, leveraging any data layer, for example Google’s data layer or Tealium’s utag, etc. It can also be a combination of different data layers.

  • enrich the data response, profile, and events stream with data from Teavaro internal (IP2Location, Udger, etc.) as well as external (for example data cloud) systems in real time.

  • inline data following the required transformation, for example to external campaign delivery and content personalisation systems.

Request

Depending on sending a payload, use the GET or POST method.

Interface URI:

CODE
https://fc.{your website domain}/op/{pipeline}/info?attributes&identifiers&out

Request Headers

The following request header should be provided: Content-Type: application/json

HTTPOnly Cookie

The API sets a umdid cookie, which is used as lookup identifier.

CODE
umdid=OTBlNjgxZDAtZTEzZi00NTYwLTllYzEtY2Y5NzJlMTlkZjcyfDE1ZDI2NTY4LWVmMzgtNGRiMy05Y2NkLTJmY2YzODI1ODE5Mnwy; Max-Age=31536000; Expires=Thu, 19 Feb 2026 12:18:26 GMT; SameSite=None; Path=/; Domain={your wibsite domain}; Secure; HTTPOnly

The umdid cookie value is a base 64 encoded string consisting of the following values delimitered by pipe:

umdid|umid|type

Name

Type

Description

umdid

UUID

The Unified Marketing Device Identifier, specific to a device.

umid

UUID

The Unified Marketing Identifier, specific to a profile.

type

Digit

A number between 0 and 2 describing the current profile identified method.

0 = anonymous visistor profile
1 = login identified customer profile
2 = network identifier customer profile

Sample:

CODE
OTBlNjgxZDAtZTEzZi00NTYwLTllYzEtY2Y5NzJlMTlkZjcyfDE1ZDI2NTY4LWVmMzgtNGRiMy05Y2NkLTJmY2YzODI1ODE5Mnwy

Decoded:

CODE
90e681d0-e13f-4560-9ec1-cf972e19df72|15d26568-ef38-4db3-9ccd-2fcf38258192|2

Parameters

All parameters are optional. Some parameters need to be configured in the pipeline, otherwise they are just ignored.

Name

Description

attributes

Returns an array of attribute objects.

identifiers

Returns an array of identifier objects. These are direct profile identifiers.

nbidentifiers

Returns an array of “next best” identifier objects. These are linked direct profile identifiers, i.e. association between different profiles as per defined linking rules.

notifications

Returns an array of acknowledged notification objects.

permissions

Returns an objects with a list of permissions and boolean flags / status.

out

Using out query string parameter with json value returns a JSON object and js returns a JS variable with a JSON object (var fcData = {}). The default response is js in case the out paramter is not defined.

Payload

The request payload is a JSON with the following top-level fields:

Field name

Type

Description

data

Array of objects

Used to send analytics and consent data. The field is optional.

permission

Object

Used to send list of permissions with boolean status. The field is optional.

notification

Array of objects

Used to send the acknowledged consent notification. The field is optional.

Sample:

JSON
{
  "data": [
    {
      "action": [
        {
          "name": "ui_interaction",
          "action": "view",
          "category": "consent",
          "label": "consent_window_show",
          "timestamp": 1738065412241
        },
        {
          "name": "ui_interaction",
          "action": "click",
          "category": "consent",
          "label": "accepted",
          "timestamp": 1738065416271
        }
      ],
      "notification": [
        {
          "name": "MAIN_CS",
          "version": 1,
          "permissions": [
            "CS-OM",
            "CS-OPT",
            "CS-NBA"
          ],
          "date": 1738065418765
        }
      ],
      "page": {
        "name": "www.brand-demo.com",
        "action": "navigation",
        "url": "https://www.brand-demo.com/",
        "timestamp": 1738065412058
      },
      "permission": {
        "CS-OM": true,
        "CS-NBA": true,
        "CS-OPT": true
      }
    }
  ],
  "permission": {
    "CS-OM": true,
    "CS-NBA": true,
    "CS-OPT": true
  },
  "notification": [
    {
      "name": "MAIN_CS",
      "version": 1,
      "permissions": [
        "CS-OM",
        "CS-OPT",
        "CS-NBA"
      ]
    }
  ]
}

Info - Retrieve Profile Data

To fetch data from the backend and external system(s), use query string parameters to define what area of data you want to receive. See available Parameters.

Ident - Identity Resolution

Teavaro supports any identifier and the identifier name can be configured per account and pipeline.

This table provides commonly used identifiers:

Name

Description

customerId

A customer identifier string obtained for example through login.

email_sha256

A hashed email.

enemail

An encrypted email.

msisdn_sha256

A hashed mobile phone number.

profileId

A profile identifier.

mt1

The Utiq martechpass for mobile network connection.

mt2

The Utiq martechpass for fixed (Wifi) network connection.

Others

We support any customer identifier.

Track - Capture Data Layer Data

Here you can pass any tracking information for example for analytics, your data warehouse, or your data cloud. The Web SDK enables you to specify what data. For example you can specify the data layer by name and the variables with their position if there is a nested JSON data structure. If you are calling the API directly not through the Web SDK, it is recommended that you pass tracking data under the data field.

JSON
{
  "data": [
    {
      "action": [
        {}
      ]
    }
  ]
}

Cookie Consent Management

You can pass cookie consent from your Consent Management Provider in the payload or as query string parameter. We can also capture the cookie consent information from a cookie if that is set as first party cookie available to our subdomain. The pipeline provides regex data capture configuration capabilities to get the information required.

Note that if you are setting the consent cookie under domain .www.yourDomain.com we won’t be able to see it with fc.yourDomain.com. You should therefore set it under .yourDomain.com.

The Consent Management Provider cookie consent information can then be stored in the profile as well as the events data and used for consent compliance checks before capturing, processing, or inlining data.

Teavaro Permission Management

Teavaro provides its own server-side managed consent and marketing permissions management solution. This solution handles also imported marketing permissions.

It provides the required notification including version control and historisation against the user’s profile.

The permission field object holding a list of defined permissions can be configured as required including the naming of permissions.

The notification field array provides also configurable options.

Sample:

JSON
{
  "permission": {
    "CS-OM": true,
    "CS-NBA": true,
    "CS-OPT": true
  },
  "notification": [
    {
      "name": "MAIN_CS",
      "version": 1,
      "permissions": [
        "CS-OM",
        "CS-OPT",
        "CS-NBA"
      ]
    }
  ]
}

Response

The response content type is application/json. There are two response modes, JSON and JS.

JSON
{"umid":"688173f8-026e-4b41-9989-0c3bf6445f6b","state":0}

JS
var fcData = {"umid":"dd45976d-7150-4f7c-b090-2df5308d8265","state":0};

Data Structure

Available fields:

Field name

Type

Description

umid

UUID

The Unified Marketing Identifier, which ensures distinct recognition within the system.

state

Integer

Represents the current state of the profile:
0 = anonymous visitor
1 = identifier customer

identifiers

Array

Consists of identifier objects, each with a `name` and `value` pair

nextBestIdentifiers

Array

Provides linked additional identifiers

permissions

Object

Contains boolean flags for various permission entries (e.g., "name_1", "name_2", "name_n"), to manage access rights based on user consent / permissions.

permissionsLastModification

Object

Records the last modification timestamps for permissions.

notificationHistory

Array

Lists notification records / objects, where each entry details the notification `name`, `version`, `uxvariant`, relevant `permissions`, and the `date` it was issued.

notificationStatus

Object

An object indicating the current status of notifications acknowledged for different permissions.

attributes

Object

An object storing a list of attributes with their corresponding values. These attributes can range from user profile attributes to personalisation recommendations.

Sample:

JSON
{
  "umid": "15d26568-ef38-4db3-9ccd-2fcf38258192",
  "state": 1,
  "identifiers": [
    {
      "name": "ABC",
      "value": "XXX"
    }
  ],
  "nextBestIdentifiers": [],
  "permissions": {
    "name_1": false,
    "name_2": true,
    "name_n": true
  },
  "permissionsLastModification": {
    "name_1": "2025-02-14T11:09:09.134Z",
    "name_2": "2025-02-14T11:09:09.134Z"
  },
  "notificationHistory": [
    {
      "name": "NAME_1",
      "version": 1,
      "uxvariant": "String",
      "permissions": [
        "name_1",
        "name_2",
        "name_n"
      ],
      "date": "2024-09-19T13:23:34.057Z"
    }
  ],
  "notificationStatus": {
    "name_1": true,
    "name_2": true,
    "name_n": true
  },
  "attributes": {
    "name_1": "value_1",
    "name_2": "value_2",
    "name_n": "value_n"
  }
}

HTTP Status Codes

Code

Name

Description

400

Bad Request

The request does not conform to the specification.

404

Not Found

Incorrect request method or path or pipeline does not exist.

413

Payload Too Large

The request headers or body are larger than the configured maximum on the server.

500

Internal Server Error

An error occurred on the server side. For example the DB access timed out.

Sample curl

JS
curl -v 'https://funnelconnect.publisher-demo.media/op/publisher-demo-info/info?out=json&attributes&notifications&permissions&identifiers' \
  -H 'Accept: application/json, text/plain, */*' \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "data": [
    {
      "action": [
        {
          "name": "ui_interaction",
          "action": "view",
          "category": "consent",
          "label": "consent_window_show",
          "timestamp": 1738065412241
        },
        {
          "name": "ui_interaction",
          "action": "click",
          "category": "consent",
          "label": "accepted",
          "timestamp": 1738065416271
        }
      ],
      "notification": [
        {
          "name": "MAIN_CS",
          "version": 1,
          "permissions": [
            "CS-OM",
            "CS-OPT",
            "CS-NBA"
          ],
          "date": 1738065418765
        }
      ],
      "page": {
        "name": "www.brand-demo.com",
        "action": "navigation",
        "url": "https://www.brand-demo.com/",
        "timestamp": 1738065412058
      },
      "permission": {
        "CS-OM": true,
        "CS-NBA": true,
        "CS-OPT": true
      }
    }
  ]
}'

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.