Tatari

📘

This integration is currently in beta. Contact your MetaRouter support team to get started.

What Is Tatari?

Tatari is a TV advertising measurement and media-buying platform that helps brands plan, buy, and measure linear and streaming television campaigns. It brings together audience data, spot-level TV airings, and web conversion signals to connect advertising exposure to downstream outcomes. Through its Vault for Brands offering, Tatari ingests web and marketing events so advertisers can tie on-site activity back to their TV and streaming media. This supports return-on-ad-spend reporting and cross-device attribution across a brand's media investment.


Product Type: Advertising
Integration Type: Starter Kit
Event Source Type: Web
Event Scope: Full-Funnel Events


Capabilities

  • Sends server-side web and conversion events directly to Tatari's Vault for Brands Events API.
  • Supports full-funnel events across browsing, cart, checkout, and order lifecycle actions.
  • Batches events for efficient server-to-server delivery.
  • Sends hashed email and IP identifiers to support cross-device attribution.
  • Maps order and revenue fields required for return-on-ad-spend reporting.

Considerations

  • Event properties pass through to the args object. Tatari forbids PII in args, url, and referrer_url, so event properties must be kept free of personal data. Send raw email only through the hashed hem_* fields, and keep user_id an opaque, non-PII identifier.
  • For Order Completed, return-on-ad-spend reporting relies on the reserved keys args.order_id and args.order_total. The starter kit maps these explicitly, with order total sourced from properties.total.
  • distinct_id (mapped from messageId) enables deduplication of retried events within a single UTC calendar day, where the most recently received event wins.
  • At least one valid IP address (ipv4 or ipv6) is required per event, or the event is rejected. Tatari prefers IPv4 and monitors IPv4 coverage (targeting 95%+ on conversion events) for cross-device matching.
  • session_id is populated from MetaRouter's anonymousId, a stable per-browser identifier. Tatari re-sessionizes server-side using event timestamps and prefers that clients do not apply their own session timeout.
  • Batch delivery is capped at 3 MB per request. The starter kit sends batches of 500 events, which typically stays within this limit.
  • The API enforces rate limits per API key and returns 429 Too Many Requests when those limits are exceeded, at which point the HTTP forwarder retries the request with backoff. The /v1/batch endpoint is subject to lower per-second limits than the single-event endpoint.

Limitations

  • Rate and volume limits are tied to your API key tier; increases are arranged directly with Tatari.

Starter Kit Setup Guide

1. Gather Credentials

  • Ask vendor representatives for the following credentials:
    • API_KEY

2. Add a Tatari Integration

  • From the integration library, add a Tatari integration. Then, fill out the Connection Parameters:
Connection ParameterDescription
BASE_URLBase API endpoint. Preconfigured to https://api.vaultdcr.com/webevents and not expected to change unless advised by your Tatari representative.
API_KEYAPI key sent in the x-api-key header to authenticate requests.

3. Configure Event Mapping

  • MetaRouter provides all of the event mappings that Tatari integrations typically require. You may add custom events, parameters, or mappings in accordance with Tatari's API documentation.

4. Deploy to Pipeline

  • In the Pipelines tab, add your Tatari integration.
  • Select the correct integration revision.
  • Click Add Integration to finalize deployment.

Event Mappings

Global

Global mappings will be applied to all events. If your parameter names do not match the Expected Inputs provided, you will need to overwrite the Inputs provided with your own.

Output KeyDescriptionExpected Input
event_dt RequiredString: Event timestamp in RFC 3339 format with a required timezone.timestamp
session_id RequiredString: Stable per-browser session identifier.anonymousId
user_agent RequiredString: User-agent string for the request.context.userAgent
url RequiredString: Page URL where the event occurred; must start with http:// or https://.context.page.url
ipv4 * RequiredString: User IPv4 address. At least one of ipv4 or ipv6 is required.context.ipv4
ipv6 * RequiredString: User IPv6 address. At least one of ipv4 or ipv6 is required.context.ipv6
referrer_urlString: Referrer URL of the page.context.page.referrer
user_idString: Opaque ID for a logged-in user; matches events across devices. Must not contain unhashed PII.userId
distinct_idString: Unique event ID used for deduplication.messageId
hem_sha256String: SHA-256 hex digest of the normalized email.Expression – hashes traits.email after lowercasing and trimming

Event Specific

Page

