Skip to main content
Adrià García

REFERENCE ARCHITECTURES

Four stacks, from collection to activation

Explore what collects the data, where the profile is built and how it reaches each channel. These are reference designs, not client projects or purchasing recommendations.

How to explore

Choose a walkthrough and press play. You can pause, go back or select a box to read its role. The pointer can leave the viewer. On mobile, scroll the canvas horizontally; labels are not shrunk to fit.

Adobe

The activation profile and historical data serve different purposes.

SourcesCollectionData and contextConsumptionDestinations Web Web SDK · consent Mobile app Mobile SDK CRM and support Attributes · preferences Orders and stores Backend · files Edge Network Configured datastream Source ingestion Streaming · batch Real-Time Profile Identity · fragments Data lake AEP datasets Edge personalisation Specific configuration RT-CDP audiences Evaluation · policies Journey Optimizer Entry · eligibility CJA Dataset connection Web and app Personalised experience Ad platforms Audiences · exclusions Email, push and SMS AJO channels Analysis and feedback CJA · outcomes Identity contract · consent per purpose · quality · deletion · operations and feedback
The activation profile and historical data serve different purposes.

Web: The website collects permitted events and identities through Web SDK. Consent constrains collection and subsequent use. Mobile app: The app sends events through Mobile SDK and the Edge Network extension; login provides a known identity where appropriate. CRM and support: Systems of record provide attributes and preferences with stable identifiers. Source precedence must be defined. Orders and stores: Purchases and returns arrive from the backend or file ingestion; they do not depend on browser confirmation. Edge Network: The datastream routes to enabled services. The in-session personalisation path is configured here, separately from historical analysis. Source ingestion: Connectors and APIs ingest data within their schedules and limits. Data Prep maps fields to the XDM schema. Real-Time Profile: Enabled datasets contribute fragments. Identity and merge policies determine the profile available for activation. Data lake: Datasets retain ingested data according to their retention settings. Not every Profile write is assumed to create a copy here. Edge personalisation: Edge-compatible segmentation and destinations can respond during a visit when their requirements are met. RT-CDP audiences: Audience evaluation has its own cadence. Configured policies and destination restrictions apply before export. Journey Optimizer: A journey needs a configured entry, an eligible profile and channel controls. Audience membership does not guarantee immediate delivery. CJA: CJA combines datasets through a connection and a data view. It does not simply read the unified RT-CDP profile. Web and app: The experience receives decisions through the configured integration. Missing decisions and fallback content need handling. Ad platforms: The destination receives permitted identities and audiences. Acceptance and matching belong to the receiving system. Email, push and SMS: Execution depends on the channel, credentials and recipient eligibility. Sending is not the same as delivery. Analysis and feedback: Analysis relates interactions to outcomes. Ingesting outcomes supports review without making measurement automatic activation. During the visit: Web → Edge Network → Edge personalisation → Web and app. CRM to advertising: CRM and support → Source ingestion → Real-Time Profile → RT-CDP audiences → Ad platforms. App to message: Mobile app → Edge Network → Real-Time Profile → Journey Optimizer → Email, push and SMS. Purchase to analysis: Orders and stores → Source ingestion → Data lake → CJA → Analysis and feedback.

Reference design: only enabled datasets feed Profile. CJA uses dataset connections. In-session responses require Edge configuration, compatible identities and supported destinations; they do not wait for the full historical-data pipeline.

Sources and scope

Arrows are configured routes. Animation explains the path; it does not represent product latency. Outcome feedback needs its own ingestion and is not connected automatically.

Web
The website collects permitted events and identities through Web SDK. Consent constrains collection and subsequent use.
Mobile app
The app sends events through Mobile SDK and the Edge Network extension; login provides a known identity where appropriate.
CRM and support
Systems of record provide attributes and preferences with stable identifiers. Source precedence must be defined.
Orders and stores
Purchases and returns arrive from the backend or file ingestion; they do not depend on browser confirmation.
Edge Network
The datastream routes to enabled services. The in-session personalisation path is configured here, separately from historical analysis.
Source ingestion
Connectors and APIs ingest data within their schedules and limits. Data Prep maps fields to the XDM schema.
Real-Time Profile
Enabled datasets contribute fragments. Identity and merge policies determine the profile available for activation.
Data lake
Datasets retain ingested data according to their retention settings. Not every Profile write is assumed to create a copy here.
Edge personalisation
Edge-compatible segmentation and destinations can respond during a visit when their requirements are met.
RT-CDP audiences
Audience evaluation has its own cadence. Configured policies and destination restrictions apply before export.
Journey Optimizer
A journey needs a configured entry, an eligible profile and channel controls. Audience membership does not guarantee immediate delivery.
CJA
CJA combines datasets through a connection and a data view. It does not simply read the unified RT-CDP profile.
Web and app
The experience receives decisions through the configured integration. Missing decisions and fallback content need handling.
Ad platforms
The destination receives permitted identities and audiences. Acceptance and matching belong to the receiving system.
Email, push and SMS
Execution depends on the channel, credentials and recipient eligibility. Sending is not the same as delivery.
Analysis and feedback
Analysis relates interactions to outcomes. Ingesting outcomes supports review without making measurement automatic activation.
Tealium

