Campaign Attribution models
Applies to: B2B and B2C
Campaign attribution model measures the effectiveness of campaigns by analyzing touch points that drive revenues and conversions.
What is Campaign Attribution algorithm?
The Campaign Revenue Attribution (Revenue and Non-Revenue) model measures the effectiveness of campaigns by analyzing touch points that drive revenues and conversions.
There are two types of Campaign Attribution models. The Revenue Campaign Attribution model measures the effectiveness of campaigns by assigning a monetary value to each campaign. The Non-Revenue Campaign Attribution model measures the effectiveness of campaigns by assigning a percentage attribution value to each campaign. The model calculates the 'Attribution Percentage' as a percentage value of campaigns converted to total conversions for each individual campaign.
Each model considers all the touch points that contributed to the conversion of the campaign. This is a multi-touch attribution model where the model assigns weights to each touchpoint based on the underlying conversion and non-conversion paths.
Parameters of the model
To create and configure the model the following parameters must be defined:
-
Algorithm: Choose theI algorithm in Unity.
-
Attribution type: Select ‘multi-touch Revenue’ for attributing revenue to campaigns; Select ‘multi-touch non-Revenue’ for attributing conversions/ units sold to campaigns
-
Lookback window: Select the number of days for lookback analysis
-
-
Queries: The queries you select generate the dataset used for both model training and scoring.
-
Inputs: Inputs are attributes from the Oracle Unity data model that the model uses during training and scoring.
-
Outputs: These are the data objects and attributes from the Unity data model that store the model's output values. You can customize the default output mappings if needed.
Model inputs
The Campaign attribution model uses the following data. For the model to successfully run, check the sections: key input considerations, key data guidelines and best practices.
| Attribute name in the query | Attribute from Unity data object | Unity Data object | Description of the attribute | Expected Data Type | Must have? |
| ID | AccountID / MasterAccountID CustomerID/ MasterCustomerID | Account/ Customer/ Master objects | Profile Identifier – Account or Customer depending on the use case | String | Yes |
| CAMPAIGN_ID | ID | MarketingProgram | Marketing Program Identifier | String | Yes |
| RESPONSE_DATE | EventTS | Event | Campaign engagement timestamp | Timestamp | Yes |
| PRODUCT_ID | ProductID | Event | Product Identifier | String | Yes |
| RESPONSE_ID | ID (EventID) | Event | Engagement event Identifier | String | Yes |
| ORDER_QUANTITY | Quantity | OrderItem | The quantity ordered (Only for Revenue Attribution) | Int | Yes |
| REVENUE_LINE_CREATED_DATE | OrderEntryTS | OrderItem | The timestamp when the order/sale happened | Timestamp | Yes |
| REVENUE_GENERATED | ExtendedPrice | OrderItem | Revenue generated for that product (Only for Revenue Attribution) | Float |
Key considerations on model inputs
-
Data schema checks: If an attribute is unavailable, assign a constant default value across all records. This allows the model to validate the input schema. This will not impact the model outcomes as the attribute will be excluded during feature importance analysis due to lack of data variance.
-
Model extensibility: The model can be run to attribute conversions/ revenue to not just campaign but also channels. Ensure the channels are mapped to ‘CAMPAIGN_ID’ for channel level attribution
-
Schema consistency: Ensure that the attributes used in the query exactly match the specified 'Attribute name in the query' (in the above table) to avoid schema mismatches during model execution.
-
Non-mandatory attributes: These attributes, when available, can enhance the model’s learning and improve its predictive performance. However, if they are missing, the model will still leverage other available attributes to make predictions.
Key input data guidelines
-
Data requirements:
-
It is recommended to provide at least 50,000 data records for model training. However, it is important to bring as much data as possible to build a robust model
-
It is recommended to keep the dataset under 10M records (soft limit). This limit can vary for every model, but maintain a manageable size helps ensure efficient model performance.
-
Best practices
-
Use case first approach: Begin with a specific use case to determine the data required for solving the problem effectively.
-
Review model data requirements with both business and data teams to ensure alignment
-
-
Contextual parameters: Choose model parameters (such as lookback window) based on the business/ use case context.
-
Query validation: Test both the training and scoring queries to validate that they return data and inspect sample records resulting from the query
Model outputs
Output values will be stored in the ProgramAttribution or CampaignAttribution data object.
-
The attribute ‘Type’ indicates whether the model was run as a revenue attribution or non-revenue attribution.
-
Attribution value – populated for revenue attribution model
-
Attribution Conversion – populated for non-revenue attribution model
-
Quarter – indicates quarter (as per calendar year) for which the attribution applies to.
| Attribute ID | Attribute Name | Attribute Description | Data type |
| SourceProgramAttributionID | Source ProgramAttribution ID | This attribute contains the unique ID for the object. | STRING |
| Quarter | Quarter | This attribute represents the quarter for which the attribution is calculated. | STRING |
| Type | Type | This attribute represents the type of Attribution - Revenue,Non-Revenue. | STRING |
| AttributionValue | Attribution Value | This attribute represents the attribution value in currency. | FLOAT |
| AttributionConversion | Attribution Conversion | This attribute represents the attribution in conversion units. | FLOAT |
| AttributionPercentage | Attribution Percentage | This attribute represents the attribution in conversion percentage. | FLOAT |
| MarketingProgramID | Marketing Program ID | This attribute contains the foreign key to the MarketingProgramID. | STRING |
| SourceMarketingProgramID | Source Marketing Program ID | This attribute contains the original form of the MarketingProgram ID from the source data system. | STRING |
| Product ID | Product ID | This attribute contains the foreign key to the ProductID. | STRING |
| SourceProductID | Source Product ID | This attribute contains the original form of the Product ID from the source data system. | STRING |