Output KeyDescriptionExpected Input
event RequiredString: Event name identifying the activity.Enrichment – 'page'
argsObject: Event metadata passed through from event properties.properties

Products Searched

Output KeyDescriptionExpected Input
event RequiredString: Event name identifying the activity.Enrichment – 'products_searched'
argsObject: Event metadata passed through from event properties.properties

Product List Viewed

Output KeyDescriptionExpected Input
event RequiredString: Event name identifying the activity.Enrichment – 'product_list_viewed'
argsObject: Event metadata passed through from event properties.properties

Product Clicked

Output KeyDescriptionExpected Input
event RequiredString: Event name identifying the activity.Enrichment – 'product_clicked'
argsObject: Event metadata passed through from event properties.properties

Product Viewed

Output KeyDescriptionExpected Input
event RequiredString: Event name identifying the activity.Enrichment – 'product_viewed'
argsObject: Event metadata passed through from event properties.properties

Product Added

Output KeyDescriptionExpected Input
event RequiredString: Event name identifying the activity.Enrichment – 'product_added'
argsObject: Event metadata passed through from event properties.properties

Product Removed

Output KeyDescriptionExpected Input
event RequiredString: Event name identifying the activity.Enrichment – 'product_removed'
argsObject: Event metadata passed through from event properties.properties

Cart Viewed

Output KeyDescriptionExpected Input
event RequiredString: Event name identifying the activity.Enrichment – 'cart_viewed'
argsObject: Event metadata passed through from event properties.properties

Checkout Started

Output KeyDescriptionExpected Input
event RequiredString: Event name identifying the activity.Enrichment – 'checkout_started'
argsObject: Event metadata passed through from event properties.properties

Payment Info Entered

Output KeyDescriptionExpected Input
event RequiredString: Event name identifying the activity.Enrichment – 'payment_info_entered'
argsObject: Event metadata passed through from event properties.properties

Order Completed

Output KeyDescriptionExpected Input
event RequiredString: Event name identifying the activity.Enrichment – 'order_completed'
args.order_idString: Order identifier; reserved ROAS key.properties.order_id
args.order_totalNumber: Order total; reserved ROAS key.properties.total
args.revenueNumber: Order revenue amount.properties.revenue
args.currencyString: ISO 4217 currency code.properties.currency (uppercased)
args.affiliationString: Store or affiliation name.properties.affiliation
args.checkout_idString: Checkout identifier.properties.checkout_id
args.couponString: Coupon code applied to the order.properties.coupon
args.discountNumber: Discount amount applied to the order.properties.discount
args.shippingNumber: Shipping charge amount.properties.shipping
args.taxNumber: Tax amount on the order.properties.tax
args.productsArray: Products included in the order.properties.products

Promotion Clicked

Output KeyDescriptionExpected Input
event RequiredString: Event name identifying the activity.Enrichment – 'promotion_clicked'
argsObject: Event metadata passed through from event properties.properties

Promotion Viewed

Output KeyDescriptionExpected Input
event RequiredString: Event name identifying the activity.Enrichment – 'promotion_viewed'
argsObject: Event metadata passed through from event properties.properties

Required & Recommended Identifiers

These identifiers must be mapped to Tatari in order for successful user matching to occur. Without these IDs, any events sent to Tatari may not be accurately reflected in reporting.

AttributeExampleSync Injector Required?
session_id Requiredb171a9b06ce011ecafcd1b209be8601bNo
ipv4 *Required203.0.113.1No
ipv6 *Required2001:0db8:85a3:0000:0000:8a2e:0370:7334
hem_sha256 Recommended31c5543c1734d25c7206f5fd591525d0295bec6fe84ff82f946a34fe970a1e66No
user_id Recommendeduser-abcNo
distinct_id Recommendedd29f8a3b-7c21-4e8a-9f12-6d5e8a3b7c21No

*At least one of ipv4 or ipv6 is required per event. IPv4 is preferred for cross-device matching.


Integration Validation

To confirm that your data is being received and processed as expected, coordinate with your Tatari representative to review event delivery and validate results on Tatari's side.

Under the ACCEPT_ANY_VALID batch policy, a mixed batch returns a 207 (a 2xx) with rejected events listed only in errors_by_index. Because delivery is classified by status code, individually rejected events in a partial accept are not retried or surfaced as errors. Periodically confirm received event counts with your Tatari contact until response-body error classification is available.