Routing an event and activating a profile are different paths.

SourcesCollectionData and contextConsumptionDestinations Web iQ · Collect Mobile app Tealium SDK Orders and backend Collect HTTP API CRM and stores File import Collect Event intake File Import Column mapping EventStream Validate · enrich AudienceStream Attributes · audiences Event connectors Feed · action · mapping Profile connectors Join and leave Event export Configured connector Ad conversions Google · Meta Engagement and CRM Braze · CRM BigQuery and BI History · outcomes Identity contract · consent per purpose · quality · deletion · operations and feedback
Routing an event and activating a profile are different paths.

Web: The web data layer defines events and identifiers; iQ and Collect transport them according to configuration and consent. Mobile app: The SDK collects app interactions using a taxonomy consistent with the website. Orders and backend: The backend sends business events. Event identifiers support deduplication where it is required. CRM and stores: Offline data needs an identifier contract and a configured import; similarity alone does not join records. Collect: Collect receives website, app and server events. Sources are identified and validated before activation. File Import: File import turns rows into events with fields mapped to the agreed model. EventStream: EventStream validates and enriches events, routing them through configured feeds and connectors. AudienceStream: AudienceStream maintains visitor attributes and audiences. Stitching depends on configured visitor identification attributes. Event connectors: A connector action sends an event supported by the destination. Retries and deduplication are reviewed for that action. Profile connectors: Audience changes trigger configured actions. Leaving an audience also needs a removal operation. Event export: An export to BigQuery retains events for analysis; schema and retention are designed at the destination. Ad conversions: Advertising APIs receive permitted conversions. Consent, matching and deduplication remain necessary. Engagement and CRM: The receiving system uses attributes or memberships for its own campaigns. Tealium does not replace the messaging engine. BigQuery and BI: The warehouse brings together events and campaign outcomes for analysis and reconciliation, using explicit feedback ingestion. Backend conversion: Orders and backend → Collect → EventStream → Event connectors → Ad conversions. Profile from the app: Mobile app → Collect → EventStream → AudienceStream → Profile connectors → Engagement and CRM. Offline data: CRM and stores → File Import → EventStream → AudienceStream → Profile connectors → Engagement and CRM. Event history: Web → Collect → EventStream → Event export → BigQuery and BI.

EventStream distributes events; AudienceStream adds attributes, identities and audiences. Connectors require actions, credentials and mappings. BigQuery history is a choice in this design, not a Tealium requirement.

Sources and scope

Arrows are configured routes. Animation explains the path; it does not represent product latency. Outcome feedback needs its own ingestion and is not connected automatically.

Web
The web data layer defines events and identifiers; iQ and Collect transport them according to configuration and consent.
Mobile app
The SDK collects app interactions using a taxonomy consistent with the website.
Orders and backend
The backend sends business events. Event identifiers support deduplication where it is required.
CRM and stores
Offline data needs an identifier contract and a configured import; similarity alone does not join records.
Collect
Collect receives website, app and server events. Sources are identified and validated before activation.
File Import
File import turns rows into events with fields mapped to the agreed model.
EventStream
EventStream validates and enriches events, routing them through configured feeds and connectors.
AudienceStream
AudienceStream maintains visitor attributes and audiences. Stitching depends on configured visitor identification attributes.
Event connectors
A connector action sends an event supported by the destination. Retries and deduplication are reviewed for that action.
Profile connectors
Audience changes trigger configured actions. Leaving an audience also needs a removal operation.
Event export
An export to BigQuery retains events for analysis; schema and retention are designed at the destination.
Ad conversions
Advertising APIs receive permitted conversions. Consent, matching and deduplication remain necessary.
Engagement and CRM
The receiving system uses attributes or memberships for its own campaigns. Tealium does not replace the messaging engine.
BigQuery and BI
The warehouse brings together events and campaign outcomes for analysis and reconciliation, using explicit feedback ingestion.
Google

BigQuery holds the history; the team builds the customer model.

