(Pilot) ZMS Campaign Daily

Important note !!!

Pilot Phase: This dataset is currently in a pilot phase and is available exclusively to a selected subset of partners.

KPI Aggregation & Granularity: The calculated KPIs in this dataset—specifically ropi, roas, cvr, ctr, cpc, roas_campaign —are provided at the baseline granularity of campaign_id, dt, device and country. If you alter or roll up the granularity of your analysis, do not directly sum (SUM) or average (AVG) these KPI columns. Instead, recalculate the metrics using the explicit formulas mentioned in the schema description below (i.e., aggregate the base metrics first, then apply the formula). Example usage can be seen in the Example Measures section.

Overview

This dataset delivers daily performance insights for Zalando Partner Marketing Services (ZMS) campaigns. The dataset is structured at the campaign, country, and device level granularity.

Using metrics such as viewable_impressions, ad_clicks, budget_spent, and items_sold, partners can monitor how their overall campaigns perform across different platforms (e.g. App vs. Web, Country, etc.).

These insights enable partners to evaluate campaign effectiveness, optimise macro-level campaign budgets, and analyze platform-specific consumer behavior without the granularity of individual SKUs.

Property Description
Data granularity campaign_id, campaign_objective, dt, country, device
History available Data available from 2024-01-01
Update frequency Daily
Data retention Past 2 years + current year
Primary keys campaign_id, dt, country, device
Partition columns dt
SLOs Daily around 1:00 PM UTC (for the previous day's data)
Notice period for changes See Versioning and Deprecation Policy
Support Support available via partner-care@zalando.de.
No 24/7 support available.

Data Refresh Strategy

This dataset requires a full load approach rather than incremental updates, meaning partners should overwrite their entire local table each time they retrieve the data.

  • Why full load? Historical campaign and attribution data can change retroactively for up to 2 years (for example, due to late-reported sales or financial adjustments).
  • Easy to manage: Because the overall dataset size is highly manageable, completely overwriting the data is fast, reliable, and keeps downstream systems simple.
  • Tracking refreshes: Partners can reference the updated_at timestamp column to verify exactly when the data was last refreshed.

Table Reference

zms_campaign_daily_share.direct_data_sharing.zms_campaign_daily

Schema

Column name Format Description
account_id string Zalando Partner Account ID (included as partition key for downstream processing).
campaign_id string Unique ID of the campaign (n_code).
campaign_name string Name of the campaign.
merchant_id string Zalando Partner ID (BPID).
campaign_objective string Objective of the campaign. One of: Conversion, Consideration, Awareness.
start_date date Campaign start date.
end_date date Campaign end date.
dt date Event record date.
country string ISO country code of campaign (e.g. DE, AT).
device string Device options of campaigns (e.g. App, Web).
viewable_impressions bigint The number of times a user has been exposed to at least 50% of your ad content (25% for big ad format).
ad_clicks bigint The number of times a user has clicked on your ads.
budget_spent double Your total campaign budget, including discounts, vouchers and free media.
partner_spent double The amount you have invested in your campaign, excluding discounts, vouchers and free media.
items_sold bigint The number of items sold after users clicked on your ads (before cancellations and returns).
attributed_gmv double The value of items sold after users clicked on your ads (before cancellations and returns).
ropi double Return On Partner Invest: Calculated as Attributed GMV divided by Partner Invest and excluding any budget spent on TikTok, Pinterest and/or Snapchat.

Formula: sum(attributed_gmv)/sum(partner_spent)
roas double Return On Ad Spend: Calculated as Attributed GMV divided by Budget Spent and excluding any budget spent on TikTok, Pinterest and/or Snapchat.

Formula: sum(attributed_gmv)/sum(budget_spent)
cvr double Conversion Rate: The percentage of clicks on your ads that have led to sales (excluding clicks from TikTok, Pinterest and/or Snapchat).

Formula: sum(items_sold)/sum(ad_clicks)
ctr double Click-through Rate: Calculated as Clicks divided by Viewable Impressions.

Formula: sum(ad_clicks)/sum(viewable_impressions)
cpc double Cost Per Click: The amount you pay for each click on your ads.

Formula: sum(budget_spent)/sum(ad_clicks)
created_at timestamp Timestamp in UTC when the data was created.
updated_at timestamp Timestamp in UTC when the data was updated.
gmv_campaign double The value of items sold - before cancellations and returns - after users clicked on or viewed your ads.
roas_campaign double Return on Ad Spend: The GMV your business earns for each euro it spends on advertising. Calculated as Campaign GMV (purchases of any SKU included in the campaign) divided by Budget spent and excluding budget spent on TikTok, Pinterest and/or Snapchat.

Formula: SUM(gmv_campaign)/SUM(budget_spent)

Example Measures

Campaign Performance by Country

Calculates clicks, spend, and Conversion Rate (CVR) broken down by country to help optimise targeting country.

SELECT
    dt,
    campaign_id,
    campaign_name,
    country,
    SUM(viewable_impressions) AS viewable_impressions,
    SUM(ad_clicks) AS ad_clicks,
    SUM(items_sold) AS items_sold,
    CAST(sum(items_sold) / NULLIF(sum(ad_clicks), 0) AS DOUBLE) AS cvr,
    CAST(sum(ad_clicks) / NULLIF(sum(viewable_impressions), 0) AS DOUBLE) AS ctr,
    CAST(sum(budget_spent) / NULLIF(sum(ad_clicks), 0) AS DOUBLE) AS cpc
FROM zms_campaign_daily_share.direct_data_sharing.zms_campaign_daily
GROUP BY 1, 2, 3, 4

Overall ROAS and ROPI by Country

Evaluates financial performance and return across different country to guide strategic budget allocations.

SELECT
    campaign_id,
    campaign_name,
    country,
    start_date,
    end_date,
    SUM(budget_spent) AS budget_spent,
    SUM(attributed_gmv) AS attributed_gmv,
    CAST(sum(attributed_gmv) / NULLIF(sum(partner_spent), 0) AS DOUBLE) AS ropi,
    CAST(sum(attributed_gmv) / NULLIF(sum(budget_spent), 0) AS DOUBLE) AS roas
FROM zms_campaign_daily_share.direct_data_sharing.zms_campaign_daily
GROUP BY 1, 2, 3, 4, 5
ORDER BY 1, 2, 3, 4, 5

Campaign Attribution Comparison: Click vs Campaign GMV

Compares click-based attribution (roas) with campaign-level attribution (roas_campaign) side by side. Campaign GMV includes view-through conversions and purchases of any SKU in the campaign — giving a broader picture of your campaign's true revenue impact.

SELECT
    campaign_id,
    campaign_name,
    SUM(budget_spent)                                       AS budget_spent,
    SUM(attributed_gmv)                                     AS gmv_click,
    SUM(gmv_campaign)                                       AS gmv_campaign,
    SUM(attributed_gmv) / NULLIF(SUM(budget_spent), 0)      AS roas_click,
    SUM(gmv_campaign)   / NULLIF(SUM(budget_spent), 0)      AS roas_campaign
FROM zms_campaign_daily_share.direct_data_sharing.zms_campaign_daily
GROUP BY 1, 2
ORDER BY roas_campaign DESC

Campaign GMV and ROAS Trend Over Time

Tracks gmv_campaign and roas_campaign day by day across all campaigns. Useful for identifying performance trends, spikes, and dips to guide timely budget adjustments.

SELECT
    dt,
    SUM(budget_spent)                                       AS budget_spent,
    SUM(gmv_campaign)                                       AS gmv_campaign,
    SUM(gmv_campaign) / NULLIF(SUM(budget_spent), 0)        AS roas_campaign
FROM zms_campaign_daily_share.direct_data_sharing.zms_campaign_daily
GROUP BY 1
ORDER BY 1

Changelog (non-breaking changes)

2026-07-08 — v1.1.0 (Additive schema change)

  • Summary: Added 2 new columns for campaign-level attribution insights
  • Details: New columns enable analysis of purchases driven by campaign impressions and views, beyond click-only attribution. Added columns: gmv_campaign (double), roas_campaign (double). Both columns are non-nullable and represent aggregated campaign-level metrics derived from attributed_gmv_campaign.
  • Availability: Available from the release date 2026-07-08.
  • Impact: None expected for existing consumers. This is purely additive and does not modify existing columns or their behavior.
  • Action required: None. Existing queries will continue to work. Consumers can optionally add gmv_campaign and roas_campaign to their pipelines to distinguish between click-driven and broader campaign-driven revenue attribution.
Contact Support