Custom Identity Syncs

Overview

Custom Identity Syncs is a flexible and customizable solution within the MetaRouter platform that allows users to sync third-party IDs with MetaRouter using various sync methods. These methods include Fetch, matchPixel, urlParams, localStorage, and First Party cookie. Custom Identity Syncs enable customers to connect to homegrown identity services or create identity syncs into downstream tools that MetaRouter does not currently support, providing a versatile technical solution for identity synchronization.


Prerequisites

To effectively use Custom Identity Syncs, ensure you have:

  • Access to the MetaRouter platform and Sync Injector settings.
  • Basic understanding of the identity synchronization requirements and the systems involved.
  • Necessary credentials and access to the third-party systems and homegrown services for identity sync.
  • Are solid understand of the parameters required for each method and the downstream tooling you are trying to sync with.

Configuring Custom Identity Syncs

With the necessary information and access, you can begin leveraging Custom Identity Syncs to streamline your identity synchronization setup:


Custom Identity Syncs Workflow

  1. Navigate to the Sync Injector Configuration
    • Access the MetaRouter platform and navigate to the Sync Injector configuration settings when building a new file (or editing an existing file).
  2. Select Sync Methods
    • Select the sync method that is required to collect the IDs from the downstream too. (Fetch, matchPixel, urlParams, localStorage, and First Party cookie)
  3. Define Sync Methods
    • Create and configure the selected sync method using the JSON input box. The details on each methods required parameters is detailed below.
  4. Save and Deploy New File
    • Once saved, make sure you download and deploy the new file so the Sync Injector will perform the sync activities you have outlined in the configuration steps above.

Custom Sync Configurations

1. URL Params

Collects multiple URL parameters from the page URL and sends them to the server. Each URL parameter can be stored for a specified amount of time.

JSON Request

jsonCopy code
{
   "urlParameters": {
     "anyParamName": "string"
   }
}

UI Fields - URL Parameters

An array of URL parameters, each with the following fields:

  • Parameter: The name of the URL parameter to be collected.
  • Time to Live: The time to live of the URL parameter.

Example:

jsonCopy code
{
  "urlParameters": [
    {
      "parameter": "cid",
      "timeToLive": 10
    }
  ]
}

2. Fetch

Fetch syncs are used to fetch data from a URL and extract data from the response. The data can be extracted using JSONPath or from the response headers and then stored in the browser's local storage.

JSON Request

jsonCopy code
{
   "fetchSync": {
     "fetchName_identityName": "data"
   }
}

UI Fields - Fetch Settings

An array of fetch settings, each with the following fields:

  • name: The name of the fetch sync.
  • cookieSuccessAge: The time in milliseconds that the cookie will be stored for if the fetch is successful.
  • cookieFailureAge: The time in milliseconds that the cookie will be stored for if the fetch fails.
  • url: The URL to fetch the data from.
  • method: The HTTP method to use.
  • maxTimeout: The maximum time in milliseconds to wait for the fetch to complete.
  • jsonPathIdentities: An array of strings representing the path to the data in the JSON response.
  • headerIdentities: The name of the header to extract.

Example:

jsonCopy code
{
  "name": "myIdentityVendor",
  "fetchSettings": {
    "cookieSuccessAge": 1000,
    "cookieFailureAge": 1,
    "url": "https://api.identity.com/idsync/ex/?partner_id=abc",
    "method": "GET",
    "maxTimeout": 1000
  },
  "jsonPathIdentities": [
    {
      "jsonPath": [
        "cookies",
        "id",
        "value"
      ],
      "name": "id",
      "required": true}
  ],
  "headerIdentities": []
}

3. matchPixel

Fires multiple match pixels, each with a unique URL and a macro. The match ID macro is replaced with the ajsID. This sync is used to create a match table in a third-party system.

JSON Request

jsonCopy code
{
   "matchPixel": {
     "p1": "timestamp",
     "p2": "timestamp"
   }
}

UI Fields - Match Pixels

An array of match pixels, each with the following fields:

  • URL: The URL of the match pixel.
  • Match ID Macro: The macro that will be replaced with the ajsID.
  • Time to Live: The time to live of the match pixel.

Example:

jsonCopy code
{
  "matchPixels": [
    {
      "url": "https://example.com?matchID=__MATCH_ID__",
      "matchIDMacro": "__MATCH_ID__",
      "timeToLive": 10
    }
  ]
}

4. localStorage

This sync injector syncs local storage keys from any domain where the tag is placed. Multiple keys can be configured by passing an array of key names.

JSON Request

jsonCopy code
{
   "ls": {
     "example": "value from the local storage key 'example'"
   }
}

UI Build Settings

  • Key Names: The names of the keys that are saved in local storage.

5. First Party Cookie

This sync injector syncs first party cookies from any domain where the tag is placed. Multiple cookies can be configured by passing an array of cookie names.

JSON Request

jsonCopy code
{
   "fpc": {
     "cookieName": "value from first party cookie"
   }
}

UI Build Settings

  • Cookie Names: The names of the cookies that will be synced.

  1. NameSpace

This sync injector is used to sync namespace variable data back to the ingestor. If you have internal systems saving variables, like identifiers, to namespace you can now have the sync injector go and retrieve these and include in the payload that is sent downstream.

For example, you can get data from: window.users.id, window.preferences.color

Multiple keys can be configured by passing an array of key names.

JSON Request

{
   "namespaceData": {
     "uuid": "value from 'window.users.id'",
     "color": "value from 'window.preferences.color'",
   }
}

UI build settings

  • Key Names

The names of the keys with the name and the path from where to get the data
For example:

[
  {
    "name": "uuid",
    "path": "users.id"
  },
  {
    "name": "color",
    "path": "preferences.color"
  }
]

Known Limitations

The primary limitations of BYO Syncs include:

  1. Technical Complexity: Setting up and managing custom syncs requires a good understanding of the target system's capabilities. This feature is designed for technical users who are comfortable with these complexities.
  2. Manual Configuration: Users must manually configure the sync methods and parameters, which may require a learning curve for those unfamiliar with the process.

Release State

BYO Syncs has been quietly released so we can internally use for some of our customers use cases. The tooling is in enterprise, and we will start to make more noise about it in the market as we test and refine the experience.

How Custom Identity Syncs Works

Custom Identity Syncs allows users to create custom syncs tailored to their specific needs by utilizing various sync methods. These methods enable precise control over the synchronization process, ensuring accurate and reliable data integration.

Diverse Sync Methods:

  • Fetch: Fetch data from a URL and extract information using JSONPath or response headers.
  • matchPixel: Fire match pixels to create match tables in third-party systems.
  • urlParams: Collect and store URL parameters from the page URL.
  • localStorage: Sync local storage keys from any domain.
  • First Party Cookie: Sync first party cookies from any domain.

Benefits of Custom Identity Syncs

Custom Identity Syncs addresses several critical issues in identity synchronization:

  • Enhanced Flexibility: Multiple sync methods accommodate diverse needs and ensure compatibility with various systems.
  • Customizable Integration: Users can create and manage custom identity syncs for both homegrown services and third-party tools.
  • Improved Data Accuracy: Precise control over synchronization ensures accurate and reliable data integration.
  • Efficiency: Tailored sync methods reduce time and effort needed for integration, streamlining the data synchronization process.