Kargo

📘

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

What Is Kargo?

Kargo is a digital advertising platform that helps brands and publishers run programmatic and direct-sold campaigns across premium inventory. It provides solutions for audience targeting, measurement, and optimization, supporting identity-driven advertising use cases.


Product Type: Advertising

Integration Type: Starter Kit & ID Sync

Event Source Type: Web

Event Scope: Full-Funnel Events


Capabilities

  • Sends server-side full-funnel events to Kargo for reporting and activation.
  • Uses Kargo’s puid identity to populate lex_id for event matching.

Considerations

  • This starter kit only sends events when a Kargo puid has been synced and is present on the event payload.
  • Coordinate with Kargo to allowlist your domain for credentialed CORS requests to the Kargo sync endpoint.
  • Kargo accepts custom event names. Use consistent naming to ensure accurate reporting.

Limitations

  • Event name length cannot exceed 100 characters.
  • The params object can include a maximum of 20 keys.
  • Each params key cannot exceed 100 characters.
  • Each params value cannot exceed 300 characters.

Identity Sync

  • Sync Available: Yes

  • Required for Starter Kit: Yes

  • Prerequisites: Requires Kargo to allowlist your domain for CORS on crb.kargo.com and return credentialed CORS headers.

  • Documentation: See Additional Kargo Sync Documentation

Sync Details

  • Captures Kargo’s puid identifier used for event matching.
  • Stores the identifier in first-party storage for a configurable duration.
  • Adds the identifier to server-side events under context.providers.kargo.puid.
  • Without the identifier from the sync, events will be filtered and not sent to Kargo.

Starter Kit Setup Guide

1. Deploy the Kargo Sync

  • To collect the sync values (e.g., puid), you must implement a Kargo ID sync. Refer to the following documentation to complete the setup: Kargo - ID Sync Guide.

2. Gather Credentials

  • Ask your Kargo representative for the following credentials:
    • PARTNER_ID (Kargo partner ID)

3. Add a Kargo Integration

  • From the integration library, add a Kargo integration. Then, fill out the Connection Parameters:
Connection ParameterDescription
PARTNER_IDThe partner ID of the Kargo account you are sending data to.

4. Configure Event Mapping

  • MetaRouter provides all of the event mappings that Kargo integrations typically require. You may add custom events, parameters, or mappings in accordance with Kargo’s requirements.

5. Deploy to Pipeline

  • In the Pipelines tab, add your Kargo 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
partner_id RequiredString: Kargo partner identifier for routing and reporting.$$PARTNER_ID$$
client_refererString: Referrer URL of the page where the event occurred.context.page.referrer
page_urlString: URL of the page where the event occurred.context.page.url

Event Specific

Identify

Output KeyDescriptionExpected Input
event RequiredString: Name of the event being sent to Kargo.Enrichment – hardcoded value identify
params RequiredObject: Custom parameters sent to Kargo for this event.traits
params.lex_id RequiredString: Kargo user identifier used for event matching.context.providers.kargo.puid

Page

Output KeyDescriptionExpected Input
event RequiredString: Name of the event being sent to Kargo.Enrichment – hardcoded value page
params RequiredObject: Custom parameters sent to Kargo for this event.properties
params.lex_id RequiredString: Kargo user identifier used for event matching.context.providers.kargo.puid

Products Searched

Output KeyDescriptionExpected Input
event RequiredString: Name of the event being sent to Kargo.Enrichment – hardcoded value products_searched
params RequiredObject: Custom parameters sent to Kargo for this event.properties
params.lex_id RequiredString: Kargo user identifier used for event matching.context.providers.kargo.puid

Product List Viewed

Output KeyDescriptionExpected Input
event RequiredString: Name of the event being sent to Kargo.Enrichment – hardcoded value product_list_viewed
params RequiredObject: Custom parameters sent to Kargo for this event.properties
params.lex_id RequiredString: Kargo user identifier used for event matching.context.providers.kargo.puid

Product Clicked

Output KeyDescriptionExpected Input
event RequiredString: Name of the event being sent to Kargo.Enrichment – hardcoded value product_clicked
params RequiredObject: Custom parameters sent to Kargo for this event.properties
params.lex_id RequiredString: Kargo user identifier used for event matching.context.providers.kargo.puid

Product Viewed

Output KeyDescriptionExpected Input
event RequiredString: Name of the event being sent to Kargo.Enrichment – hardcoded value product_viewed
params RequiredObject: Custom parameters sent to Kargo for this event.properties
params.lex_id RequiredString: Kargo user identifier used for event matching.context.providers.kargo.puid

Product Added

Output KeyDescriptionExpected Input
event RequiredString: Name of the event being sent to Kargo.Enrichment – hardcoded value product_added
params RequiredObject: Custom parameters sent to Kargo for this event.properties
params.lex_id RequiredString: Kargo user identifier used for event matching.context.providers.kargo.puid

Product Removed

Output KeyDescriptionExpected Input
event RequiredString: Name of the event being sent to Kargo.Enrichment – hardcoded value product_removed
params RequiredObject: Custom parameters sent to Kargo for this event.properties
params.lex_id RequiredString: Kargo user identifier used for event matching.context.providers.kargo.puid

Cart Viewed

Output KeyDescriptionExpected Input
event RequiredString: Name of the event being sent to Kargo.Enrichment – hardcoded value cart_viewed
params RequiredObject: Custom parameters sent to Kargo for this event.properties
params.lex_id RequiredString: Kargo user identifier used for event matching.context.providers.kargo.puid

Checkout Started

Output KeyDescriptionExpected Input
event RequiredString: Name of the event being sent to Kargo.Enrichment – hardcoded value checkout_started
params RequiredObject: Custom parameters sent to Kargo for this event.properties
params.lex_id RequiredString: Kargo user identifier used for event matching.context.providers.kargo.puid

Payment Info Entered

Output KeyDescriptionExpected Input
event RequiredString: Name of the event being sent to Kargo.Enrichment – hardcoded value payment_info_entered
params RequiredObject: Custom parameters sent to Kargo for this event.properties
params.lex_id RequiredString: Kargo user identifier used for event matching.context.providers.kargo.puid

Order Completed

Output KeyDescriptionExpected Input
event RequiredString: Name of the event being sent to Kargo.Enrichment – hardcoded value order_completed
params RequiredObject: Custom parameters sent to Kargo for this event.properties
params.lex_id RequiredString: Kargo user identifier used for event matching.context.providers.kargo.puid

Required & Recommended Identifiers

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

AttributeExampleSync Injector Required?
lex_id Requiredefaa6e95-8f9e-25bf-d0ec-6bbbcf92ce59Yes

Integration Validation

Confirm with your Kargo representative that events, parameters, and the lex_id identifier are being received and processed correctly.