Stay organized with collections
Save and categorize content based on your preferences.
Cross Media & Product Connected Insights
This page describes the required configurations to utilize Cross Media &
Product Connected Insights (Cross Media) accelerator of
Cortex Framework Data Foundation.
With this Cross Media accelerator, Cortex Framework Data
Foundation is enriched with an initial set of KPIs to understand the
effectiveness of marketing campaigns running across media platforms such as
Google Ads, YouTube (with DV360), Meta, and TikTok for product
and product category sales performance.
The following diagram describes how Cross Media insights are available through
the marketing workloads of Cortex Framework Data Foundation:
Figure 1. Cross media architecture.
Configuration file
The config.json file configures the settings required to connect to data sources for
transferring data from various workloads. This file contains the following
parameters for Cross Media:
The following table describes the value for each parameter:
Parameter
Meaning
Default Value
k9.deployCrossMedia
Whether Cross Media will be deployed. Note that it requires at least one
of Google Ads, YouTube (with DV360), Meta or TikTok to be deployed
alongside, or the deployment will fail.
False
k9.CrossMedia.productHierarchyType
Which of the product hierarchies to use within the product dim. Dependent
on the actual data. Set this value to the same value as your
productHierarchyType value for the Product Hierarchy Dimension.
SAP
k9.CrossMedia.maxProductHierarchyMatchLevel
Limits the level of the product hierarchy for matching. Companies
with a lot of SKUs may have hierarchies going too deep with specifics of
packaging (for example, Coca Cola in glass or cans, packaged individually or
in batches). Some systems, such as SAP, have their own limit of how deep
you can go.
9
k9.CrossMedia.targetCurrencies
Target currencies used for Reporting and BI purposes. All source
currencies will be converted to these currencies.
["USD"]
k9.CrossMedia.additionalPrompt
Optional: Pass additional prompts to the LLM model.
k9.CrossMedia.lookbackWindowDays
Amount of days to lookback when doing incremental refresh
7
VertexAI.region
Vertex AI region (assuming source project for
Vertex AI API). It must be co-located with BigQuery and
must not be a multi-region. If BigQuery is in a multi-region,
any region from the same multi-region is acceptable
Load data into Currency Conversion and
Product Hierarchy tables.
Run the cross_media DAGs. There are two flavors: "Full refresh" or "
Incremental refresh". Use whichever that fits your use case.
Known issues
If the Currency Conversion table is not populated, TotalCostInTargetCurrency
column of the final output table will be empty for all rows. In this case you
can still use TotalCostInSourceCurrency column to report on costs in
source currency.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-25 UTC."],[[["\u003cp\u003eThis page outlines the configuration process for the Cross Media & Product Connected Insights accelerator within the Cortex Framework Data Foundation.\u003c/p\u003e\n"],["\u003cp\u003eThe Cross Media accelerator provides KPIs for analyzing marketing campaign effectiveness across platforms like Google Ads, YouTube (DV360), Meta, and TikTok, relating them to product sales.\u003c/p\u003e\n"],["\u003cp\u003eConfiguration involves setting parameters in the \u003ccode\u003econfig.json\u003c/code\u003e file, including product hierarchy, target currencies, and lookback window, as well as ensuring that the region and processing dataset for Vertex AI are correct.\u003c/p\u003e\n"],["\u003cp\u003eDeployment requires configuring at least one marketing data source (Google Ads, YouTube, Meta, or TikTok), enabling Common Dimensions (Country, Product, Currency Conversion), and running the \u003ccode\u003ecross_media\u003c/code\u003e DAGs.\u003c/p\u003e\n"],["\u003cp\u003eIf the Currency Conversion table is not populated, reporting on cost in target currencies will not be possible, but reporting on cost in source currencies is still possible.\u003c/p\u003e\n"]]],[],null,["# Cross Media & Product Connected Insights\n\nCross Media \\& Product Connected Insights\n=========================================\n\nThis page describes the required configurations to utilize Cross Media \\&\nProduct Connected Insights (Cross Media) accelerator of\nCortex Framework Data Foundation.\n\nWith this Cross Media accelerator, Cortex Framework Data\nFoundation is enriched with an initial set of KPIs to understand the\neffectiveness of marketing campaigns running across media platforms such as\nGoogle Ads, YouTube (with DV360), Meta, and TikTok for product\nand product category sales performance.\n\nThe following diagram describes how Cross Media insights are available through\nthe marketing workloads of Cortex Framework Data Foundation:\n\n**Figure 1**. Cross media architecture.\n\n### Configuration file\n\nThe [config.json](https://github.com/GoogleCloudPlatform/cortex-data-foundation/blob/main/config/config.json) file configures the settings required to connect to data sources for\ntransferring data from various workloads. This file contains the following\nparameters for Cross Media: \n\n \"k9\": {\n \"datasets\": {... },\n \"crossMedia\": {\n \"productHierarchyType\": \"\",\n \"maxProductHierarchyMatchLevel\": 9,\n \"targetCurrencies\": [\"USD\"],\n \"additionalPrompt\": \"\",\n \"lookbackWindowDays\": 7\n }\n },\n \"VertexAI\": {\n \"region\": \"us-central1\",\n \"processingDataset\": \"CORTEX_VERTEX_AI_PROCESSING\"\n },\n ...\n\nThe following table describes the value for each parameter:\n\n### Data Model\n\nThis section describes the Cross Media \\& Product Connected Insights Data Model\nusing the Entity Relationship Diagram (ERD).\n\n[](/static/cortex/docs/images/erd_cross_media.png)\n**Figure 2**. Cross Media \\& Product Connected Insights: Entity Relationship Diagram.\n\n### Deploying Cross Media\n\n1. Create a BigQuery dataset in the source project for\n Vertex AI processing.\n\n | **Note:** The location of this dataset should be in the same general region as your datasets, but it can't be in a multi-region. For example, if your other datasets are in `us` then this dataset can be in `us-central1`, but not `us`.\n2. Configure one or more of the following Marketing data sources for deployment,\n following their own guides:\n\n 1. [Google Ads](/cortex/docs/marketing-googleads)\n 2. [Meta](/cortex/docs/meta)\n 3. [Youtube (with DV360)](/cortex/docs/marketing-gdv360)\n 4. [TikTok](/cortex/docs/marketing-tiktok)\n3. Enable and configure required [Common Dimensions](/cortex/optional-step-common-dimensions):\n\n 1. Country Dimension\n 2. Product Dimension\n 3. Currency Conversion\n4. Configure Cross Media settings:\n\n 1. Set `k9.deployCrossMedia` to `True`.\n 2. Set `k9.CrossMedia.productHierarchyType` to the same value as `dataSourceType` in the previous step.\n 3. In `VertexAI` section, set the dataset to the one you created in step 1, and `region` should match where the Vertex AI processing dataset is.\n5. Adjust any other settings as necessary. Then you are ready to start the\n deployment.\n\n### Running the DAGs\n\n1. Set up [Cloud Composer Airflow environment](/composer/docs/composer-3/composer-overview) as required. Make sure the `k9_reporting` connection is [configured](/cortex/docs/gathering-settings) correctly.\n2. [Load data](/cortex/optional-step-common-dimensions) into Currency Conversion and Product Hierarchy tables.\n3. Run the `cross_media` DAGs. There are two flavors: \"Full refresh\" or \" Incremental refresh\". Use whichever that fits your use case.\n\n### Known issues\n\nIf the Currency Conversion table is not populated, `TotalCostInTargetCurrency`\ncolumn of the final output table will be empty for all rows. In this case you\ncan still use `TotalCostInSourceCurrency` column to report on costs in\nsource currency.\n\nWhat's next?\n------------\n\n- For more information about other data sources and workloads, see [Data sources and workloads](/cortex/docs/data-sources-and-workloads).\n- For more information about the steps for deployment in production environments, see [Cortex Framework Data Foundation deployment prerequisites](/cortex/docs/deployment-prerequisites)."]]