Marketers are always fighting to prove performance because their ad channels are a total mess. With customers bouncing between platforms and devices, you have to understand which touchpoints actually work, otherwise you’re just burning cash. The IAB’s Project Eidos is supposed to fix this by creating a standard for cross-channel measurement, giving you a framework to finally stitch together all that disconnected data. So, how do you actually use it to get a real picture of your campaign ROI?
Key Takeaways
- First, define a universal ID strategy in your Customer Data Platform (CDP) by mapping your first-party IDs to an Eidos-compatible schema.
- The main technical lift is getting your ad platforms (e.g., Google Ads, Meta Business Suite) to export impression and click data using the Eidos Common Measurement Protocol (CMP) through API calls.
- You have to validate the data in your analytics suite by running reconciliation reports comparing the Eidos-formatted data against platform-native reports, and you should be aiming for a discrepancy under 5%.
- To get any real value, build custom attribution models in your Business Intelligence (BI) tools that use Eidos’s standardized touchpoint data to finally move beyond last-click.
- Set up ongoing data governance and audit your Eidos pipeline at least quarterly to maintain data accuracy and keep up with evolving privacy rules and platform changes.
Step 1: Establishing Your Universal Identifier Strategy
You can’t measure anything cross-channel if you can’t identify the same user across those channels. Project Eidos doesn’t force a specific universal ID on you, but it does provide the framework for reconciling different IDs. Your Customer Data Platform (CDP) is where this all comes together.
1.1 Map Existing First-Party Identifiers
Navigate to your CDP’s Data Schema or Identity Resolution section. In a platform like Segment, this is typically found under Connections > Sources > [Your Website/App Source] > Schema. You’ll see a list of identified user properties. Your goal here is to map your existing first-party identifiers (think hashed email addresses, user IDs from your CRM, device IDs from your app) to a normalized format. For instance, if your CRM uses customer_id and your website uses user_uuid, you need to establish a primary identifier that links them. I typically recommend using a securely hashed email as the primary key where possible, as it tends to be the most persistent identifier you’ll have across a user’s various interactions.
1.2 Configure Identifier Syncing
Within your CDP’s Identity Graph settings (often under Settings > Identity Resolution), you need to make sure all your data sources are feeding into a single, unified user profile. For example, if you use Salesforce Marketing Cloud, you’ll configure its connector to push subscriber IDs and email hashes into your CDP, which then does the heavy lifting of probabilistic and deterministic matching. Project Eidos absolutely needs a strong identity graph to connect user data across platforms, so this part is non-negotiable. Without it, your data is just aggregated in one place, not truly unified around a single user view.
1.3 Implement Eidos-Compliant User Attributes
Project Eidos requires certain attributes for the data exchange to work consistently. You won’t find a magic “Eidos Compliance” button. Instead, you have to ensure your CDP is capturing and storing things like user consent status (like a GDPR consent string), device types, and browser information in standardized fields. Make sure your CDP’s schema has fields for user_consent_string, device_type (e.g., “mobile”, “desktop”), and browser_name. These attributes are essential for filtering and segmenting your cross-channel data later on, especially when you’re trying to do any kind of privacy-safe measurement.
Pro Tip: Focus on interoperability, not on forcing a single proprietary ID to be your universal key. Eidos is built for this. Concentrate on strong first-party IDs and let the framework handle the translation. A common mistake is relying too heavily on third-party cookies, which are on their way out. You should be shifting your entire focus to cookieless identifiers now.
Step 2: Integrating Ad Platform Data with Eidos Common Measurement Protocol (CMP)
This is where you get into the weeds. Project Eidos’s Common Measurement Protocol (CMP) is the spec that standardizes how impression and click data get reported from different ad platforms. You’ll be spending most of your time in APIs here.
2.1 Configure Google Ads Eidos Export
Inside your Google Ads account (as of 2026), you’ll go to Tools and Settings > Measurement > Data Exports. There’s a new section labeled “Eidos CMP Configuration.” Click + New Eidos Export. You’ll need to fill out a few things:
- Export Type: Pick “Impression & Click Logs.”
- Data Granularity: I’d choose “Hourly” for the most detail, but “Daily” is an option if you don’t need that level of granularity.
- API Endpoint: This is the secure URL provided by your data warehouse or analytics vendor where Google will send the data.
- Authentication: Google Ads generally uses OAuth 2.0. You’ll generate a client ID and secret in this step to authorize your data warehouse.
- Eidos Schema Version: Make sure you’re on the latest stable version (e.g., “Eidos v1.3” as of Q3 2026).
Click Save and Activate. Google Ads will then start pushing impression and click logs, all formatted to the Eidos CMP spec, to your endpoint. This data includes standard fields for campaign ID, ad group ID, creative ID, a timestamp, and a hashed user identifier (when available and consented).
2.2 Set Up Meta Business Suite Eidos Data Stream
The process for Meta Business Suite is pretty similar. Go to Business Settings > Data Sources > Integrations. You should find an option for “Eidos Measurement Protocol.” Click Configure.
- Select Ad Accounts: Pick which Meta Ad Accounts you want to export Eidos data for.
- Data Stream Type: Choose “Ad Performance Logs (Impressions, Clicks).”
- Destination: Paste in the secure API endpoint for your data warehouse.
- Access Token: Meta generates a long-lived access token that you’ll use for authentication.
- Event Fields: Just check that the default Eidos-compliant fields are selected. This will include things like
ad_id,campaign_id,ad_set_id,event_time, and a privacy-safe user ID.
Once you activate the stream, you’re good to go. Meta’s integration is solid, but I’ve seen it break when an access token expires or if the data warehouse has IP whitelist restrictions. Keep an eye on those.
2.3 Integrating Other Platforms (e.g., TikTok, LinkedIn)
Most of the big ad platforms are on board with Eidos CMP now. For TikTok Ads Manager, you’ll find it under Assets > Events > Data Integrations. For LinkedIn Campaign Manager, it’s usually in Account Assets > Integrations. The setup is always the same: find the Eidos integration, give it your data destination endpoint, and set up authentication. The most important thing is to verify that the data being sent actually matches the Eidos schema specifications, especially the identifier formats and event types, because if it doesn’t, your data will be inconsistent and basically useless for analysis. If a platform doesn’t have a direct Eidos integration, your only option is to use their standard API to pull raw data and then write a script to transform it into the Eidos CMP format yourself before it hits your warehouse.
Common Mistake: People forget to map campaign IDs consistently across platforms. Eidos standardizes the data *format*, but it won’t magically fix your messy campaign naming. You need a strict UTM and campaign ID architecture to make any of this work. For example, use a consistent prefix for everything, like 2026Q3_BrandX_Search_.
Step 3: Data Ingestion and Validation in Your Data Warehouse
Once ad platforms are pushing data, your data warehouse (whether it’s Amazon Redshift, Google BigQuery, or Snowflake) is where it all lands. Now you need to make sure the data arrived correctly and is actually usable.
3.1 Set Up Eidos Data Tables
In your data warehouse, create separate tables for the Eidos impression and click data, like eidos_impressions and eidos_clicks. The schema for these tables needs to match the Eidos CMP specification perfectly. That means having columns like event_timestamp (as a DATETIME), platform_source (VARCHAR), campaign_id (VARCHAR), ad_group_id (VARCHAR), creative_id (VARCHAR), and user_id_hashed (VARCHAR). Using consistent data types for each field is non-negotiable if you want your queries to run efficiently instead of taking forever.
3.2 Implement Data Ingestion Pipelines
If your ad platforms are pushing data directly via an API endpoint, your warehouse’s ingestion service (like AWS Kinesis Firehose or Google Cloud Pub/Sub) will take care of it. If you’re pulling the data yourself and transforming it, you’ll need an ETL tool like Fivetran or Stitch to automate the whole process. I’d schedule these pipelines to run every hour to keep the data as close to real-time as possible.
3.3 Perform Data Validation and Reconciliation
Don’t skip this. This step is where you catch the data errors that will completely screw up your attribution later. After you’ve had data flowing for a couple of days, you need to compare the totals from the ad platform UIs (Google Ads, Meta Ads Manager) with what’s actually in your Eidos tables. Build reconciliation queries in your warehouse to do this. A simple query might look something like this:
SELECT platform_source, DATE_TRUNC('day', event_timestamp) AS day, COUNT(*) AS eidos_impressions
FROM eidos_impressions
WHERE event_timestamp BETWEEN '2026-09-01' AND '2026-09-07'
GROUP BY 1, 2;
Compare these counts to the platform’s own reports for the same dates. You should be aiming for a discrepancy rate under 5%. If it’s higher, something is broken in your export configuration or your ingestion pipeline, and you need to investigate things like missing data, incorrect field mappings, or time zone mismatches (a surprisingly common culprit).
Pro Tip: Don’t just check the totals. Drill down. Compare the numbers by campaign, by ad group, even by creative. This helps you identify exactly where data might be getting dropped or miscounted. I’d recommend setting up automated daily alerts that fire if the discrepancy a certain threshold.
Step 4: Building Cross-Channel Attribution Models
Now that you have clean, standardized Eidos data in your warehouse, you can finally build attribution models that actually tell you something useful and go beyond simplistic last-click.
4.1 Integrate Eidos Data with Conversion Data
Your Eidos tables have all the impression and click touchpoints. The next step is linking them to your actual conversion events, like purchases or form fills. That conversion data should also live in your data warehouse, and it needs to have the same consistent user identifier you set up back in Step 1. You’ll join your eidos_impressions and eidos_clicks tables with your conversions table using the hashed user ID and a sensible lookback window (maybe 30 days for impressions and 7 for clicks).
4.2 Develop Custom Attribution Logic
Now you can build your attribution models with SQL or in your BI tool of choice (e.g., Microsoft Power BI, Looker Studio, Tableau). Instead of just last-click, you can build models like:
- Linear: Every touchpoint in the path gets equal credit. Simple, but better than nothing.
- Time Decay: Touchpoints closer to the conversion get more credit.
- Position-Based (U-shaped): Gives more credit to the very first and very last touchpoints, which is often a pretty good reflection of reality.
- Data-Driven (Algorithmic): This is the ideal, though complex, approach. Eidos doesn’t provide the algorithm, but it provides the clean data you need to build one yourself using techniques like Markov chains or Shapley values in Python or R to analyze the probability of conversion based on different sequences of touchpoints.
A position-based model is a good starting point because it balances simplicity with getting some real insight. For example, you could write a query that finds the first and last marketing touchpoint in a user’s journey to conversion, gives 40% credit to each, and splits the remaining 20% among all the touchpoints in the middle.
4.3 Visualize Cross-Channel Performance
In your BI tool, create dashboards that show the value attributed to each channel (Search, Social, Display, Video) based on the model you chose. You’ll want to track metrics like “Attributed Conversions,” “Attributed Revenue,” and “Cost Per Attributed Conversion.” This finally lets you compare the true ROI of your Google Ads campaigns against your Meta campaigns on an even footing. I highly recommend building a “Model Comparison Tool” dashboard that lets stakeholders flip between last-click, linear, and U-shaped models. Seeing how channel credit shifts with each model helps build their trust in the numbers you’re presenting.
Editorial Aside: So many marketers get stuck trying to find the “perfect” attribution model. It doesn’t exist. The real value of Eidos is that it gives you a standardized, reliable dataset so you can consistently apply and compare different models. The consistency is what lets you make better decisions, far more than the specific model you choose.
Step 5: Ongoing Monitoring and Refinement
Eidos implementation requires ongoing attention to keep the data quality high and adapt to the constant changes in the ad tech world.
5.1 Establish Data Governance Policies
You need to define clear ownership for the Eidos data pipeline. Assign someone to be responsible for monitoring data discrepancies and someone else to approve any schema changes. Set up automated alerts for data flow interruptions, big drops in volume, or schema violations. I’d schedule a quarterly review of the whole Eidos implementation with your data engineering and marketing teams. This process catches problems like schema drift before they corrupt your quarterly reports.
5.2 Monitor Platform Updates and Eidos Specifications
Ad platforms are constantly updating their APIs and reporting. The IAB also releases new versions of the Eidos CMP. You have to stay on top of these changes by subscribing to IAB updates and the developer blogs for the platforms you use. You might need to tweak your data exports or ingestion pipelines to handle new fields or deal with deprecated ones. For instance, if Eidos v1.4 adds a new privacy signal, you’ll have to update your table schema to capture it.
5.3 Iterate on Attribution Models
Your business doesn’t stand still, and neither do customer journeys. You need to regularly review your attribution models. Are they still useful? Are they actually helping you make budget decisions? You might need to bring in new touchpoints (like CRM interactions or even offline events) into your Eidos framework. It’s also worth running A/B tests on different attribution models to see which one best correlates with actual business growth. If one model consistently predicts revenue increases, it’s probably a better indicator of true channel impact.
Making the move to a unified measurement system with IAB Project Eidos is a serious commitment that requires careful setup and constant monitoring. But by standardizing how your data comes in, you get the clarity to make confident, data-driven decisions about your marketing budget, which leads to more efficient campaigns and better results for the business.
What is Project Eidos?
It’s an initiative from the IAB (Interactive Advertising Bureau) to standardize how digital ad performance data like impressions and clicks are collected from different platforms. It’s important because it creates a common language for measurement, which helps marketers get past data fragmentation and see a more accurate picture of their ROI across all channels.
How does Project Eidos handle user privacy?
It’s built for privacy-preserving measurement. The framework favors first-party data and privacy-safe identifiers (which are often hashed or aggregated) instead of third-party cookies. The protocol also has built-in ways to communicate a user’s consent status, which helps ensure that data collection follows rules like GDPR and CCPA.
What kind of data does it standardize?
It mainly standardizes impression and click-level data from ad platforms. This covers the essential attributes like campaign IDs, ad group IDs, creative IDs, timestamps, the platform source, and privacy-safe user identifiers. The whole point is to make sure these core signals are formatted the same way no matter which ad platform they came from.
Do I need a Customer Data Platform (CDP) for this?
It’s not technically required, but having a good CDP makes implementing Project Eidos a lot easier. A CDP is the natural place to collect and unify the first-party data needed to create the consistent user IDs that Eidos depends on for cross-channel tracking. If you don’t have a CDP, you’ll have to build much more complicated custom integrations to get the same identity resolution working.
What are the biggest challenges with implementation?
The main hurdles are getting a consistent user ID across all your data sources, correctly configuring the data exports from every ad platform, building a reliable data pipeline into your warehouse, and then validating all that incoming data against what the platforms report natively. On top of that, building sophisticated attribution models to actually use the data requires real analytical expertise.