SourcesCollectionData and contextConsumptionDestinations Web Google tag · consent Mobile app Firebase Analytics Orders and backend Business events CRM and support Agreed extracts GTM server-side Tags and clients GA4 BigQuery export Pub/Sub + Dataflow Event pipeline Cloud Storage Load into BigQuery BigQuery · raw Events and records Customer model Dataform · SQL Ads Data Manager Configured import Cloud Run · API Custom integration Looker Semantic model Google Ads Customer Match Owned web and app Attribute retrieval Outcome analysis Business · measurement Identity contract · consent per purpose · quality · deletion · operations and feedback
BigQuery holds the history; the team builds the customer model.

Web: The website collects permitted measurement data. Server-side tagging neither removes consent requirements nor creates known identities. Mobile app: The app sends measurement events to GA4 through Firebase Analytics; its data can be exported to BigQuery. Orders and backend: Operational events use a dedicated pipeline; not every business fact needs to become a GA4 analytics event. CRM and support: Records are extracted with stable identifiers, preferences and explicit update rules. GTM server-side: The container processes requests using clients and tags. In this example it sends measurement to GA4. GA4: The export brings GA4 events to BigQuery within its limits and schedules. It is not an export of a complete CDP profile. Pub/Sub + Dataflow: Pub/Sub receives messages and Dataflow can write them to BigQuery. The team defines schema, error handling and deduplication. Cloud Storage: Files are loaded with a schema and update controls; freshness and load failures need monitoring. BigQuery · raw: Separate source datasets support quality checks and transformation rebuilds. Customer model: Dataform runs SQL transformations and checks. The team defines identifier joins, source precedence and deletion. Ads Data Manager: A supported BigQuery model is connected to a Customer Match import, respecting eligibility, fields and consent. Cloud Run · API: A custom process publishes selected attributes to a serving layer. It must implement authentication, deletion, retries and freshness. Looker: Looker queries modelled data to analyse outcomes. A visualisation does not execute a campaign by itself. Google Ads: Google Ads receives the list and applies its usage and matching requirements. Record count is not the same as reachable users. Owned web and app: The application consumes the serving layer using an authorised identity. This personalisation is developed; it is not included in BigQuery. Outcome analysis: Sales, behaviour and outcomes are compared. Campaign data needs its own feedback ingestion. CRM to Customer Match: CRM and support → Cloud Storage → BigQuery · raw → Customer model → Ads Data Manager → Google Ads. Web measurement: Web → GTM server-side → GA4 → BigQuery · raw → Customer model → Looker → Outcome analysis. Custom activation: Orders and backend → Pub/Sub + Dataflow → BigQuery · raw → Customer model → Cloud Run · API → Owned web and app. App analysis: Mobile app → GA4 → BigQuery · raw → Customer model → Looker → Outcome analysis.

Google-centred example without an external CDP. The SQL model is not an automatic identity graph. Cloud Run and the activation API are custom development. No native email and SMS engine is implied by this stack.

Sources and scope

Arrows are configured routes. Animation explains the path; it does not represent product latency. Outcome feedback needs its own ingestion and is not connected automatically.

Web
The website collects permitted measurement data. Server-side tagging neither removes consent requirements nor creates known identities.
Mobile app
The app sends measurement events to GA4 through Firebase Analytics; its data can be exported to BigQuery.
Orders and backend
Operational events use a dedicated pipeline; not every business fact needs to become a GA4 analytics event.
CRM and support
Records are extracted with stable identifiers, preferences and explicit update rules.
GTM server-side
The container processes requests using clients and tags. In this example it sends measurement to GA4.
GA4
The export brings GA4 events to BigQuery within its limits and schedules. It is not an export of a complete CDP profile.
Pub/Sub + Dataflow
Pub/Sub receives messages and Dataflow can write them to BigQuery. The team defines schema, error handling and deduplication.
Cloud Storage
Files are loaded with a schema and update controls; freshness and load failures need monitoring.
BigQuery · raw
Separate source datasets support quality checks and transformation rebuilds.
Customer model
Dataform runs SQL transformations and checks. The team defines identifier joins, source precedence and deletion.
Ads Data Manager
A supported BigQuery model is connected to a Customer Match import, respecting eligibility, fields and consent.
Cloud Run · API
A custom process publishes selected attributes to a serving layer. It must implement authentication, deletion, retries and freshness.
Looker
Looker queries modelled data to analyse outcomes. A visualisation does not execute a campaign by itself.
Google Ads
Google Ads receives the list and applies its usage and matching requirements. Record count is not the same as reachable users.
Owned web and app
The application consumes the serving layer using an authorised identity. This personalisation is developed; it is not included in BigQuery.
Outcome analysis
Sales, behaviour and outcomes are compared. Campaign data needs its own feedback ingestion.
Mixed

