SST Enhancement
To support enhanced user profile enrichment across the platform, both Pixel Listener and DI API data sources must be configured to accept and map key identity and demographic attributes. This section ensures consistent and accurate user data updates within the profile system for each campaign.
This section involves inserting mapping configurations into the
DMPCampaignDataSourceMapping table. These mappings define how
specific attributes from incoming JSON payloads—such as customer_id,
email, phone, name, and location
details—are extracted and used to update user profiles.
- For Pixel Listener data sources, attributes are typically extracted from the
propertiesorotherIdsJSON objects. Mappings include:customer_id(from multiple possible keys)email,phone(fromotherIds)name(fromproperties)
- For DI API data sources, mappings are set for attributes like:
FIRST_NAME,LAST_NAME,email,mobile(encrypted or hashed fields)CITY,STATE,COUNTRY, andcustomerId
Each mapping entry requires the associated DataSource ID from the
DMPCampaignDataSource table and the corresponding Attribute
ID from the DMPCampaignDataDictionary table. Once mappings are
defined, changes are committed to the database, allowing the ingestion pipeline to
correctly identify and update user profiles using incoming event data.
Configure attribute mapping for Pixel Listener Data Source
To configure attribute mapping for Pixel Listener Data Source, follow the steps below:
- Open your SQL client, and run the following query to accept
customer_idand map to profile, replacing<DataSourceId>and<AttributeId>with actual values:INSERT INTO DMPCampaignDataSourceMapping (DMPCampaignDataSourceId, DMPCampaignDataDictionaryId, IsMandatory, ProfileUpdateFunction, Metadata) VALUES (<DataSourceId>, <AttributeId>, 0, 'UPDATE', '{"input_col": "properties__customer_id", "alternate_keys":["properties__userId","otherIds__customerId", "otherIds__customer_id"]}'); commit; - Accept and map
emailandphonefromotherIds, and run the following insert statements:INSERT INTO DMPCampaignDataSourceMapping (DMPCampaignDataSourceId, DMPCampaignDataDictionaryId, IsMandatory, ProfileUpdateFunction, Metadata) VALUES (<DataSourceID>, <AttributeId>, 0, 'UPDATE', '{"input_col": "otherIds__email"}'); INSERT INTO DMPCampaignDataSourceMapping (DMPCampaignDataSourceId, DMPCampaignDataDictionaryId, IsMandatory, ProfileUpdateFunction, Metadata) VALUES (<DataSourceID>, <AttributeId>, 0, 'UPDATE', '{"input_col": "otherIds__phone"}'); - Accept and map
namefromproperties, and run this insert statement:INSERT INTO DMPCampaignDataSourceMapping (DMPCampaignDataSourceId, DMPCampaignDataDictionaryId, IsMandatory, ProfileUpdateFunction, Metadata) VALUES (<DataSourceID>, <AttributeId>, 0, 'UPDATE', '{"input_col": "properties__name"}'); commit;
Configure attribute mapping for DI API Data Source
To configure attribute mapping for Pixel Listener Data Source, follow the steps below:
- Map identity and profile attributes from
propertiesJSON, and replace<DataSourceId>and<AttributeId>in each of the following statements:.INSERT INTO DMPCampaignDataSourceMapping (DMPCampaignDataSourceId, DMPCampaignDataDictionaryId, IsMandatory, ProfileUpdateFunction, Metadata) VALUES ((<DataSourceId>, <AttributeId>, 0, 'UPDATE', '{"input_col": "properties__FIRST_NAME"}'); INSERT INTO DMPCampaignDataSourceMapping (DMPCampaignDataSourceId, DMPCampaignDataDictionaryId, IsMandatory, ProfileUpdateFunction, Metadata) VALUES ((<DataSourceId>, <AttributeId>, 0, 'UPDATE', '{"input_col": "properties__LAST_NAME"}'); INSERT INTO DMPCampaignDataSourceMapping (DMPCampaignDataSourceId, DMPCampaignDataDictionaryId, IsMandatory, ProfileUpdateFunction, Metadata) VALUES ((<DataSourceId>, <AttributeId>, 0, 'UPDATE', '{"input_col": "hashed_email"}'); INSERT INTO DMPCampaignDataSourceMapping (DMPCampaignDataSourceId, DMPCampaignDataDictionaryId, IsMandatory, ProfileUpdateFunction, Metadata) VALUES ((<DataSourceId>, <AttributeId>, 0, 'UPDATE', '{"input_col": "hashed_mobile"}'); INSERT INTO DMPCampaignDataSourceMapping (DMPCampaignDataSourceId, DMPCampaignDataDictionaryId, IsMandatory, ProfileUpdateFunction, Metadata) VALUES ((<DataSourceId>, <AttributeId>, 0, 'UPDATE', '{"input_col": "properties__CITY"}'); INSERT INTO DMPCampaignDataSourceMapping (DMPCampaignDataSourceId, DMPCampaignDataDictionaryId, IsMandatory, ProfileUpdateFunction, Metadata) VALUES ((<DataSourceId>, <AttributeId>, 0, 'UPDATE', '{"input_col": "properties__STATE"}'); INSERT INTO DMPCampaignDataSourceMapping (DMPCampaignDataSourceId, DMPCampaignDataDictionaryId, IsMandatory, ProfileUpdateFunction, Metadata) VALUES ((<DataSourceId>, <AttributeId>, 0, 'UPDATE', '{"input_col": "properties__COUNTRY"}'); INSERT INTO DMPCampaignDataSourceMapping (DMPCampaignDataSourceId, DMPCampaignDataDictionaryId, IsMandatory, ProfileUpdateFunction, Metadata) VALUES ((<DataSourceId>, <AttributeId>, 0, 'UPDATE', '{"input_col": "properties__customerId"}'); commit;