<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RudderStack Docs – Syncs</title><link>https://www.rudderstack.com/docs/audiences/syncs/</link><description>Recent content in Syncs on RudderStack Docs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://www.rudderstack.com/docs/audiences/syncs/index.xml" rel="self" type="application/rss+xml"/><item><title>Audiences: Sync Audiences to Facebook Custom Audience</title><link>https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/</guid><description>
&lt;p>This guide takes you through the steps to sync &lt;a href="https://www.rudderstack.com/docs/audiences/overview/" >Audiences&lt;/a> created in RudderStack to your Facebook Custom Audience destination.&lt;/p>
&lt;blockquote class="success">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/tick.svg loading="lazy" alt="success" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">
You can sync your audiences to multiple destinations.
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="setup" data-heading="Setup" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h2 id="setup">Setup&lt;/h2>&lt;ol>
&lt;li>Set up an audience in RudderStack using the &lt;a href="https://www.rudderstack.com/docs/audiences/audience-builder/create-audience/" >Audience Builder&lt;/a>.&lt;/li>
&lt;li>Go to the &lt;strong>Syncs&lt;/strong> tab of the audience page and click &lt;strong>Add sync&lt;/strong>. Then, select &lt;strong>Facebook Custom Audience&lt;/strong>.&lt;/li>
&lt;li>Click &lt;strong>New destination&lt;/strong> — you can also select an already-configured destination here.&lt;/li>
&lt;li>Specify a unique name to identify this destination in RudderStack.&lt;/li>
&lt;li>In the &lt;strong>Event delivery account&lt;/strong> section, click &lt;strong>Select&lt;/strong> to choose from an existing Facebook Ads account from the list. You can also click &lt;strong>Add account&lt;/strong> and authenticate using a Facebook API access token:&lt;/li>
&lt;/ol>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Account Name&lt;/td>
&lt;td style="text-align:left">Specify a unique Custom Audience account name&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Access Token&lt;/td>
&lt;td style="text-align:left">Enter the &lt;a href="#where-can-i-find-the-user-access-token-for-the-application" >access token&lt;/a> of your business application set up for accessing the Facebook Marketing API&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">App Secret&lt;/td>
&lt;td style="text-align:left">This field is &lt;strong>optional&lt;/strong>. Enter the &lt;a href="https://developers.facebook.com/docs/facebook-login/security/#appsecret" >app secret&lt;/a> from the &lt;strong>Basic app settings&lt;/strong> page of your &lt;a href="https://developers.facebook.com/" >Facebook Developer account&lt;/a>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;ol start="6">
&lt;li>The &lt;strong>Ad Account ID&lt;/strong> field is automatically pre-populated based on the selected Facebook Ads account — select the relevant ID from the dropdown. Then, click &lt;strong>Next&lt;/strong>.&lt;/li>
&lt;/ol>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="configure-sync" data-heading="Configure sync" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h2 id="configure-sync">Configure sync&lt;/h2>&lt;p>This section lists the settings to correctly configure your audience syncs to the Facebook Custom Audience destination.&lt;/p>
&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">&lt;p>RudderStack supports syncing to the following two audience types:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://developers.facebook.com/docs/marketing-api/audiences/guides/custom-audiences" >Custom Audiences&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://en-gb.facebook.com/business/help/917879191754763?id=401668390442328" >Value-based lookalike audiences&lt;/a> — see &lt;a href="#create-new-audience" >Create new value-based lookalike audiences&lt;/a> section for more information.&lt;/li>
&lt;/ul>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="select-audience" data-heading="Select audience" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h3 id="select-audience">Select audience&lt;/h3>&lt;p>In this section, you can create a new audience or use an existing one.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Create new audience&lt;/strong>: Use this option to create a new custom audience in Facebook. You can specify the name and description of the new Facebook audience.&lt;/li>
&lt;/ul>
&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">If you select the &lt;strong>Create new audience&lt;/strong> option, RudderStack creates a new audience in Facebook with the same &lt;strong>Ad Account ID&lt;/strong> configured in the &lt;a href="#setup" >connection settings&lt;/a>.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;ul>
&lt;li>&lt;strong>Use existing audience&lt;/strong>: Use this option if you have an existing custom audience. RudderStack automatically populates this field with the relevant audiences based on your specified &lt;a href="#setup" >connection settings&lt;/a>.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sync-mode" data-heading="Sync mode" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h3 id="sync-mode">Sync mode&lt;/h3>&lt;p>RudderStack supports only &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-modes/#mirror-mode" >Mirror mode&lt;/a> for this integration.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="map-identifiers" data-heading="Map identifiers" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h3 id="map-identifiers">Map identifiers&lt;/h3>&lt;p>In this section, you can map your warehouse columns to specific Custom Audience fields that represent your audience&amp;rsquo;s identity.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/destinations/fb-custom-audience/map-identifiers-syncs.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/destinations/fb-custom-audience/map-identifiers-syncs.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/destinations/fb-custom-audience/map-identifiers-syncs.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="advanced-settings" data-heading="Advanced settings" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h3 id="advanced-settings">Advanced settings&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Automatically hash PII data&lt;/td>
&lt;td style="text-align:left">When set to &lt;strong>Yes&lt;/strong>, RudderStack hash-encodes user data irrespective of whether the data is already hashed or not. &lt;br />&lt;br />&lt;strong>Note&lt;/strong>: Facebook expects the user data to be hash encoded using &lt;code>SHA256&lt;/code>. &lt;br />&lt;br />See &lt;a href="#data-hashing" >Data hashing&lt;/a> section for more information.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Normalize data formatting&lt;/td>
&lt;td style="text-align:left">When set to &lt;strong>Yes&lt;/strong>, Facebook automatically cleans and standardizes the audience data, like emails and phone numbers. &lt;br />&lt;br />See &lt;a href="#data-normalization" >Data normalization&lt;/a> section for more information.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Specify where your data originates from&lt;/td>
&lt;td style="text-align:left">Select the relevant field from the dropdown that describes the origin of your data — this helps Facebook classify the user list and apply appropriate matching and privacy rules.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Specify identifier type&lt;/td>
&lt;td style="text-align:left">Choose the relevant identifier type from the dropdown that allows Facebook Ads to match users to their profiles.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sync-settings" data-heading="Sync settings" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h2 id="sync-settings">Sync settings&lt;/h2>&lt;p>RudderStack provides two options to schedule your audience syncs:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Run syncs automatically&lt;/strong> based on a specified frequency (every 5 minutes, 10 minutes, 15 minutes, 30 minutes, 1 hour, 3 hours, 6 hours, 12 hours, or 24 hours) and a specific time (in UTC).&lt;/li>
&lt;li>&lt;strong>Run syncs manually&lt;/strong> — you can trigger a sync manually by clicking the &lt;strong>Sync Now&lt;/strong> button in the sync details page. Note that in this setting, you will need to click &lt;strong>Run sync&lt;/strong> every time you want to sync your audience.&lt;/li>
&lt;/ul>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/destinations/fb-custom-audience/run-sync.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/destinations/fb-custom-audience/run-sync.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/destinations/fb-custom-audience/run-sync.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sync-observability-settings" data-heading="Sync observability settings" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h4 id="sync-observability-settings">Sync observability settings&lt;/h4>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Retain sync logs&lt;/td>
&lt;td style="text-align:left">This setting is toggled on by default and instructs RudderStack to store the sync logs in your warehouse. You can also configure the below settings: &lt;br />&lt;br />&lt;table>&lt;tr>&lt;th width="20%">Setting&lt;/th>&lt;th width="80%">Description&lt;/th>&lt;/tr>&lt;tr>&lt;td>Sync log retention&lt;/td>&lt;td>Specify the retention period of the &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-observability/#sync-logs" >sync logs&lt;/a> in your warehouse. &lt;br />&lt;br />If you set it to 1, then RudderStack deletes any sync log older than a day (in UTC time). &lt;/td>&lt;/tr>&lt;tr>&lt;td>Snapshot table retention&lt;/td>&lt;td>Specify the number of &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-observability/#snapshot-table-schema" >snapshot tables&lt;/a> to retain. &lt;/td>&lt;/tr>&lt;/table>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Retry failed records&lt;/td>
&lt;td style="text-align:left">This setting is toggled on by default and causes RudderStack to continually &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-observability/#retry-failed-records" >retry sending the failed records&lt;/a>.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">Storing sync logs and snapshot tables may incur additional warehouse costs.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="enable-sync" data-heading="Enable sync" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h2 id="enable-sync">Enable sync&lt;/h2>&lt;p>Once the setup is complete, make sure to click &lt;strong>Enable sync&lt;/strong> to enable and activate the sync.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/destinations/tiktok/enable-sync.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/destinations/tiktok/enable-sync.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/destinations/tiktok/enable-sync.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="manage-value-based-lookalike-audiences" data-heading="Manage value-based lookalike audiences" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h2 id="manage-value-based-lookalike-audiences">Manage value-based lookalike audiences&lt;/h2>&lt;p>This section describes the steps to map your warehouse data to a new or existing value-based lookalike audience.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="new-audience" data-heading="New audience" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h4 id="new-audience">New audience&lt;/h4>&lt;p>To create a new &lt;a href="https://en-gb.facebook.com/business/help/917879191754763?id=401668390442328" >value-based lookalike audience&lt;/a>, map a relevant warehouse column to the &lt;strong>Lookalike Value&lt;/strong> field in the &lt;a href="#map-identifiers" >Identifier mappings&lt;/a>:&lt;/p>
&lt;ol>
&lt;li>In the &lt;a href="#select-audience" >Select audience&lt;/a> section, select &lt;strong>Create new audience&lt;/strong> and specify the audience name and description.&lt;/li>
&lt;li>In the &lt;strong>Choose identifier mappings&lt;/strong> window, map a relevant warehouse column to the &lt;strong>Lookalike Value&lt;/strong> field.&lt;/li>
&lt;/ol>
&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">&lt;p>Note that:&lt;/p>
&lt;ul>
&lt;li>RudderStack will not create a value-based lookalike audience if you do not include the &lt;strong>Lookalike Value&lt;/strong> in your identifier mappings — it will create a &lt;a href="https://developers.facebook.com/docs/marketing-api/audiences/guides/custom-audiences" >custom audience&lt;/a> instead.&lt;/li>
&lt;li>You can update the mapping for the &lt;strong>Lookalike Value&lt;/strong> field after the audience is created.&lt;/li>
&lt;/ul>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/destinations/fb-custom-audience/lookalike-value-mapping-new.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/destinations/fb-custom-audience/lookalike-value-mapping-new.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/destinations/fb-custom-audience/lookalike-value-mapping-new.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;ol start="4">
&lt;li>Set up the other identifier mappings as per your requirement.&lt;/li>
&lt;li>Continue with the rest of the setup.&lt;/li>
&lt;/ol>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="existing-value-based-lookalike-audience" data-heading="Existing value-based lookalike audience" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h4 id="existing-value-based-lookalike-audience">Existing value-based lookalike audience&lt;/h4>&lt;ol>
&lt;li>In the &lt;a href="#select-audience" >Select audience&lt;/a> section, select &lt;strong>Use existing audience&lt;/strong> and select the value-based lookalike audience from the dropdown.&lt;/li>
&lt;li>In the &lt;strong>Choose identifier mappings&lt;/strong> window, map a relevant warehouse column to the &lt;strong>Lookalike Value&lt;/strong> field.&lt;/li>
&lt;/ol>
&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">You can update the mapping for the &lt;strong>Lookalike Value&lt;/strong> field after the audience is created.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;ol start="3">
&lt;li>Set up the other identifier mappings as per your requirement.&lt;/li>
&lt;li>Continue with the rest of the setup.&lt;/li>
&lt;/ol>
&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">You cannot change the audience type from a value-based lookalike audience to a regular custom audience (and vice versa) &lt;strong>after&lt;/strong> the audience is created.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="schema-fields-mapping" data-heading="Schema fields mapping" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h2 id="schema-fields-mapping">Schema fields mapping&lt;/h2>&lt;p>The following table details the schema fields mappings specified in the RudderStack dashboard:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Dashboard field name&lt;/th>
&lt;th style="text-align:left">Marketing API schema field (RudderStack-supported field name)&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;code>EMAIL&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>EMAIL&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>PHONE&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>PHONE&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>GENDER&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>GEN&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>MADID&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>MADID&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>EXTERN_ID&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>EXTERN_ID&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>DOB YEAR (YYYY)&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>DOBY&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>DOB MONTH (MM)&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>DOBM&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>DOB DATE (DD)&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>DOBD&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>LAST NAME&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>LN&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>FIRST NAME&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>FN&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>FIRST NAME INITIAL&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>FI&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>CITY&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>CT&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>US STATES&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>ST&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>ZIP&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>ZIP&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>COUNTRY&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>COUNTRY&lt;/code>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Note that the &lt;code>MADID&lt;/code> and &lt;code>EXTERN_ID&lt;/code> fields are not hashed.&lt;/p>
&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">RudderStack modifies the schema names visible in the dashboard to ensure better readability. However, during the event call, the field names &lt;strong>must be exactly the same as&lt;/strong> the schema names specified by Facebook Marketing API, as mentioned in the table above.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="data-normalization" data-heading="Data normalization" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h2 id="data-normalization">Data normalization&lt;/h2>&lt;p>By default, RudderStack formats the data as prescribed by Facebook before sending it to the destination, as shown in the below table:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Schema field name&lt;/th>
&lt;th style="text-align:left">Example input&lt;/th>
&lt;th style="text-align:left">Formatted output (before hashing)&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;code>EMAIL&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>ABC@gmail.com&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>abc@gmail.com&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>PHONE&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>0@96346895&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>96346895&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>GEN&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>FEMALE&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>f&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>DOBD&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>2&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>02&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>DOBM&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>1&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>01&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>LN &amp;amp; FN&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>Abc,@&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>abc@&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>FI&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>Mr.&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>mr.&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>CT&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>HN#&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>hn&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>ST&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>? AL ?&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>al&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>ZIP&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>11502 @bc&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>11502@bc&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>COUNTRY&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>IN&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;code>in&lt;/code>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>If you enable the &lt;a href="#advanced-settings" >Normalize data formatting&lt;/a> setting, RudderStack formats the user data as prescribed by the Facebook Marketing API.&lt;/p>
&lt;p>After normalization, RudderStack validates each field before sending it to Facebook.&lt;/p>
&lt;ul>
&lt;li>If a field is determined to be invalid, RudderStack &lt;strong>does not&lt;/strong> send it to Facebook.&lt;/li>
&lt;li>If all fields in a row are invalid, then the entire row is rejected and marked as failed&lt;/li>
&lt;/ul>
&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">RudderStack first normalizes the data and then validates it, skipping any invalid rows. Then, it &lt;a href="#data-hashing" >hashes the data&lt;/a> before sending it to Facebook.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="data-hashing" data-heading="Data hashing" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h2 id="data-hashing">Data hashing&lt;/h2>&lt;p>The &lt;a href="#advanced-settings" >Automatically hash PII data&lt;/a> setting lets you hash your user data before sending it to Facebook. This setting is enabled by default.&lt;/p>
&lt;ul>
&lt;li>Configure the setting to &lt;strong>Yes&lt;/strong> if your incoming data is not pre-hashed&lt;/li>
&lt;li>Configure this setting to &lt;strong>No&lt;/strong> if your data is already hashed&lt;/li>
&lt;/ul>
&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">&lt;p>Incorrect configuration of the &lt;strong>Automatically hash PII data&lt;/strong> setting will result in failures.&lt;/p>
&lt;ul>
&lt;li>If the &lt;strong>Automatically hash PII data&lt;/strong> setting is configured to &lt;strong>Yes&lt;/strong> and your data is pre-hashed, the event will fail.&lt;/li>
&lt;li>If the &lt;strong>Automatically hash PII data&lt;/strong> setting is configured to &lt;strong>No&lt;/strong> and your data is not pre-hashed, the event will fail.&lt;/li>
&lt;/ul>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;p>RudderStack rejects such events with a clear error message, for example:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl">Hashing is disabled but the value for field EMAIL appears to be unhashed. Either enable hashing or send pre-hashed data.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>You will also see errors in the &lt;strong>Events&lt;/strong> tab for cases that were previously marked as successful, but were effectively resulting in no matches, helping you quickly identify and fix any data quality or configuration issues.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="faq" data-heading="FAQ" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h2 id="faq">FAQ&lt;/h2>&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="where-can-i-find-the-ad-account-id" data-heading="Where can I find the Ad Account ID?" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h4 id="where-can-i-find-the-ad-account-id">Where can I find the Ad Account ID?&lt;/h4>&lt;p>Go to your Facebook &lt;a href="https://www.facebook.com/adsmanager/manage/" >Ads Manager account&lt;/a> where you can find the Ad Account ID in the account&amp;rsquo;s drop-down menu:&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/event-stream-destinations/ads-account-id-fb.webp" href="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/ads-account-id-fb.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/ads-account-id-fb.webp"
alt="Audience source"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;p>You can click on &lt;strong>See More Ad Accounts&lt;/strong> if the required Ad account is not visible.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="where-can-i-find-the-user-access-token-for-the-application" data-heading="Where can I find the user Access Token for the application?" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h4 id="where-can-i-find-the-user-access-token-for-the-application">Where can I find the user Access Token for the application?&lt;/h4>&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">To generate the user access token for your application, you must first &lt;a href="#how-do-i-add-an-app-as-a-system-user-asset-with-manage-permissions" >add it as a system user asset&lt;/a> with manage permissions.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;p>Follow these steps to generate a user access token required to use the Facebook Marketing API:&lt;/p>
&lt;ol>
&lt;li>Under the system user, click the &lt;strong>Generate New Token&lt;/strong> button and select the app from the dropdown.&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/event-stream-destinations/fb-custom-audience-generate-new-token.webp" href="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/fb-custom-audience-generate-new-token.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/fb-custom-audience-generate-new-token.webp"
alt="Generate new token"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/event-stream-destinations/fb-custom-audience-token-select-app.webp" href="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/fb-custom-audience-token-select-app.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/fb-custom-audience-token-select-app.webp"
alt="Select app for the token"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;ol start="2">
&lt;li>Choose the &lt;strong>Token expiration&lt;/strong> time.&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/event-stream-destinations/fb-custom-audience-token-settings.webp" href="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/fb-custom-audience-token-settings.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/fb-custom-audience-token-settings.webp"
alt="Token settings"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;ol start="3">
&lt;li>Under &lt;strong>Available permissions&lt;/strong>, select &lt;code>ads_read&lt;/code> and &lt;code>ads_management&lt;/code>.&lt;/li>
&lt;/ol>
&lt;p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/event-stream-destinations/fb-custom-audience-available-permissions-1.webp" href="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/fb-custom-audience-available-permissions-1.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/fb-custom-audience-available-permissions-1.webp"
alt="Token permissions"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/event-stream-destinations/fb-custom-audience-available-permissions-2.webp" href="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/fb-custom-audience-available-permissions-2.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/fb-custom-audience-available-permissions-2.webp"
alt="Token permissions"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;/p>
&lt;ol start="4">
&lt;li>Click the &lt;strong>Generate Token&lt;/strong> button and copy the token credentials.&lt;/li>
&lt;/ol>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="why-am-i-seeing-the-error-failed-to-update-the-custom-audience-facebook-responded-with-error-code-2650" data-heading="Why am I seeing the error “Failed to update the custom audience. Facebook responded with error code: 2650?" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/facebook-custom-audience/" data-title="Sync Audiences to Facebook Custom Audience" -->
&lt;h4 id="why-am-i-seeing-the-error-failed-to-update-the-custom-audience-facebook-responded-with-error-code-2650">Why am I seeing the error “Failed to update the custom audience. Facebook responded with error code: 2650?&lt;/h4>&lt;p>This error is not explicitly documented by Facebook but is a known API-level limitation. &lt;code>Error 2650&lt;/code> typically occurs when attempting to add users to a custom audience that was created using a different data source.&lt;/p>
&lt;p>For example:&lt;/p>
&lt;ul>
&lt;li>Audience originally created via manual file upload&lt;/li>
&lt;li>Audience created through another platform or integration&lt;/li>
&lt;/ul>
&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">Facebook does not allow mixing data source types within the same custom audience.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;br /></description></item><item><title>Audiences: Sync Audiences to Google Ads Remarketing Lists (Customer Match)</title><link>https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/</guid><description>
&lt;p>This guide takes you through the steps to sync &lt;a href="https://www.rudderstack.com/docs/audiences/overview/" >Audiences&lt;/a> created in RudderStack to your Google Ads Remarketing Lists destination.&lt;/p>
&lt;blockquote class="success">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/tick.svg loading="lazy" alt="success" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">
You can sync your audiences to multiple destinations.
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="prerequisites-google-ads-permissions" data-heading="Prerequisites: Google Ads permissions" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/" data-title="Sync Audiences to Google Ads Remarketing Lists (Customer Match)" -->
&lt;h2 id="prerequisites-google-ads-permissions">Prerequisites: Google Ads permissions&lt;/h2>&lt;p>This integration relies on the authorizing Google Ads user&amp;rsquo;s &lt;a href="https://support.google.com/google-ads/answer/9978556" >underlying permissions&lt;/a>.&lt;/p>
&lt;p>Note that the API calls to Google Ads will fail if you authorize this integration without the &lt;a href="#what-are-the-account-permissions-required-for-the-google-ads-remarketing-lists-integration" >&lt;strong>Standard&lt;/strong> or &lt;strong>Admin&lt;/strong> permissions&lt;/a>.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="setup" data-heading="Setup" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/" data-title="Sync Audiences to Google Ads Remarketing Lists (Customer Match)" -->
&lt;h2 id="setup">Setup&lt;/h2>&lt;ol>
&lt;li>Set up an audience in RudderStack using the &lt;a href="https://www.rudderstack.com/docs/audiences/audience-builder/create-audience/" >Audience Builder&lt;/a>.&lt;/li>
&lt;li>Go to the &lt;strong>Syncs&lt;/strong> tab of the audience page and click &lt;strong>Add sync&lt;/strong>. Then, select &lt;strong>Google Ads Remarketing Lists&lt;/strong>.&lt;/li>
&lt;li>Click &lt;strong>New destination&lt;/strong> — you can also select an already-configured destination here.&lt;/li>
&lt;li>Specify a unique name to identify this destination in RudderStack.&lt;/li>
&lt;li>In the &lt;strong>Event delivery account&lt;/strong> section, click &lt;strong>Select&lt;/strong> to choose from an existing Google Ads account from the list. You can also click &lt;strong>Add account&lt;/strong> and authenticate via OAuth, by specifying the following settings:&lt;/li>
&lt;/ol>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Account Name&lt;/td>
&lt;td style="text-align:left">Specify a unique account name&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">oAuth settings&lt;/td>
&lt;td style="text-align:left">Click &lt;strong>Connect account&lt;/strong>, sign in with Google, and give RudderStack the required permissions to access your Google Ads account.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;ol start="6">
&lt;li>RudderStack automatically pre-populates the &lt;strong>Custom ID&lt;/strong> associated with your Google Ads account — select the relevant ID from the dropdown.&lt;/li>
&lt;li>Turn on the &lt;strong>Subaccount&lt;/strong> setting if you are using a Google Ads subaccount. &lt;br />&lt;br />&lt;strong>Note&lt;/strong>: See this &lt;a href="https://support.google.com/campaignmanager/answer/2829448?hl=en#zippy=%2Cwhat-are-subaccounts" >guide&lt;/a> for more information on subaccounts.&lt;/li>
&lt;li>If &lt;strong>Subaccount&lt;/strong> is toggled on, enter the &lt;strong>Login Customer ID&lt;/strong> of the parent (manager) account associated with the subaccount.&lt;/li>
&lt;li>Click &lt;strong>Next&lt;/strong> to configure the mapping settings.&lt;/li>
&lt;/ol>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="mapping-settings" data-heading="Mapping settings" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/" data-title="Sync Audiences to Google Ads Remarketing Lists (Customer Match)" -->
&lt;h2 id="mapping-settings">Mapping settings&lt;/h2>&lt;p>This section lists the settings to correctly map data from your audience to the Google Ads Remarketing Lists destination.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="select-user-list" data-heading="Select user list" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/" data-title="Sync Audiences to Google Ads Remarketing Lists (Customer Match)" -->
&lt;h3 id="select-user-list">Select user list&lt;/h3>&lt;p>In this section, you can create a new user list or use an existing one.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Create new list&lt;/strong>: Use this option to create a new list in Google Ads. You can specify the name and description of the new list.&lt;/li>
&lt;li>&lt;strong>Use existing list&lt;/strong>: Use this option if you have an existing list in Google Ads. RudderStack automatically populates this field with the relevant lists based on your specified &lt;a href="#setup" >connection settings&lt;/a>.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sync-mode" data-heading="Sync mode" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/" data-title="Sync Audiences to Google Ads Remarketing Lists (Customer Match)" -->
&lt;h3 id="sync-mode">Sync mode&lt;/h3>&lt;p>RudderStack supports only &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-modes/#mirror-mode" >Mirror mode&lt;/a> for this integration.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="select-list-type" data-heading="Select list type" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/" data-title="Sync Audiences to Google Ads Remarketing Lists (Customer Match)" -->
&lt;h3 id="select-list-type">Select list type&lt;/h3>&lt;p>If you select the &lt;strong>Create new list&lt;/strong> option, you need to select the &lt;a href="https://developers.google.com/google-ads/api/reference/rpc/v23/CustomerMatchUploadKeyTypeEnum.CustomerMatchUploadKeyType" >type of list&lt;/a> where you want to sync the data. RudderStack provides three options:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">List type&lt;/th>
&lt;th style="text-align:left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">CONTACT_INFO&lt;/td>
&lt;td style="text-align:left">You can send email, phone number, and address information in this list&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">CRM_ID&lt;/td>
&lt;td style="text-align:left">You can send internal customer IDs in this list&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">MOBILE_ADVERTISING_ID&lt;/td>
&lt;td style="text-align:left">You can send mobile advertising IDs (IDFA/GAID) in this list &lt;br />&lt;br />&lt;strong>Note&lt;/strong>: If selected, specify the &lt;strong>App ID&lt;/strong> of the mobile app the data was collected from. &lt;br />&lt;br />&lt;ul>&lt;li>For iOS, it is the 9-digit number at the end of the App Store URL, for example, &lt;code>123456789&lt;/code>.&lt;/li>&lt;li>For Android, it&amp;rsquo;s the package name, for example, &lt;code>com.sampleapp.samplename&lt;/code>.&lt;/li>&lt;/ul>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="map-identifiers" data-heading="Map identifiers" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/" data-title="Sync Audiences to Google Ads Remarketing Lists (Customer Match)" -->
&lt;h3 id="map-identifiers">Map identifiers&lt;/h3>&lt;p>In this section, you can map your warehouse columns to specific Google Ads fields that represent your audience&amp;rsquo;s identity.&lt;/p>
&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">The fields available for mapping depend on the &lt;a href="#select-list-type" >list type&lt;/a> you select.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/destinations/garl/sync-map-identifiers.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/destinations/garl/sync-map-identifiers.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/destinations/garl/sync-map-identifiers.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="advanced-settings" data-heading="Advanced settings" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/" data-title="Sync Audiences to Google Ads Remarketing Lists (Customer Match)" -->
&lt;h3 id="advanced-settings">Advanced settings&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Automatically hash PII data&lt;/td>
&lt;td style="text-align:left">When set to &lt;strong>Yes&lt;/strong>, RudderStack hash-encodes sensitive user data like email, phone, first name, and last name in the SHA-256 format. &lt;br />&lt;br />See &lt;a href="#data-hashing" >Data hashing&lt;/a> section for more information.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Specify user consent&lt;/td>
&lt;td style="text-align:left">Specify the consent type for the uploaded users for using their data in Google Ads. RudderStack provides four options for this setting:&lt;br />&lt;br />&lt;ul>&lt;li>&lt;strong>Unspecified&lt;/strong>&lt;/li>&lt;li> &lt;strong>Unknown&lt;/strong>&lt;/li>&lt;li>&lt;strong>Granted&lt;/strong>&lt;/li>&lt;li>&lt;strong>Denied&lt;/strong>&lt;/li>&lt;/ul>Note that if you do not set this field, RudderStack sets it to &lt;strong>Unspecified&lt;/strong>, by default.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Specify ad personalization consent&lt;/td>
&lt;td style="text-align:left">Specify consent for uploaded users for personalizing ads. RudderStack provides four options for this setting:&lt;br />&lt;br />&lt;ul>&lt;li>&lt;strong>Unspecified&lt;/strong>&lt;/li>&lt;li> &lt;strong>Unknown&lt;/strong>&lt;/li>&lt;li>&lt;strong>Granted&lt;/strong>&lt;/li>&lt;li>&lt;strong>Denied&lt;/strong>&lt;/li>&lt;/ul>Note that if you do not set this field, RudderStack sets it to &lt;strong>Unspecified&lt;/strong> by default.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sync-settings" data-heading="Sync settings" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/" data-title="Sync Audiences to Google Ads Remarketing Lists (Customer Match)" -->
&lt;h2 id="sync-settings">Sync settings&lt;/h2>&lt;p>RudderStack provides two options to schedule your audience syncs:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Run syncs automatically&lt;/strong> based on a specified frequency (every 5 minutes, 10 minutes, 15 minutes, 30 minutes, 1 hour, 3 hours, 6 hours, 12 hours, or 24 hours) and a specific time (in UTC).&lt;/li>
&lt;li>&lt;strong>Run syncs manually&lt;/strong> — you can trigger a sync manually by clicking the &lt;strong>Sync Now&lt;/strong> button in the sync details page. Note that in this setting, you will need to click &lt;strong>Run sync&lt;/strong> every time you want to sync your audience.&lt;/li>
&lt;/ul>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/destinations/fb-custom-audience/run-sync.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/destinations/fb-custom-audience/run-sync.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/destinations/fb-custom-audience/run-sync.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sync-observability-settings" data-heading="Sync observability settings" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/" data-title="Sync Audiences to Google Ads Remarketing Lists (Customer Match)" -->
&lt;h4 id="sync-observability-settings">Sync observability settings&lt;/h4>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Retain sync logs&lt;/td>
&lt;td style="text-align:left">This setting is toggled on by default and instructs RudderStack to store the sync logs in your warehouse. You can also configure the below settings: &lt;br />&lt;br />&lt;table>&lt;tr>&lt;th width="20%">Setting&lt;/th>&lt;th width="80%">Description&lt;/th>&lt;/tr>&lt;tr>&lt;td>Sync log retention&lt;/td>&lt;td>Specify the retention period of the &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-observability/#sync-logs" >sync logs&lt;/a> in your warehouse. &lt;br />&lt;br />If you set it to 1, then RudderStack deletes any sync log older than a day (in UTC time). &lt;/td>&lt;/tr>&lt;tr>&lt;td>Snapshot table retention&lt;/td>&lt;td>Specify the number of &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-observability/#snapshot-table-schema" >snapshot tables&lt;/a> to retain. &lt;/td>&lt;/tr>&lt;/table>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Retry failed records&lt;/td>
&lt;td style="text-align:left">This setting is toggled on by default and causes RudderStack to continually &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-observability/#retry-failed-records" >retry sending the failed records&lt;/a>.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">Storing sync logs and snapshot tables may incur additional warehouse costs.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="enable-sync" data-heading="Enable sync" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/" data-title="Sync Audiences to Google Ads Remarketing Lists (Customer Match)" -->
&lt;h2 id="enable-sync">Enable sync&lt;/h2>&lt;p>Once the setup is complete, make sure to click &lt;strong>Enable sync&lt;/strong> to enable and activate the sync.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/destinations/tiktok/enable-sync.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/destinations/tiktok/enable-sync.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/destinations/tiktok/enable-sync.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="data-normalization" data-heading="Data normalization" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/" data-title="Sync Audiences to Google Ads Remarketing Lists (Customer Match)" -->
&lt;h2 id="data-normalization">Data normalization&lt;/h2>&lt;p>By default, RudderStack automatically cleans and standardizes the data as prescribed by Google Ads.&lt;/p>
&lt;p>After normalization, RudderStack validates each field before sending it to Google Ads:&lt;/p>
&lt;ul>
&lt;li>If a field is determined to be invalid, RudderStack &lt;strong>does not&lt;/strong> send it to Google Ads.&lt;/li>
&lt;li>If all fields in a row are invalid, then the entire row is rejected and marked as failed&lt;/li>
&lt;/ul>
&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">RudderStack first normalizes the data and then validates it, skipping any invalid rows. Then, it &lt;a href="#data-hashing" >hashes the data&lt;/a> before sending it to Google Ads.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="data-hashing" data-heading="Data hashing" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/" data-title="Sync Audiences to Google Ads Remarketing Lists (Customer Match)" -->
&lt;h2 id="data-hashing">Data hashing&lt;/h2>&lt;p>The &lt;a href="#advanced-settings" >Automatically hash PII data&lt;/a> setting lets you hash your user data before sending it to Google Ads. This setting is enabled by default.&lt;/p>
&lt;ul>
&lt;li>Configure the setting to &lt;strong>Yes&lt;/strong> if your incoming data is not pre-hashed&lt;/li>
&lt;li>Configure this setting to &lt;strong>No&lt;/strong> if your data is already hashed&lt;/li>
&lt;/ul>
&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">&lt;p>Incorrect configuration of the &lt;strong>Automatically hash PII data&lt;/strong> setting will result in failures.&lt;/p>
&lt;ul>
&lt;li>If the &lt;strong>Automatically hash PII data&lt;/strong> setting is configured to &lt;strong>Yes&lt;/strong> and your data is pre-hashed, the event will fail.&lt;/li>
&lt;li>If the &lt;strong>Automatically hash PII data&lt;/strong> setting is configured to &lt;strong>No&lt;/strong> and your data is not pre-hashed, the event will fail.&lt;/li>
&lt;/ul>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;p>RudderStack rejects such events with a clear error message, for example:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl">Hashing is disabled but the value for field EMAIL appears to be unhashed. Either enable hashing or send pre-hashed data.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>You will also see errors in the &lt;strong>Events&lt;/strong> tab for cases that were previously marked as successful, but were effectively resulting in no matches, helping you quickly identify and fix any data quality or configuration issues.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="faq" data-heading="FAQ" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/" data-title="Sync Audiences to Google Ads Remarketing Lists (Customer Match)" -->
&lt;h2 id="faq">FAQ&lt;/h2>&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="what-are-the-account-permissions-required-for-the-google-ads-remarketing-lists-integration" data-heading="What are the account permissions required for the Google Ads Remarketing Lists integration?" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/" data-title="Sync Audiences to Google Ads Remarketing Lists (Customer Match)" -->
&lt;h4 id="what-are-the-account-permissions-required-for-the-google-ads-remarketing-lists-integration">What are the account permissions required for the Google Ads Remarketing Lists integration?&lt;/h4>&lt;p>Make sure the customer account used for OAuth verification adheres to Google&amp;rsquo;s &lt;a href="https://support.google.com/google-ads/answer/6299717" >Customer Match policy&lt;/a> and has &lt;strong>Standard&lt;/strong> or higher (&lt;strong>Administrative&lt;/strong>) access level permissions.&lt;/p>
&lt;p>For more information on the access level permissions, refer to this &lt;a href="https://support.google.com/google-ads/answer/9978556?visit_id=637611563637058259-4176462731&amp;amp;rd=1" >Google Ads support page&lt;/a>.&lt;/p>
&lt;p>Follow these steps to set the access level:&lt;/p>
&lt;ol>
&lt;li>Sign into to your Google Ads account and go to &lt;strong>TOOLS AND SETTINGS&lt;/strong> &amp;gt; &lt;strong>Access and security&lt;/strong>:&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/event-stream-destinations/gads-access-security.webp" href="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/gads-access-security.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/gads-access-security.webp"
alt="Access and Security option in Google Ads dashboard"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;ol start="2">
&lt;li>Enter the email address of the account. From the list of permissions, select &lt;strong>Standard&lt;/strong> or &lt;strong>Administrative&lt;/strong>. Then, click &lt;strong>SEND INVITATION&lt;/strong>:&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/event-stream-destinations/gads-specify-access-level.webp" href="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/gads-specify-access-level.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/gads-specify-access-level.webp"
alt="Specifying access levels"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;p>The account will have the required access-level permissions once they accept the invitation.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="why-am-i-getting-a-400-bad-request-error-message-while-setting-up-the-google-ads-remarketing-lists-destination" data-heading="Why am I getting a 400 Bad Request error message while setting up the Google Ads Remarketing Lists destination?" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/google-ads-remarketing-lists/" data-title="Sync Audiences to Google Ads Remarketing Lists (Customer Match)" -->
&lt;h4 id="why-am-i-getting-a-400-bad-request-error-message-while-setting-up-the-google-ads-remarketing-lists-destination">Why am I getting a 400 Bad Request error message while setting up the Google Ads Remarketing Lists destination?&lt;/h4>&lt;p>If you get a 400 Bad Request error while configuring the destination, make sure your customer account is allowlisted and configured to have &lt;strong>Standard&lt;/strong> or &lt;strong>Administrative&lt;/strong> access levels in Google Ads.&lt;/p>
&lt;p>See the above &lt;a href="#what-are-the-account-permissions-required-for-the-google-ads-remarketing-lists-integration" >FAQ&lt;/a> for steps on setting the access level permissions for the account.&lt;/p></description></item><item><title>Audiences: Sync Audiences to LinkedIn Audience</title><link>https://www.rudderstack.com/docs/audiences/syncs/linkedin-audience/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/audiences/syncs/linkedin-audience/</guid><description>
&lt;p>This guide takes you through the steps to sync &lt;a href="https://www.rudderstack.com/docs/audiences/overview/" >Audiences&lt;/a> created in RudderStack to your LinkedIn Audience destination.&lt;/p>
&lt;blockquote class="success">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/tick.svg loading="lazy" alt="success" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">
You can sync your audiences to multiple destinations.
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="setup" data-heading="Setup" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/linkedin-audience/" data-title="Sync Audiences to LinkedIn Audience" -->
&lt;h2 id="setup">Setup&lt;/h2>&lt;ol>
&lt;li>Set up an audience in RudderStack using the &lt;a href="https://www.rudderstack.com/docs/audiences/audience-builder/create-audience/" >Audience Builder&lt;/a>.&lt;/li>
&lt;li>Go to the &lt;strong>Syncs&lt;/strong> tab of the audience page and click &lt;strong>Add sync&lt;/strong>. Then, select &lt;strong>LinkedIn Audience&lt;/strong>.&lt;/li>
&lt;li>Click &lt;strong>New destination&lt;/strong> — you can also select an already-configured destination here.&lt;/li>
&lt;li>Specify a unique name to identify this destination in RudderStack.&lt;/li>
&lt;li>In the &lt;strong>Event delivery account&lt;/strong> section, click &lt;strong>Select&lt;/strong> to choose from an existing LinkedIn account from the list. You can also click &lt;strong>Add account&lt;/strong> and authenticate via OAuth, by specifying the following settings:&lt;/li>
&lt;/ol>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Account Name&lt;/td>
&lt;td style="text-align:left">Specify a unique account name&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">oAuth settings&lt;/td>
&lt;td style="text-align:left">Click &lt;strong>Connect account&lt;/strong>, sign in with LinkedIn, and give RudderStack the required permissions to access your LinkedIn Ads account.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;ol start="6">
&lt;li>Click &lt;strong>Next&lt;/strong> to configure the mapping settings.&lt;/li>
&lt;/ol>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="configure-sync" data-heading="Configure sync" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/linkedin-audience/" data-title="Sync Audiences to LinkedIn Audience" -->
&lt;h2 id="configure-sync">Configure sync&lt;/h2>&lt;p>This section lists the settings to correctly configure your audience syncs to the LinkedIn Audience destination.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="select-linkedin-account" data-heading="Select LinkedIn account" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/linkedin-audience/" data-title="Sync Audiences to LinkedIn Audience" -->
&lt;h3 id="select-linkedin-account">Select LinkedIn account&lt;/h3>&lt;p>Select your LinkedIn Ads account from the dropdown — all the data will be synced with this account.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="audience-type" data-heading="Audience type" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/linkedin-audience/" data-title="Sync Audiences to LinkedIn Audience" -->
&lt;h3 id="audience-type">Audience type&lt;/h3>&lt;p>Select the audience type from the dropdown. RudderStack supports two types - &lt;strong>User&lt;/strong> and &lt;strong>Company&lt;/strong>.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="select-audience" data-heading="Select audience" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/linkedin-audience/" data-title="Sync Audiences to LinkedIn Audience" -->
&lt;h3 id="select-audience">Select audience&lt;/h3>&lt;p>In this section, you can create a new audience or use an existing one.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Create new audience&lt;/strong>: Use this option to create a new custom audience in LinkedIn. You can specify the name and description of the new LinkedIn audience.&lt;/li>
&lt;li>&lt;strong>Use existing audience&lt;/strong>: Use this option if you have an existing audience in LinkedIn. RudderStack automatically populates this field with the relevant audiences based on your specified &lt;a href="#setup" >connection settings&lt;/a> and audience type configured above.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sync-mode" data-heading="Sync mode" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/linkedin-audience/" data-title="Sync Audiences to LinkedIn Audience" -->
&lt;h3 id="sync-mode">Sync mode&lt;/h3>&lt;p>RudderStack supports only &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-modes/#mirror-mode" >Mirror mode&lt;/a> for this integration.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="mapping-settings" data-heading="Mapping settings" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/linkedin-audience/" data-title="Sync Audiences to LinkedIn Audience" -->
&lt;h3 id="mapping-settings">Mapping settings&lt;/h3>&lt;ol>
&lt;li>Select a warehouse columns that act as identifiers for your records and map them to the relevant LinkedIn identifiers based on your audience type — see &lt;a href="#identifier-mappings" >Identifier mappings&lt;/a> section below for more information.&lt;/li>
&lt;li>Map the other warehouse columns to specific LinkedIn fields that represent your audience&amp;rsquo;s identity.&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/destinations/linkedin/map-identifier-syncs.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/destinations/linkedin/map-identifier-syncs.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/destinations/linkedin/map-identifier-syncs.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="identifier-mappings" data-heading="Identifier mappings" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/linkedin-audience/" data-title="Sync Audiences to LinkedIn Audience" -->
&lt;h4 id="identifier-mappings">Identifier mappings&lt;/h4>&lt;blockquote class="success">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/tick.svg loading="lazy" alt="success" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">
RudderStack supports specifying multiple identifiers for both the &lt;strong>User&lt;/strong> and &lt;strong>Company&lt;/strong> audience types.
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;ul>
&lt;li>For the &lt;strong>User&lt;/strong> audience type, RudderStack supports the below LinkedIn identifiers to which you can map your warehouse columns:&lt;/li>
&lt;/ul>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Identifier&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Email (SHA256)&lt;/td>
&lt;td style="text-align:left">User&amp;rsquo;s email in a hex-encoded string format with a maximum length of 64 characters.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Email (SHA512)&lt;/td>
&lt;td style="text-align:left">User&amp;rsquo;s email in a hex-encoded string format with a maximum length of 128 characters.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;a href="https://support.google.com/googleplay/android-developer/answer/6048248?hl=en" >Google Advertising ID&lt;/a>&lt;/td>
&lt;td style="text-align:left">Plain text string (in lower case) with a maximum length of 32 characters.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;ul>
&lt;li>For the &lt;strong>Company&lt;/strong> audience type, RudderStack supports the below identifiers:&lt;/li>
&lt;/ul>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Identifier&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Company Name&lt;/td>
&lt;td style="text-align:left">The company name.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Company Email Domain&lt;/td>
&lt;td style="text-align:left">Company&amp;rsquo;s email domain string in a URL format, for example, &lt;code>linkedin.com&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Company Website Domain&lt;/td>
&lt;td style="text-align:left">Company&amp;rsquo;s website domain string in a URL format, for example, &lt;code>www.linkedin.com&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Company Page URL&lt;/td>
&lt;td style="text-align:left">The LinkedIn company page URL with a maximum length of 100 characters, for example, &lt;code>linkedin.com/company/acmecorp&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Organization URN&lt;/td>
&lt;td style="text-align:left">The LinkedIn company page URN, for example, &lt;code>urn:li:organizationUrn:123&lt;/code>.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="other-mappings" data-heading="Other mappings" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/linkedin-audience/" data-title="Sync Audiences to LinkedIn Audience" -->
&lt;h4 id="other-mappings">Other mappings&lt;/h4>&lt;p>Apart from the &lt;a href="#identifier-mappings" >identifier mappings&lt;/a>, the &lt;strong>User&lt;/strong> audience type also supports the below field mappings:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Field&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">First Name&lt;/td>
&lt;td style="text-align:left">User&amp;rsquo;s first name with a maximum length of 35 characters, for example, &lt;code>Alex&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Last Name&lt;/td>
&lt;td style="text-align:left">User&amp;rsquo;s last name with a maximum length of 35 characters, for example, &lt;code>Keener&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Title&lt;/td>
&lt;td style="text-align:left">User&amp;rsquo;s title in the company with a maximum length of 50 characters, for example, &lt;code>Engineer&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Company&lt;/td>
&lt;td style="text-align:left">User&amp;rsquo;s company name with a maximum length of 50 characters, for example, &lt;code>Acme Corp&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Country&lt;/td>
&lt;td style="text-align:left">ISO standard two letter country code, for example, &lt;code>US&lt;/code>.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>For the &lt;strong>Company&lt;/strong> audience type, RudderStack supports the below field mappings:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Field&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Stock Symbol&lt;/td>
&lt;td style="text-align:left">Stock symbol of the company with a maximum length of 5 letters, for example, &lt;code>ACME&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Industries&lt;/td>
&lt;td style="text-align:left">Three industry names for the company with a maximum length of 50 characters, for example, &lt;code>Technology&lt;/code>, &lt;code>Software&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">City&lt;/td>
&lt;td style="text-align:left">City of the company with a maximum length of 50 characters, for example, &lt;code>New York&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">State&lt;/td>
&lt;td style="text-align:left">State or province of the company with a maximum length of 50 characters, for example, &lt;code>Louisiana&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Country&lt;/td>
&lt;td style="text-align:left">ISO standard two letter country code, for example, &lt;code>US&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Postal Code&lt;/td>
&lt;td style="text-align:left">Postal code of the company with a maximum length of 20 characters, for example, &lt;code>560001&lt;/code>.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="advanced-settings" data-heading="Advanced settings" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/linkedin-audience/" data-title="Sync Audiences to LinkedIn Audience" -->
&lt;h3 id="advanced-settings">Advanced settings&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Automatically hash PII data&lt;/td>
&lt;td style="text-align:left">When set to &lt;strong>Yes&lt;/strong>, RudderStack hash-encodes user data to LinkedIn. &lt;br />&lt;br />&lt;strong>Note that&lt;/strong>: &lt;ul>&lt;li>This setting is applicable only for the &lt;strong>User&lt;/strong> audience type.&lt;/li>&lt;li>&lt;strong>Do not use&lt;/strong> this setting if you are syncing already-hashed data from your warehouse to LinkedIn. Otherwise, it can lead to failures. See &lt;a href="#data-hashing" >Data hashing&lt;/a> section for more information.&lt;/li>&lt;/ul>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sync-settings" data-heading="Sync settings" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/linkedin-audience/" data-title="Sync Audiences to LinkedIn Audience" -->
&lt;h2 id="sync-settings">Sync settings&lt;/h2>&lt;p>RudderStack provides two options to schedule your audience syncs:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Run syncs automatically&lt;/strong> based on a specified frequency (every 5 minutes, 10 minutes, 15 minutes, 30 minutes, 1 hour, 3 hours, 6 hours, 12 hours, or 24 hours) and a specific time (in UTC).&lt;/li>
&lt;li>&lt;strong>Run syncs manually&lt;/strong> — you can trigger a sync manually by clicking the &lt;strong>Sync Now&lt;/strong> button in the sync details page. Note that in this setting, you will need to click &lt;strong>Run sync&lt;/strong> every time you want to sync your audience.&lt;/li>
&lt;/ul>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/destinations/fb-custom-audience/run-sync.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/destinations/fb-custom-audience/run-sync.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/destinations/fb-custom-audience/run-sync.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sync-observability-settings" data-heading="Sync observability settings" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/linkedin-audience/" data-title="Sync Audiences to LinkedIn Audience" -->
&lt;h4 id="sync-observability-settings">Sync observability settings&lt;/h4>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Retain sync logs&lt;/td>
&lt;td style="text-align:left">This setting is toggled on by default and instructs RudderStack to store the sync logs in your warehouse. You can also configure the below settings: &lt;br />&lt;br />&lt;table>&lt;tr>&lt;th width="20%">Setting&lt;/th>&lt;th width="80%">Description&lt;/th>&lt;/tr>&lt;tr>&lt;td>Sync log retention&lt;/td>&lt;td>Specify the retention period of the &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-observability/#sync-logs" >sync logs&lt;/a> in your warehouse. &lt;br />&lt;br />If you set it to 1, then RudderStack deletes any sync log older than a day (in UTC time). &lt;/td>&lt;/tr>&lt;tr>&lt;td>Snapshot table retention&lt;/td>&lt;td>Specify the number of &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-observability/#snapshot-table-schema" >snapshot tables&lt;/a> to retain. &lt;/td>&lt;/tr>&lt;/table>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Retry failed records&lt;/td>
&lt;td style="text-align:left">This setting is toggled on by default and causes RudderStack to continually &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-observability/#retry-failed-records" >retry sending the failed records&lt;/a>.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">Storing sync logs and snapshot tables may incur additional warehouse costs.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="enable-sync" data-heading="Enable sync" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/linkedin-audience/" data-title="Sync Audiences to LinkedIn Audience" -->
&lt;h2 id="enable-sync">Enable sync&lt;/h2>&lt;p>Once the setup is complete, make sure to click &lt;strong>Enable sync&lt;/strong> to enable and activate the sync.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/destinations/tiktok/enable-sync.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/destinations/tiktok/enable-sync.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/destinations/tiktok/enable-sync.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="data-hashing" data-heading="Data hashing" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/linkedin-audience/" data-title="Sync Audiences to LinkedIn Audience" -->
&lt;h2 id="data-hashing">Data hashing&lt;/h2>&lt;p>The &lt;a href="#advanced-settings" >Automatically hash PII data&lt;/a> setting lets you hash your user data before sending it to LinkedIn. This setting is enabled by default.&lt;/p>
&lt;ul>
&lt;li>Configure the setting to &lt;strong>Yes&lt;/strong> if your incoming data is not pre-hashed&lt;/li>
&lt;li>Configure this setting to &lt;strong>No&lt;/strong> if your data is already hashed&lt;/li>
&lt;/ul>
&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">&lt;p>Incorrect configuration of the &lt;strong>Enable Hashing&lt;/strong> setting will result in failures.&lt;/p>
&lt;ul>
&lt;li>If the &lt;strong>Enable Hashing&lt;/strong> setting is configured to &lt;strong>Yes&lt;/strong> and your data is pre-hashed, the event will fail.&lt;/li>
&lt;li>If the &lt;strong>Enable Hashing&lt;/strong> setting is configured to &lt;strong>No&lt;/strong> and your data is not pre-hashed, the event will fail.&lt;/li>
&lt;/ul>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;p>RudderStack rejects such events with a clear error message, for example:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl">Automatically hash PII data is disabled but the value for field EMAIL appears to be unhashed. Either enable hashing or send pre-hashed data.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>You will also see errors in the &lt;strong>Events&lt;/strong> tab for cases that were previously marked as successful, but were effectively resulting in no matches, helping you quickly identify and fix any data quality or configuration issues.&lt;/p></description></item><item><title>Audiences: Sync Audiences to TikTok Audiences</title><link>https://www.rudderstack.com/docs/audiences/syncs/tiktok-audiences/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/audiences/syncs/tiktok-audiences/</guid><description>
&lt;p>This guide takes you through the steps to sync &lt;a href="https://www.rudderstack.com/docs/audiences/overview/" >Audiences&lt;/a> created in RudderStack to your TikTok Audiences destination.&lt;/p>
&lt;blockquote class="success">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/tick.svg loading="lazy" alt="success" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">
You can sync your audiences to multiple destinations.
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="setup" data-heading="Setup" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/tiktok-audiences/" data-title="Sync Audiences to TikTok Audiences" -->
&lt;h2 id="setup">Setup&lt;/h2>&lt;ol>
&lt;li>Set up an audience in RudderStack using the &lt;a href="https://www.rudderstack.com/docs/audiences/audience-builder/create-audience/" >Audience Builder&lt;/a>.&lt;/li>
&lt;li>Go to the &lt;strong>Syncs&lt;/strong> tab of the audience page and click &lt;strong>Add sync&lt;/strong>. Then, select &lt;strong>TikTok Audiences&lt;/strong>.&lt;/li>
&lt;li>Click &lt;strong>New destination&lt;/strong> — you can also select an already-configured destination here.&lt;/li>
&lt;li>Specify a unique name to identify this destination in RudderStack.&lt;/li>
&lt;li>In the &lt;strong>Event delivery account&lt;/strong> section, click &lt;strong>Select&lt;/strong> to choose from an existing TikTok account from the list. You can also click &lt;strong>Add account&lt;/strong> and authenticate via OAuth, by specifying the following settings:&lt;/li>
&lt;/ol>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Account Name&lt;/td>
&lt;td style="text-align:left">Specify a unique account name&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">oAuth settings&lt;/td>
&lt;td style="text-align:left">Click &lt;strong>Connect account&lt;/strong>, sign in with TikTok, and give RudderStack the required permissions to access your TikTok Ads account.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;ol start="6">
&lt;li>The &lt;strong>Advertiser ID&lt;/strong> field is automatically pre-populated based on the selected TikTok account — select the relevant ID from the dropdown.&lt;/li>
&lt;li>Click &lt;strong>Next&lt;/strong> to configure the mapping settings.&lt;/li>
&lt;/ol>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="configure-sync" data-heading="Configure sync" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/tiktok-audiences/" data-title="Sync Audiences to TikTok Audiences" -->
&lt;h2 id="configure-sync">Configure sync&lt;/h2>&lt;p>This section lists the settings to correctly configure your audience syncs to the TikTok Audiences destination.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="select-audience" data-heading="Select audience" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/tiktok-audiences/" data-title="Sync Audiences to TikTok Audiences" -->
&lt;h3 id="select-audience">Select audience&lt;/h3>&lt;p>In this section, you can create a new audience or use an existing one.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Create new audience&lt;/strong>: Use this option to create a new custom audience in TikTok. You can specify the name and description of the new TikTok audience.&lt;/li>
&lt;li>&lt;strong>Use existing audience&lt;/strong>: Use this option if you have an existing audience in TikTok. RudderStack automatically populates this field with the relevant audiences based on your specified &lt;a href="#setup" >connection settings&lt;/a>.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sync-mode" data-heading="Sync mode" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/tiktok-audiences/" data-title="Sync Audiences to TikTok Audiences" -->
&lt;h3 id="sync-mode">Sync mode&lt;/h3>&lt;p>RudderStack supports only &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-modes/#mirror-mode" >Mirror mode&lt;/a> for this integration.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="map-identifiers" data-heading="Map identifiers" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/tiktok-audiences/" data-title="Sync Audiences to TikTok Audiences" -->
&lt;h3 id="map-identifiers">Map identifiers&lt;/h3>&lt;p>In this section, you can map your warehouse columns to specific TikTok fields that represent your audience&amp;rsquo;s identity.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/destinations/tiktok/map-identifiers-syncs.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/destinations/tiktok/map-identifiers-syncs.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/destinations/tiktok/map-identifiers-syncs.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="advanced-settings" data-heading="Advanced settings" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/tiktok-audiences/" data-title="Sync Audiences to TikTok Audiences" -->
&lt;h3 id="advanced-settings">Advanced settings&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Automatically hash PII data&lt;/td>
&lt;td style="text-align:left">When set to &lt;strong>Yes&lt;/strong>, RudderStack automatically hash-encodes user data in the SHA-256 format before sending it to TikTok. &lt;br />&lt;br />&lt;strong>Do not use&lt;/strong> this setting if you are sending already-hashed data from your warehouse to TikTok. Otherwise, it can lead to failures. See &lt;a href="#data-hashing" >Data hashing&lt;/a> section for more information.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sync-settings" data-heading="Sync settings" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/tiktok-audiences/" data-title="Sync Audiences to TikTok Audiences" -->
&lt;h2 id="sync-settings">Sync settings&lt;/h2>&lt;p>RudderStack provides two options to schedule your audience syncs:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Run syncs automatically&lt;/strong> based on a specified frequency (every 5 minutes, 10 minutes, 15 minutes, 30 minutes, 1 hour, 3 hours, 6 hours, 12 hours, or 24 hours) and a specific time (in UTC).&lt;/li>
&lt;li>&lt;strong>Run syncs manually&lt;/strong> — you can trigger a sync manually by clicking the &lt;strong>Sync Now&lt;/strong> button in the sync details page. Note that in this setting, you will need to click &lt;strong>Run sync&lt;/strong> every time you want to sync your audience.&lt;/li>
&lt;/ul>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/destinations/fb-custom-audience/run-sync.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/destinations/fb-custom-audience/run-sync.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/destinations/fb-custom-audience/run-sync.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sync-observability-settings" data-heading="Sync observability settings" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/tiktok-audiences/" data-title="Sync Audiences to TikTok Audiences" -->
&lt;h4 id="sync-observability-settings">Sync observability settings&lt;/h4>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Retain sync logs&lt;/td>
&lt;td style="text-align:left">This setting is toggled on by default and instructs RudderStack to store the sync logs in your warehouse. You can also configure the below settings: &lt;br />&lt;br />&lt;table>&lt;tr>&lt;th width="20%">Setting&lt;/th>&lt;th width="80%">Description&lt;/th>&lt;/tr>&lt;tr>&lt;td>Sync log retention&lt;/td>&lt;td>Specify the retention period of the &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-observability/#sync-logs" >sync logs&lt;/a> in your warehouse. &lt;br />&lt;br />If you set it to 1, then RudderStack deletes any sync log older than a day (in UTC time). &lt;/td>&lt;/tr>&lt;tr>&lt;td>Snapshot table retention&lt;/td>&lt;td>Specify the number of &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-observability/#snapshot-table-schema" >snapshot tables&lt;/a> to retain. &lt;/td>&lt;/tr>&lt;/table>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Retry failed records&lt;/td>
&lt;td style="text-align:left">This setting is toggled on by default and causes RudderStack to continually &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-observability/#retry-failed-records" >retry sending the failed records&lt;/a>.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">Storing sync logs and snapshot tables may incur additional warehouse costs.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="enable-sync" data-heading="Enable sync" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/tiktok-audiences/" data-title="Sync Audiences to TikTok Audiences" -->
&lt;h2 id="enable-sync">Enable sync&lt;/h2>&lt;p>Once the setup is complete, make sure to click &lt;strong>Enable sync&lt;/strong> to enable and activate the sync.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/destinations/tiktok/enable-sync.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/destinations/tiktok/enable-sync.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/destinations/tiktok/enable-sync.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="supported-mappings" data-heading="Supported mappings" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/tiktok-audiences/" data-title="Sync Audiences to TikTok Audiences" -->
&lt;h2 id="supported-mappings">Supported mappings&lt;/h2>&lt;p>You can map your warehouse columns to the following TikTok fields:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Field&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">IDFA_MD5&lt;/td>
&lt;td style="text-align:left">MD5 hash of an iOS IDFA&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">AAID_MD5&lt;/td>
&lt;td style="text-align:left">MD5 hash of an Android AAID/GAID&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">IDFA_SHA256&lt;/td>
&lt;td style="text-align:left">SHA256 hash of an iOS IDFA&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">AAID_SHA256&lt;/td>
&lt;td style="text-align:left">SHA256 hash of an Android AAID/GAID&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">EMAIL_SHA256&lt;/td>
&lt;td style="text-align:left">SHA256 hash of email ID — see &lt;a href="https://business-api.tiktok.com/portal/docs?id=1739566528222210" >Important Notes for Streaming API- Email Specific Normalization&lt;/a> section for more information&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">PHONE_SHA256&lt;/td>
&lt;td style="text-align:left">SHA256 hash of a phone number in E.164 format, for example, &lt;code>+1231234567&lt;/code>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>After normalization, RudderStack validates each field before sending it to TikTok.&lt;/p>
&lt;ul>
&lt;li>If a field is determined to be invalid, RudderStack &lt;strong>does not&lt;/strong> send it to TikTok.&lt;/li>
&lt;li>If all fields in a row are invalid, the entire row is skipped and the event is marked as failed.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="data-hashing" data-heading="Data hashing" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/tiktok-audiences/" data-title="Sync Audiences to TikTok Audiences" -->
&lt;h2 id="data-hashing">Data hashing&lt;/h2>&lt;p>The &lt;a href="#advanced-settings" >Automatically hash PII data&lt;/a> setting lets you hash your user data before sending it to TikTok. This setting is enabled by default.&lt;/p>
&lt;ul>
&lt;li>Configure the setting to &lt;strong>Yes&lt;/strong> if your incoming data is not pre-hashed&lt;/li>
&lt;li>Configure this setting to &lt;strong>No&lt;/strong> if your data is already hashed&lt;/li>
&lt;/ul>
&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">&lt;p>TikTok expects the incoming data to be hashed. Hence, incorrect configuration of the &lt;strong>Automatically hash PII data&lt;/strong> setting will result in failures:&lt;/p>
&lt;ul>
&lt;li>If the &lt;strong>Automatically hash PII data&lt;/strong> setting is configured to &lt;strong>Yes&lt;/strong> and your data is already hashed, the event will fail.&lt;/li>
&lt;li>If the &lt;strong>Automatically hash PII data&lt;/strong> setting is configured to &lt;strong>No&lt;/strong> and your data is not pre-hashed, the event will fail.&lt;/li>
&lt;/ul>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;p>RudderStack rejects such events with a clear error message, for example:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl">Automatically hash PII data is disabled but the value for field EMAIL appears to be unhashed. Either enable hashing or send pre-hashed data.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>You will also see errors in the &lt;strong>Events&lt;/strong> tab for cases that were previously marked as successful, but were effectively resulting in no matches, helping you quickly identify and fix any data quality or configuration issues.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="faq" data-heading="FAQ" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/tiktok-audiences/" data-title="Sync Audiences to TikTok Audiences" -->
&lt;h2 id="faq">FAQ&lt;/h2>&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="why-cant-i-add-a-reverse-etl-source-from-the-destination-page" data-heading="Why can&amp;rsquo;t I add a Reverse ETL source from the destination page?" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/tiktok-audiences/" data-title="Sync Audiences to TikTok Audiences" -->
&lt;h4 id="why-cant-i-add-a-reverse-etl-source-from-the-destination-page">Why can&amp;rsquo;t I add a Reverse ETL source from the destination page?&lt;/h4>&lt;p>The Reverse ETL feature supports only source-driven pipeline configuration. It means that you must configure a Reverse ETL source in RudderStack and then connect it to a new or existing destination. Note that this destination should not be connected to any other source.&lt;/p>
&lt;p>See &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/faq/" >Reverse ETL FAQ&lt;/a> for more information.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="how-do-i-view-the-synced-segments-in-tiktok" data-heading="How do I view the synced segments in TikTok?" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/syncs/tiktok-audiences/" data-title="Sync Audiences to TikTok Audiences" -->
&lt;h4 id="how-do-i-view-the-synced-segments-in-tiktok">How do I view the synced segments in TikTok?&lt;/h4>&lt;p>To view the synced audience, go to your &lt;a href="https://ads.tiktok.com/i18n/home" >TikTok Ads Manager&lt;/a> and go to &lt;strong>Tools&lt;/strong> &amp;gt; &lt;strong>Audience manager&lt;/strong>.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/event-stream-destinations/tiktok-ads-audiences.webp" href="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/tiktok-ads-audiences.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/tiktok-ads-audiences.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;p>To see the sync status, check the &lt;strong>Availability&lt;/strong> column.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/event-stream-destinations/tiktok-ads-sync-status.webp" href="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/tiktok-ads-sync-status.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/event-stream-destinations/tiktok-ads-sync-status.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;br /></description></item></channel></rss>