Recent events and historical audiences arrive through different paths.

SourcesCollectionData and contextConsumptionDestinations Web iQ · Collect Mobile app Tealium SDK Orders and backend Collect HTTP API CRM and support Records and preferences Tealium EventStream Collect · feeds Fivetran CRM → warehouse connector BigQuery Source history dbt · customer model Identity · preferences Braze connector Recent events Braze Profile · Canvas Hightouch Model synchronisation Looker Analysis on the model Email, push and SMS Execution in Braze Google and Meta Ads Audiences · exclusions Outcome analysis BI · reconciliation Identity contract · consent per purpose · quality · deletion · operations and feedback
Recent events and historical audiences arrive through different paths.

Web: The website publishes permitted events with identifiers agreed across collection, warehouse and destinations. Mobile app: The app uses the same taxonomy. Login identity is propagated only when valid and authorised. Orders and backend: Operational events support reactions to purchases and returns with less reliance on browser measurement. CRM and support: The CRM retains its operational role; records are replicated to the warehouse under an update contract. Tealium EventStream: EventStream routes events to engagement connectors and BigQuery. These are configured paths with their own controls. Fivetran: A supported connector replicates records. Frequency and deletion handling depend on the connector and its configuration. BigQuery: BigQuery brings together events and records. Campaign responses also need a feedback integration. dbt · customer model: SQL models calculate attributes and audiences. Identity resolution and opt-out propagation are explicitly designed. Braze connector: The connector sends events supported by Braze with the correct user identifier. It does not replace the historical model. Braze: Braze receives events and synchronised attributes. Canvas acts according to configuration; fast and scheduled paths can arrive in different orders. Hightouch: Hightouch synchronises models with configured destinations. Keys, deletion operations and mappings are part of the contract. Looker: The analytics layer uses governed models. Conversion definitions must agree with the business. Email, push and SMS: Braze executes configured channels with preferences and contact limits. Outcomes return through a separate ingestion. Google and Meta Ads: Lists and exclusions are synchronised where supported. Matching, permissions and timing are checked in each platform. Outcome analysis: The team compares calculated, sent and accepted populations. Each count describes a different stage. Event to message: Orders and backend → Tealium EventStream → Braze connector → Braze → Email, push and SMS. History to audience: CRM and support → Fivetran → BigQuery → dbt · customer model → Hightouch → Google and Meta Ads. Enrich engagement: CRM and support → Fivetran → BigQuery → dbt · customer model → Hightouch → Braze → Email, push and SMS. Measurement and learning: Web → Tealium EventStream → BigQuery → dbt · customer model → Looker → Outcome analysis.

One concrete combination: Tealium, BigQuery, dbt, Hightouch and Braze. The team maintains the identity and consent contract. Destinations hold copies; warehouse-native does not mean data never leaves the warehouse.

Sources and scope

Arrows are configured routes. Animation explains the path; it does not represent product latency. Outcome feedback needs its own ingestion and is not connected automatically.

Web
The website publishes permitted events with identifiers agreed across collection, warehouse and destinations.
Mobile app
The app uses the same taxonomy. Login identity is propagated only when valid and authorised.
Orders and backend
Operational events support reactions to purchases and returns with less reliance on browser measurement.
CRM and support
The CRM retains its operational role; records are replicated to the warehouse under an update contract.
Tealium EventStream
EventStream routes events to engagement connectors and BigQuery. These are configured paths with their own controls.
Fivetran
A supported connector replicates records. Frequency and deletion handling depend on the connector and its configuration.
BigQuery
BigQuery brings together events and records. Campaign responses also need a feedback integration.
dbt · customer model
SQL models calculate attributes and audiences. Identity resolution and opt-out propagation are explicitly designed.
Braze connector
The connector sends events supported by Braze with the correct user identifier. It does not replace the historical model.
Braze
Braze receives events and synchronised attributes. Canvas acts according to configuration; fast and scheduled paths can arrive in different orders.
Hightouch
Hightouch synchronises models with configured destinations. Keys, deletion operations and mappings are part of the contract.
Looker
The analytics layer uses governed models. Conversion definitions must agree with the business.
Email, push and SMS
Braze executes configured channels with preferences and contact limits. Outcomes return through a separate ingestion.
Google and Meta Ads
Lists and exclusions are synchronised where supported. Matching, permissions and timing are checked in each platform.
Outcome analysis
The team compares calculated, sent and accepted populations. Each count describes a different stage.

The framework: suite, composable and warehouse-native

These examples develop the article’s distinction between history, in-session response and operational ownership. Google and mixed stacks are concrete examples, not new article categories.

Read the article on LinkedIn