Skip to content

Commit

Permalink
feat: [impact radius] onboard impact radius cloud mode destination (#…
Browse files Browse the repository at this point in the history
…1730)

* feat: onboard impact-radius cloud mode destination

* feat: update mappings for track call

* update property mappings

* update products mapping and event filtering support

* refactor code

* add some fixes

* update property mapping

* refactor code

* add test cases

* fix clickId mapping

* update mapping

* test update unit tests

* removes duplicate mapping

* refactor code

* refactor code and add documentation for functions

* suggested changes (#1764)

* fix: update package.json

Co-authored-by: Sudip Paul <[email protected]>
Co-authored-by: Sandeep Digumarty <[email protected]>
  • Loading branch information
3 people authored Jan 10, 2023
1 parent e497bc4 commit 8d55c24
Show file tree
Hide file tree
Showing 10 changed files with 3,207 additions and 133 deletions.
535 changes: 402 additions & 133 deletions package-lock.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
"is-ip": "^3.1.0",
"isolated-vm": "^4.4.2",
"json-diff": "^0.9.1",
"js-sha1": "^0.6.0",
"json-query": "^2.2.2",
"jsontoxml": "^1.0.1",
"jszip": "^3.10.1",
Expand Down
31 changes: 31 additions & 0 deletions src/v0/destinations/impact_radius/config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
const { getMappingConfig } = require("../../util");

const CONFIG_CATEGORIES = {
PAGELOAD: {
name: "ImpactPageLoadConfig",
endPoint: "https://trkapi.impact.com/PageLoad"
},

CONVERSION: {
name: "ImpactConversionConfig",
base_url: "https://api.impact.com/Advertisers/"
}
};

const itemMapping = {
ItemBrand: "brand",
ItemCategory: "category",
ItemName: "name",
ItemPrice: "price",
ItemPromoCode: "coupon",
ItemQuantity: "quantity",
ItemSku: "sku"
};

const MAPPING_CONFIG = getMappingConfig(CONFIG_CATEGORIES, __dirname);

module.exports = {
CONFIG_CATEGORIES,
MAPPING_CONFIG,
itemMapping
};
228 changes: 228 additions & 0 deletions src/v0/destinations/impact_radius/data/ImpactConversionConfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,228 @@
[
{
"destKey": "EventTypeCode",
"sourceKeys": "event",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "EventDate",
"sourceKeys": "timestamp",
"sourceFromGenericMap": true,
"required": false
},
{
"destKey": "CurrencyCode",
"sourceKeys": "properties.currency",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "CustomerStatus",
"sourceKeys": ["context.traits.status", "properties.status"],
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "Latitude",
"sourceKeys": ["context.location.latitude", "properties.latitude"],
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "Longitude",
"sourceKeys": ["context.location.longitude", "properties.longitude"],
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "OrderDiscount",
"sourceKeys": "properties.discount",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "OrderPromoCode",
"sourceKeys": ["properties.coupon", "properties.coupon_id"],
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "OrderId",
"sourceKeys": [
"properties.orderId",
"properties.order_id",
"properties.transactionID",
"properties.checkout_id"
],
"sourceFromGenericMap": false,
"required": true
},
{
"destKey": "OrderShipping",
"sourceKeys": "properties.shipping",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "OrderTax",
"sourceKeys": "properties.tax",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "OrderMargin",
"sourceKeys": "properties.margin",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "MediaId",
"sourceKeys": "mediaid",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "CallerId",
"sourceKeys": "callerid",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "CustomerCity",
"sourceKeys": "city",
"sourceFromGenericMap": true,
"required": false
},
{
"destKey": "CustomerPostCode",
"sourceKeys": "zipcode",
"sourceFromGenericMap": true,
"required": false
},
{
"destKey": "CustomerCountry",
"sourceKeys": "country",
"sourceFromGenericMap": true,
"required": false
},
{
"destKey": "CustomerRegion",
"sourceKeys": "region",
"sourceFromGenericMap": true,
"required": false
},
{
"destKey": "PhoneNumber",
"sourceKeys": "phone",
"sourceFromGenericMap": true,
"required": false
},
{
"destKey": "CustomerEmail",
"sourceKeys": "email",
"sourceFromGenericMap": true,
"required": false
},
{
"destKey": "CustomerId",
"sourceKeys": "userIdOnly",
"sourceFromGenericMap": true,
"required": false
},
{
"destKey": "CustomProfileId",
"sourceKeys": "anonymousId",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "PageUrl",
"sourceKeys": [
"context.page.url",
"properties.url",
"context.page.referrer",
"context.referrer.url"
],
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "ReferringUrl",
"sourceKeys": ["context.referrer.url", "context.page.referrer"],
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "UserAgent",
"sourceKeys": "context.userAgent",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "IpAddress",
"sourceKeys": ["request_ip", "context.ip"],
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "AppName",
"sourceKeys": "context.app.name",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "AppPackage",
"sourceKeys": "context.app.build",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "AppVer",
"sourceKeys": "context.app.version",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "DeviceCarrier",
"sourceKeys": "context.network.carrier",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "DeviceLocale",
"sourceKeys": "context.locale",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "DeviceMfr",
"sourceKeys": "context.device.manufacturer",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "DeviceModel",
"sourceKeys": "context.device.model",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "TrackingConsent",
"sourceKeys": "context.device.adTrackingEnabled",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "DeviceOs",
"sourceKeys": ["context.device.type", "context.os.name"],
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "DeviceOsVer",
"sourceKeys": "context.os.version",
"sourceFromGenericMap": false,
"required": false
}
]
115 changes: 115 additions & 0 deletions src/v0/destinations/impact_radius/data/ImpactPageLoadConfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
[
{
"destKey": "EventDate",
"sourceKeys": "timestamp",
"sourceFromGenericMap": true,
"required": false
},
{
"destKey": "CustomerEmail",
"sourceKeys": "email",
"sourceFromGenericMap": true,
"required": false
},
{
"destKey": "CustomerId",
"sourceKeys": "userIdOnly",
"sourceFromGenericMap": true,
"required": false
},
{
"destKey": "CustomProfileId",
"sourceKeys": "anonymousId",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "PageUrl",
"sourceKeys": [
"context.page.url",
"properties.url",
"context.page.referrer",
"context.referrer.url"
],
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "ReferringUrl",
"sourceKeys": ["context.referrer.url", "context.page.referrer"],
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "UserAgent",
"sourceKeys": "context.userAgent",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "IpAddress",
"sourceKeys": ["context.request_ip", "context.ip"],
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "AppName",
"sourceKeys": "context.app.name",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "AppPackage",
"sourceKeys": "context.app.build",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "AppVer",
"sourceKeys": "context.app.version",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "DeviceCarrier",
"sourceKeys": "context.network.carrier",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "DeviceLocale",
"sourceKeys": "context.locale",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "DeviceMfr",
"sourceKeys": "context.device.manufacturer",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "DeviceModel",
"sourceKeys": "context.device.model",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "TrackingConsent",
"sourceKeys": "context.device.adTrackingEnabled",
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "DeviceOs",
"sourceKeys": ["context.device.type", "context.os.name"],
"sourceFromGenericMap": false,
"required": false
},
{
"destKey": "DeviceOsVer",
"sourceKeys": "context.os.version",
"sourceFromGenericMap": false,
"required": false
}
]
Loading

0 comments on commit 8d55c24

Please sign in to comment.