Providers, Dimensions & Metrics

All Metrics that can be retrieved and queried from the profiling API are grouped by Providers and Dimensions. These are central concepts that you need to understand when working with the API.

Providers

We have different ways of collecting data from our Panelists. Some are collected when a user registers as a panelist (e.g. gender) and some are collected over time by asking profiling questions to the panelist (e.g. Do you own a car?).

The different data is grouped in providers, which represents the way the data was collected.

Providers are uniquely identified by their name. Currently, we have five different providers available (with further providers likely to be added over time):

  • Basic Profiling - available for all panelists.
  • Global Questions - may be available for a panelist.

Each provider collects data for different dimensions.

Dimensions

A dimension represents a type of metric (you can think of them as questions). Examples of dimensions are:

  • Country of residence
  • Gender
  • Ages of children
  • Household income
  • Access to a car
  • Hashed email address
Hashed email addresses

Hashed email address dimensions are first lowercased and any leading and trailing whitespace is trimmed.
In addition, hashed normalized email addresses have:

  • removed dots for applicable domains (e.g. for gmail.com)
  • removed tags
  • normalized host (e.g. googlemail.com => gmail.com)
Data Types

Dimension data types can be any one of the following:

  • Category - fixed set of possible values (e.g. what is your marital status? Married, single, etc.)
  • Numeric - free number (e.g. how many children do you have?)
  • Text - free text (e.g. what suburb do you live in?)
  • DateTime - free date (e.g. when were you born?)
  • HashValue - A hash based on the indicated algorithm. Typically used when requesting hashed emails
Cardinality & Possible Values

Some dimensions only have one single answer (e.g. Country of residence), while others may have multiple answers (e.g. Ages of children), we refer to this as cardinality.

Dimensions may also have a fixed set of possible answers (e.g. Gender), while others may have an unspecified set of answers. Some are answered with numbers (e.g. Ages of children) while some are of type Yes/No (e.g. Do you own a car?) etc.

For the dimensions that have a fixed number of available answers, you can query the API to get the list of possible answers.

Each dimension is tied to one provider. When working with dimensions in the API, they are referenced by its provider and a unique number. So "Country of residence" is referenced by BasicProfiling:[9]

The actual answers (or values) to the dimensions are called metrics.

Metrics

A metric is the actual value collected. The number 23 can be a metric. In isolation that number doesn't make sense unless its tied to a dimension. If the dimension is "Age" for example, then that metric becomes understandable.

When accessing the API some metrics will contain the actual answer in clear text, while some will have a Variable ID that identifies one of the possible answers.

Specifying dimensions in the API

When accessing endpoints in the API that accept dimensions as a parameter (typically the Query requests, where you want to specify which type of metrics you want), the dimensions should be specified in the following format:

ProviderName1 : [Comma separated list of dimension IDs] , ProviderName2 : [Comma separated list of dimension IDs] , ...

So if you would like to query "Age", "Gender" (from Basic Profiling) and "Ages of children" (from Global Questions) the dimension part of the json should be written as:

"dimensions": {BasicProfiling:[0,2],GlobalQuestions:[14]}