impact.com is a global partnership management platform that helps in managing and scaling different partnerships, such as affiliates, influencers, strategic business partners, mobile apps, commerce content publishers, B2B, and more.
Find the open source transformer code for this destination in the GitHub repository.
Getting started
RudderStack supports sending events to impact.com via the following connection modes:
| Connection Mode | Web | Mobile | Server | 
|---|---|---|---|
| Device mode | - | - | - | 
| Cloud mode | Supported | Supported | Supported | 
Once you have confirmed that the source platform supports sending events to impact.com, follow these steps:
- From your RudderStack dashboard, add a source. Then, from the list of destinations, select Impact Radius.
 - Assign a name to the destination and click Continue.
 
Connection settings
To successfully configure impact.com as a destination, you will need to configure the following settings:
- Account SID: Enter the account SID present in the Settings > API option in the impact.com dashboard.
 - API Key: Enter the auth token present in the Settings > API option in the impact.com dashboard.
 - Campaign Id: Enter the campaign ID present in the Account > Programs option in your the impact.com dashboard, as shown:
 
    - Impact App Id: Enter the system app ID present in the Settings > Mobile Apps option in the impact.com dashboard.
 - Event Type Id: Enter the ID present in the Settings > Event Type option in the impact.com dashboard.
 - Enable to hash email: Enable this setting to hash the 
emailfield in SHA1 format. Keep it disabled in case it is already hashed. 
email field in a hashed format. Otherwise, the events will fail. Hence, if you are sending the email in a plain text format, make sure to enable this setting.- Additional parameters mapping: Enter the property mappings from RudderStack to impact.com for any additional parameters (other than the default ones mentioned in the sections below).
 - Custom mapping for Products: Enter the custom property mappings for the 
productsarray. - Enable Identify Events: Enable this setting to send the 
identifyevents. - Enable Page Events: Enable this setting to send the 
pageevents. - Enable Screen Events: Enable this setting to send the 
screenevents. - Action Event Names: Enter the list of event names you want to track as user actions.
 - Install Event Names: Enter the list of event names corresponding to the app install events.
 
Identify
You can send an identify call to impact.com via the PageLoad endpoint. It allows impact.com to update the user identifiers for an accurate correlation.
A sample identify call is shown below:
rudderanalytics.identify("1hKOmRA4el9Zt1WSfVJIVo4GRlm", {  email: "alex@example.com",});Property mappings
The following table lists the mappings between RudderStack and impact.com properties:
| RudderStack property | impact.com property | 
|---|---|
context.device.id | AppleIfv | 
context.app.name | AppName | 
context.app.build | AppPackage | 
context.app.version | AppVer | 
settings.campaignId | CampaignId | 
context.traits.email properties.email | CustomerEmail | 
userId | CustomerId | 
anonymousId | CustomProfileId | 
context.network.carrier | DeviceCarrier | 
context.locale | DeviceLocale | 
context.device.manufacturer | DeviceMfr | 
context.device.model | DeviceModel | 
context.device.type context.os.name | DeviceOs | 
context.os.version | DeviceOsVer | 
timestamp originalTimestamp | EventDate | 
context.device.id | GoogAId | 
context.ip | IpAddress | 
context.page.url properties.url context.page.referrer context.referrer.url | PageUrl | 
context.referrer.url context.page.referrer | ReferringUrl | 
context.userAgent | UserAgent | 
context.device.advertisingId | AppleIfa | 
userId, anonymousId, context.device.id, or context.device.advertisingId parameters is required to make an identify call successfully.Track
The track call lets you capture user events along with the properties associated with them. 
RudderStack sends the track events listed in the Action Event Names and Install Event Names dashboard settings to impact.com using the Conversions endpoint. All the other track events are sent using the PageLoad endpoint.
A sample track call is shown below:
rudderanalytics.track("Order Completed", {  order_id: "1234",  shipping: 22,  tax: 1,  discount: 1.5,  coupon: "ImagePro",  currency: "USD",  products: [{      sku: "G-32",      name: "Monopoly",      price: 14,      quantity: 1,      category: "Games",      brand: "top"    },    {      sku: "G-34",      name: "Monopoly",      price: 16,      quantity: 3,      category: "Games",      brand: "top"    },  ],})Property mappings
The following table lists the mappings between RudderStack and impact.com properties:
| RudderStack property | impact.com property | 
|---|---|
properties.orderId properties.order_id properties.transactionID properties.checkout_id Required  | OrderId | 
timestamp originalTimestampRequired  | EventDate | 
event Required, if settings.eventTypeId is absent.  | EventTypeCode | 
settings.eventTypeId Required, if event is absent.  | EventTypeId | 
context.device.adTrackingEnabled | TrackingConsent | 
context.device.advertisingId | AppleIfa | 
context.device.id | AppleIfv | 
context.app.name | AppName | 
context.app.build | AppPackage | 
context.device.id | AndroidId | 
context.app.version | AppVer | 
settings.campaignId | CampaignId | 
context.referrer.id properties.clickId | ClickId | 
properties.currency | CurrencyCode | 
context.traits.email properties.email | CustomerEmail | 
userId | CustomerId | 
context.traits.status | CustomerStatus | 
anonymousId | CustomProfileId | 
context.network.carrier | DeviceCarrier | 
context.locale | DeviceLocale | 
context.device.manufacturer | DeviceMfr | 
context.device.model | DeviceModel | 
context.device.type context.os.name | DeviceOs | 
context.os.version | DeviceOsVer | 
context.device.advertisingId | GoogAId | 
context.ip request_ip | IpAddress | 
properties.products[i].brand | ItemBrand{i} | 
properties.products[i].category | ItemCategory{i} | 
properties.products[i].name | ItemName{i} | 
properties.products[i].price | ItemPrice{i} | 
properties.products[i].coupon | ItemPromoCode{i} | 
properties.products[i].quantity | ItemQuantity{i} | 
properties.products[i].sku | ItemSku{i} | 
context.location.latitude | Latitude | 
context.location.longitude | Longitude | 
properties.discount | OrderDiscount | 
properties.coupon properties.coupon_id | OrderPromoCode | 
properties.shipping | OrderShipping | 
properties.tax | OrderTax | 
context.referrer.url context.page.referrer | ReferringUrl | 
context.page.url properties.url context.page.referrer context.referrer.url | PageUrl | 
context.userAgent | UserAgent | 
context.referrer.id/properties.clickId, userId, anonymousId, properties.coupon/properties.coupon_id, context.device.id, context.device.advertisingId, or context.device.id is required to make a track call successfully.Page
The page method lets you record your website's page views with any additional relevant information about the viewed page. You can send a page call to impact.com via the PageLoad endpoint.
A sample page call is as shown:
rudderanalytics.page("category", "name", {      path: "path",      url: "url",      title: "title"    }page call are exactly the same as identify call. Refer to the property mappings section for more details.Screen
The screen call lets you record whenever your user views their mobile screen, with any additional relevant information about the screen. You can send a screen call to impact.com  via the PageLoad endpoint.
A sample screen call is as shown:
[  [RSClient sharedInstance] screen: @ "Sample Screen Name"  properties: @ {    @ "prop_key": @ "prop_value"  }];screen call are exactly the same as identify call. Refer to the property mappings section for more details.FAQ
How can I debug the impact.com errors?
Any errors may arise due to the failed pathing, invalid parameters, authentication errors, and network unavailability. Refer to the impact.com Errors documentation for more information. Additionally, you can also refer to their Rate Limits documentation for more information on the API call limits.
Contact us
For more information on the topics covered on this page, email us or start a conversation in our Slack community.