ChangelogBook a demoSign up

Expedia Group Media Solutions

Empower your advertising data by connecting to Expedia's Data Clean Room.

Supported syncing

TypeDescriptionSupported Sync Modes
Conversion DataSync data from any source to AWS Data Clean Room to use with Expedia Group Media Solutions conversion dataMirror

Mirror mode means that the current table will be cleared and replaced with all the rows in the new query result, every time the sync runs.

For more information about sync modes, refer to the sync modes docs.

Prerequisites

To get started, you need:

  • to partner with Expedia Group to collaborate in AWS Data Clean Room.
  • an S3 bucket to store your synced data in. Make sure that this bucket is only used for your data that you are syncing to use with Expedia.
  • an S3 bucket for Data Clean Room analysis results. This must be a different bucket than the bucket for storing synced data.
  • an AWS Data Clean Room collaboration membership ID. This can be found in your AWS Data Clean Room collaboration with Expedia under Details > Membership Details > Membership ID after creating a collaboration with Expedia.
  • AWS credentials configured in Hightouch with programmatic access enabled and permission to write to the S3 path, use Glue databases and tables, and associate tables to data clean rooms.

Ensure that the configured user has the following IAM permission policy:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*",
                "s3-object-lambda:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole",
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::${accountId}:role/${IAMRoleName}"
        }
    ]
}

And a separate IAM Role with the following permission policy:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "CloudWatchLogsAccess",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        },
        {
            "Sid": "GlueCatalogAccess",
            "Effect": "Allow",
            "Action": [
                "glue:CreateDatabase",
                "glue:GetDatabase",
                "glue:CreateTable",
                "glue:DeleteTable",
                "glue:GetTables",
                "glue:GetTable"
            ],
            "Resource": [
                "arn:aws:glue:us-east-1:${accountId}:catalog",
                "arn:aws:glue:us-east-1:${accountId}:database/ht_expedia__glue_database_sync_*",
                "arn:aws:glue:us-east-1:${accountId}:table/ht_expedia__glue_database_sync_*/*"
            ]
        },
        {
            "Sid": "S3AccessForGlue",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::{bucketName}",
                "arn:aws:s3:::${bucketName}/*"
            ]
        },
        {
            "Sid": "CleanRoomsAccess",
            "Effect": "Allow",
            "Action": [
                "cleanrooms:ListConfiguredTables",
                "cleanrooms:CreateConfiguredTable",
                "cleanrooms:GetConfiguredTable",
                "cleanrooms:ListConfiguredTableAssociations",
                "cleanrooms:CreateConfiguredTableAssociation",
                "cleanrooms:GetConfiguredTableAssociation"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowPassRole",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::${accountId}:role/${IAMRoleName}"
        }
    ]
}

and Trust policy:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowUserAssumeRole",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::${accountId}:user/${IAMUserName}"
            },
            "Action": "sts:AssumeRole"
        },
        {
            "Sid": "AllowGlueAndCleanRoomsService",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "cleanrooms.amazonaws.com",
                    "glue.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

Connect to AWS DCR + Expedia Group Media Solutions

Go to the Destinations overview page and click the Add destination button. Select Expedia Group Media Solutions and click Continue. You can then authenticate Hightouch to Expedia Group Media Solutions.

Enter the following fields into Hightouch:

  • Bucket Name
  • AWS Glue and Data Clean Room IAM Role Arn: For the custom role outlined above, the Role ARN can be found under the custom role's Summary > Arn
  • Data Clean Room Membership ID

Sync configuration

Once you've set up your Expedia Group Media Solutions destination and have a model to pull data from, you can set up your sync configuration to begin syncing data. Go to the Syncs overview page and click the Add sync button to begin. Then, select the relevant model and the Expedia Group Media Solutions destination you want to sync to.

Syncing conversion data

Sync data from any source to Expedia Group Media Solutions conversion data for analysis in AWS Data Clean Room.

Field mapping

Hightouch allows you to sync columns from your source to Expedia's AWS Data Clean Room with this schema:

MappingTypeRequired
Event IDstringNo
Timestamp (ISO8601)stringYes
Transaction value (USD)stringNo
Transaction categorystringNo
EmailstringNo
Email (SHA256 Hex)stringNo
Phone numberstringNo
Phone number (SHA256 Hex)stringNo

Hightouch recommends passing in all mappings with the type string to properly convert S3 files to AWS Data Clean Room collaboration tables.

Expedia recommends to share both email and phone numbers (either hashed or unhashed) to increase the match rate of the collaboration.

Expedia Data Clean Room collaboration

Adding your table to the collaboration

Hightouch handles associating a table with your data to the Expedia Data Clean Room collaboration. Additional analysis rules should be added to the Hightouch table that was added to the Expedia Data Clean Room collaboration to use your data with Expedia's.

Tips and troubleshooting

Common errors

To date, our customers haven't experienced any errors while using this destination. If you run into any issues, please don't hesitate to . We're here to help.

Live debugger

Hightouch provides complete visibility into the API calls made during each of your sync runs. We recommend reading our article on debugging tips and tricks to learn more.

Sync alerts

Hightouch can alert you of sync issues via Slack, PagerDuty, SMS, or email. For details, please visit our article on alerting.

Ready to get started?

Jump right in or a book a demo. Your first destination is always free.

Book a demoSign upBook a demo

Need help?

Our team is relentlessly focused on your success. Don't hesitate to reach out!

Feature requests?

We'd love to hear your suggestions for integrations and other features.

Privacy PolicyTerms of Service

Last updated: Aug 12, 2025

On this page
  • Supported syncing
  • Prerequisites
  • Connect to AWS DCR + Expedia Group Media Solutions
  • Sync configuration
  • Syncing conversion data
  • Expedia Data Clean Room collaboration
  • Adding your table to the collaboration
  • Tips and troubleshooting
  • Common errors
  • Live debugger
  • Sync alerts

Was this page helpful?