Koddi Cloud Mode Integration

Send events to Koddi using RudderStack cloud mode.

After you have successfully instrumented Koddi as a destination in RudderStack, follow this guide to correctly send your events to Koddi in cloud mode.

Find the open source transformer code for this destination in the GitHub repository.

Track

You can use the track call to track the impressions, clicks, and conversions on any ad by any user in Koddi.

Ad impressions

You can track the impression activity in Koddi using the Impressions API.

A sample track call for the Impressions event is as shown:

rudderanalytics.track(
  "Impressions Event", {
    tracking_data: "your-tracking-data",
    rank: 1,
    beacon_issued: "2024-03-04T15:32:56.409Z"
  }, {
    integrations: {
      All: true,
      koddi: {
        eventType: "Impressions" // case-insensitive
      },
    }
  }
);

Supported mappings

RudderStack maps the following track fields to the corresponding Koddi properties for Impressions event type:

RudderStack event/propertyKoddi propertyData type
properties.tracking_data
Required
trackingDataString
properties.rank
Required
rankInteger
properties.beacon_issued
Required
beaconIssuedDate-Time
timestamp
originalTimestamp
tsDate-Time

Ad clicks

You can track the click activity in Koddi using the Click API.

A sample track call for the Click event is as shown:

rudderanalytics.track(
  "Clicks Event", {
    tracking_data: "your-tracking-data",
    rank: 1,
    beacon_issued: "2024-03-04T15:32:56.409Z",
    test_version_override: "2",
    overrides: `{encrypted({"cpc": 1.5, "rank": 1})}`
  }, {
    "integrations": {
      "All": true,
      "koddi": {
        "eventType": "Clicks" // case-insensitive
      }
    },
  }
);

Supported mappings

RudderStack maps the following track fields to the corresponding Koddi properties for Clicks event type:

RudderStack event/propertyKoddi propertyData type
properties.tracking_data
Required
trackingDataString
properties.rank
Required
rankInteger
properties.beacon_issued
Required
beaconIssuedDate-Time
userId
traits.userId
traits.id
context.traits.userId
context.traits.id
anonymousId
Required
userGuidString
properties.test_version_overridetestVersionOverrideString
properties.destination_urldestinationUrlString
properties.overridesoverridesString

Ad conversions

You can track the conversions activity in Koddi using the Conversions API.

A sample track call for the Conversions event is as shown:

rudderanalytics.track(
  "Conversions Event", {
    currency: "USD",
    transaction_id: "123",
    bidders: [{
      "bidder": "bidder1", //required
      "alternate_bidder": "alternate1", // required if bidder is not present
      "count": 1, // required
      "base_price": 100, // required
      "total_price": 220
    }]
  }, {
    "integrations": {
      "All": true,
      "koddi": {
        "eventType": "Conversions" // case-insensitive
      }
    },
  }
);

Supported mappings

RudderStack maps the following track fields to the corresponding Koddi properties for Conversions event type:

RudderStack event/propertyKoddi propertyData typeNotes
context.locale
Required
cultureString-
properties.currency
Required
currencyString-
userId
traits.userId
traits.id
context.traits.userId
context.traits.id
anonymousId
Required
user_guidString-
properties.order_id
properties.transaction_id
Required
transaction_idString-
properties.bidders
Required
bidders[]ObjectSee the below note for more information.
context.ip
request_ip
user_ipString-
context.userAgentuser_agentString-
context.page.referring_domaindomainString-
context.device.typedevice_typeString-
properties.conversion_sourceconversion_sourceString-
timestamp
originalTimestamp
unixtimeDoubleRudderstack’s timestamp is in ISO 8601 date format which gets converted to unixtime during transformation.

Note that the properties.bidders must contain an object’s array where all the objects must contain bidder/alternate_bidder, count, and base_price as the required fields. For example:

"bidders": [
   {
      "bidder": "bidder1",  //required
      "alternate_bidder": "alternate1", // required if bidder is not present
      "count": 1, // required
      "base_price": 100, // required
      "total_price": 227
      "check_in": "2024-03-04T15:32:56.409Z"
      "check_out": "2024-03-04T15:32:56.409Z"
   }
]

Questions? Contact us by email or on Slack