Search documentation...

K
ChangelogBook a demoSign up

X Ads (formerly Twitter Ads)

Send conversion web events to X and run campaigns with custom audiences, retargeting, and lookalikes directly from your warehouse

Overview

Build more robust campaigns on Twitter with up-to-date customer data from your data warehouse.

Getting started

Connect to Twitter

Add Twitter as a destination in Hightouch

  1. Log in to Hightouch or create a free Hightouch account
  2. Click on Destinations in the left sidebar
  3. Click on Add destination in the top right corner
  4. Select Twitter in the destination catalog and click Continue to proceed
  5. Proceed with the OAuth steps until you are redirected to the Hightouch website.
  6. Give your destination a name and unique slug (for example, Twitter Production” and Twitter-production)
  7. Click Finish to create your Twitter destination.

Sync configuration

Syncing custom audiences

This integration supports Segment Mode. New users in the model will be inserted into the Twitter Custom Audience. Users that are removed from the model will be removed from the Custom Audience.

Twitter account selection

In this section, select the Twitter account you would like to sync your data to.

Audience selection

This integration supports syncing to an existing audience or creating a new audience.

To use an existing segment:

  • Select Use existing audience from the radio buttons.
  • Select the name of the audience from the dropdown menu.

To create a new audience:

  • Select Create a new audience from the radio buttons.
  • Specify a custom name for this audience in the input field. Otherwise Hightouch will use the name of the model as the audience's name.

User identifers

Hightouch allows you to sync columns from your source to the supported Twitter fields.

Twitter allows mapping to various user identifiers, such as Email, Device ID, Twitter Handle, etc. Twitter requires all fields for users to be both normalized and hashed using SHA256 (with the exception of Partner User ID).

You can achieve this in your model with a function by using the encode(digest(value, 'sha256'),'hex') function in Postgres, or refer to the Template Mappings Section in this documentation to learn about how Hightouch can handle hashing these records for you.

Syncing conversion events

This integration supports syncing Web Conversion Events.

To ensure syncs send each event, your event model must use a truly unique primary key. See the events syncs documentation for more information.

Twitter account selection

In this section, select the Twitter account you would like to sync your data to.

Pixel ID (Universal Website Tag) account section

If the Pixel ID exist in your model, toggle Use Column, and select the appropriate column from the dropdown menu.

To retrieve your Pixel ID:

Where to find Pixel ID

  • Copy the ID and paste it in the Hightouch sync form.

Event selection

Given the correct Pixel ID, Hightouch will filter for the eligible events that allow conversion events to be synced to.

Select the event you'd like to sync to from the dropdown menu. If the ID for these events exist in your model, toggle Use Column, and select the appropriate column from the dropdown menu.

Identifier section

When syncing conversion events, Twitter expects one identifier at minimum, or you can provide both.

Select your choice for the sync from the radio buttons. This will render the fields in the mappings section, which you can map to from your model.

Field mapping

Hightouch allows you to sync columns from your source to the supported Twitter fields.

If you wish to use the Email Address as an identifier, Twitter expects it to be hashed using SHA256. You can achieve this in your model with a function by using the encode(digest(value, 'sha256'),'hex') function in Postgres, or refer to the Template Mappings section in this documentation to learn about how Hightouch can handle hashing these records for you.

Template mappings

You can leverage Hightouch's Template Mappings feature to allow Hightouch to handle hashing certain fields for you automatically.

To use this feature:

  • Select Template in the mappings window.
  • Select the column you would like to hash from the Variables section.
  • Select sha256 from the Functions section.
  • Click Apply to save.

Template Mappings Instruction

To find out more about Template Mapping and other Mapping features, visit our Mapping Data section.

Tips and troubleshooting

Below only applies to the audiences sync type.

Hightouch retrieves the audience metadata from Twitter in real-time. The matched number displayed in Hightouch should reflect what you see in Twitter. Note that the matched numbers are approximated to maintain privacy thresholds. Hightouch takes the matched count to calculate a match rate for your sync, where applicable. The calculation breakdown:

matched_user_count / # of rows queried in the latest sync run

The match rate is

not

calculated when:
  • syncing to an existing segment because the total number of records to ever be uploaded to the segment is unknown
  • removed users from your model is not removed in Twitter because the matched user count would be inflated in the calculation

Common causes for low match rates:

  • Your audience model is too small. Most ad platforms do not display the matched number unless there's at least one thousand matched users to maintain privacy thresholds.
  • The upload is still processing. We recommend waiting at least

    72 hours

    from the first sync run for numbers to settle.
  • Your data isn’t cleaned or hashed properly. Hightouch normalizes and hashes your data according to destination requirements, but it’s still good to make sure that the data is as clean as possible. Note that Hightouch cannot clean your data if you opt to hash it yourself. In that case, ensure you follow the data cleaning requirements forTwitter.

Common errors

If you encounter an error or question not listed below and need assistance, don't hesitate to . We're here to help.

400: INVALID_PARAMETER

The full error message looks something like this:

{
  "request": [
    {
      "params": {
        "account_id": "01ab234cdef",
        "custom_audience_id": "0a1b2"
      },
      "operation_type": "Update"
    }
  ],
  "operation_errors": [
    [
      {
        "code": "INVALID_PARAMETER",
        "message": "Tailored audience attribute value can not be empty.",
        "parameter": ""
      }
    ]
  ]
}

This error occurs if any of your field mappings include null values. Twitter doesn't accepted hashed null values. To resolve this, remove rows containing null values from your model's query results or enable the Don't sync null values option in the advanced mapper.

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.

Last updated: Mar 28, 2024

On this page

OverviewGetting startedConnect to TwitterSync configurationSyncing custom audiencesSyncing conversion eventsTemplate mappingsTips and troubleshootingCommon errorsLive debuggerSync alerts

Was this page helpful?