LinkedIn Ads Cloud Mode Integration
2 minute read
After you have successfully instrumented LinkedIn Ads as a destination in RudderStack, follow this guide to correctly send your events to LinkedIn Ads in cloud mode.
RudderStack leverages the LinkedIn Conversions API (covered under LinkedIn’s Data Processing Agreement) to send the events.
Note that:
- LinkedIn holds the conversion data for a maximum of 180 days before erasing it. It persists only the aggregate conversion reporting data in the Campaign Manager is persisted.
- RudderStack hashes all the email addresses in SHA256 format before sending them to LinkedIn.
- The Conversions API supports a batch size of 5000 records with a rate limit of 300 events per minute.
Find the open source transformer code for this destination in the GitHub repository.
Track
You can use the track call to send your conversion data to LinkedIn to measure and optimize the campaigns.
rudderanalytics.track(
"Conversion Event", {
campaign: "Conversion",
tax: 2,
total: 27.5,
coupon: "coupon55",
revenue: 48,
price: 25,
quantity: 2
}, {
traits: {
firstName: "Alex",
lastName: "Keener",
email: "alex@example.com"
}
}
);Supported mappings
RudderStack maps the following track fields to the corresponding LinkedIn Ads properties:
| RudderStack property | LinkedIn Ads property |
|---|---|
traits.emailcontext.traits.emailproperties.emailRequired, if context.externalId.id.identifierType is not present. | SHA256_EMAIL |
If context.externalId.id.identifierType is set to LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUIDRequired, if email is not present. | LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID |
If context.externalId.id.identifierType is set to ACXIOM_IDRequired, if email is not present. | ACXIOM_ID |
If context.externalId.id.identifierType is set to ORACLE_MOAT_IDRequired, if email is not present. | ORACLE_MOAT_ID |
traits.firstNametraits.firstnametraits.first_namecontext.traits.firstNamecontext.traits.firstnamecontext.traits.first_nameRequired, if you are sending user traits. | firstName |
traits.lastNametraits.lastnametraits.last_namecontext.traits.lastNamecontext.traits.lastnamecontext.traits.last_nameRequired, if you are sending user traits. | lastName |
traits.titlecontext.traits.title | title |
context.traits.companyName | companyName |
context.traits.countryCode | countryCode |
properties.eventIdproperties.messageId | eventId |
timestamp | conversionHappenedAt |
Note the following:
- LinkedIn uses the
eventIdfield for deduplicating the data.- The event’s
timestampmust be within the last 90 days.- If the Hash and encode data data is turned on in the dashboard settings, RudderStack automatically hash encodes the user’s email associated with the conversion event in the SHA256 format. If the events already contain hashed emails, make sure to turn off this setting.
- Your conversion event must have at least one of the following fields:
context.externalId.id.identifierTypeset to either:
LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUIDACXIOM_IDORACLE_MOAT_ID
Calculating conversion value
- For events not having a
productarray:
| RudderStack property | LinkedIn Ads property |
|---|---|
properties.currency | conversionValue.currencyCode |
properties.price * properties.quantity | conversionValue.amount |
- For events having a
productarray:
| RudderStack property | LinkedIn Ads property |
|---|---|
properties.currency | conversionValue.currencyCode |
Σ (properties.product[i].price * properties.product[i].quantity) | conversionValue.amount |