Beta Logs

Quick Links:

Each time an ad decision request is made, a Request log, Decision log, and Selection log will be generated.
Note: if no ad is selected, then a Selection log will not be created.

Request Logs

Request logs contain data representing the root level fields sent in the ad decision request.

  <th>
    Description
  </th>

  <th>
    Sample Data
  </th>

  <th>
    Type
  </th>
</tr>
  <td>
    The unique Request ID.
  </td>

  <td>
    55cc44928bd94f4a9\
    c18b8a4edac2365
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    BlockedAdvertiserIds
  </td>

  <td>

  </td>

  <td>

  </td>

  <td>
    array Link
  </td>
</tr>

<tr>
  <td>
    BlockedCampaignIds
  </td>

  <td>

  </td>

  <td>

  </td>

  <td>
    array Link
  </td>
</tr>

<tr>
  <td>
    BlockedCreativeIds
  </td>

  <td>

  </td>

  <td>

  </td>

  <td>
    array Link
  </td>
</tr>

<tr>
  <td>
    BlockedFlights
  </td>

  <td>

  </td>

  <td>

  </td>

  <td>
    array Link
  </td>
</tr>

<tr>
  <td>
    Datacenter
  </td>

  <td>

  </td>

  <td>

  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    DeliveryMode
  </td>

  <td>
    1 = Web (served by ados.js tags)\
    2 = Email (served by HTML tags)\
    3 = API (served by REST call)\
    4 = Static Tracking Link (served by GIF).
  </td>

  <td>
    3
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Device
  </td>

  <td>

  </td>

  <td>

  </td>

  <td>
    object - see other
  </td>
</tr>

<tr>
  <td>
    EnableBotFiltering
  </td>

  <td>
    Indicated whether or not the request was bot filtered against IAB bots/spiders list.
  </td>

  <td>

  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    EnableUserDBIP
  </td>

  <td>
    Indicates whether or not we store the IP in UserDB.
  </td>

  <td>

  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    GdprComputed
  </td>

  <td>
    Given all gdpr variables/vendor lookups etc, whether the request qualifies as consenting.
  </td>

  <td>
    TRUE
  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    GdprIsEu
  </td>

  <td>
    Boolean indicating whether request's origin country is EU.
  </td>

  <td>

  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    GdprRaw
  </td>

  <td>
    Boolean passed in for consent.
  </td>

  <td>

  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    Gdprsource
  </td>

  <td>
    Source of consent.  '+' separated string of values: 'blk', 'req', 'udb', 'req'.  example: 'req+udb'.
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    HostName
  </td>

  <td>

  </td>

  <td>
    “e-10322.adzerk.net“
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    IncludePricingData
  </td>

  <td>
    Indicates whether pricing data was requested.
  </td>

  <td>

  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    IsValidUA
  </td>

  <td>
    If true, the request passed the bots and spiders filter.
  </td>

  <td>
    TRUE
  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    Keywords
  </td>

  <td>
    Keywords defining the request made.
  </td>

  <td>
    Quick Links:

    - [Request Logs](d
  </td>

  <td>
    array Links:

  </td>
</tr>

<tr>
  <td>
    Location.City
  </td>

  <td>
    An array of location data from the ad request.
  </td>

  <td>
    Sydney
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Location.CountryCode
  </td>

  <td>
    see above.
  </td>

  <td>
    AU
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Location.CountryName
  </td>

  <td>
    see above.
  </td>

  <td>
    Australia
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Location.Latitude
  </td>

  <td>
    see above.
  </td>

  <td>
    0
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Location.Longitude
  </td>

  <td>
    see above.
  </td>

  <td>
    0
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Location.DmaCode
  </td>

  <td>
    see above.
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Location.MetroCode
  </td>

  <td>
    see above.
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Location.PostalCode
  </td>

  <td>
    see above.
  </td>

  <td>
    2000
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Location.Region
  </td>

  <td>
    see above.
  </td>

  <td>
    NSW
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Meta:schema
  </td>

  <td>
    The type of log - will always be event.
  </td>

  <td>
    event
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Meta:version
  </td>

  <td>
    The version of the log format this log object uses.
  </td>

  <td>
    1
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    NetworkId
  </td>

  <td>
    The network ID from the request.
  </td>

  <td>
    10322
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Properties
  </td>

  <td>
    Custom properties set by the user on the request.  only appears if not empty.
  </td>

  <td>
    "Properties": \{\
        "key": "value"}
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Protocol
  </td>

  <td>
    Protocol of this request.
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    ReferrerUrl
  </td>

  <td>
    Referrer url if request.referrer is set.
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    RequestCount
  </td>

  <td>
    Number of items requested to be returned for this request.
  </td>

  <td>
    1
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Timestamp
  </td>

  <td>
    Time of the request, as milliseconds since UNIX epoch.
  </td>

  <td>
    1581038415077
  </td>

  <td>
    long
  </td>
</tr>

<tr>
  <td>
    Url
  </td>

  <td>
    URL if request.url is set.
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Segments
  </td>

  <td>
    Override Segments passed with the User object on the ADR. Absent if no segments present on the ADR.
  </td>

  <td>
    Quick L
  </td>

  <td>
    array Link
  </td>
</tr>

<tr>
  <td>
    User.IsNew
  </td>

  <td>
    An array of user data (in UserDB) associated with the request. Contains two fields: the Key, and whether or not this is a new user. Sourced from the request.
  </td>

  <td>
    TRUE
  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    User.Key
  </td>

  <td>
    See above.
  </td>

  <td>
    ue1-708a3d9146d7438\
    b85a8cc6686e9a0e8
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    User.Segments
  </td>

  <td>
    All segments the user belongs to at the time of the ad decision request (ADR), sourced from either: a) the UserDB record (if no segments were provided in the incoming ADR); or b) the ADR request payload (if segments were explicitly sent in the ADR, these override the UserDB segments).
  </td>

  <td>
    Quick L
  </td>

  <td>
    array Link
  </td>
</tr>
Name
Id

Decision Logs

The ad serving engine makes a decision from the request as to which ad (if any) to return in the response. Every placement sent in the request will receive its own decision, so one request could generate ten decisions if there are ten placements.

Decision logs contain a JSON object for each decision.

  <th>
    Description
  </th>

  <th>
    Sample Data
  </th>

  <th>
    Type
  </th>
</tr>
  <td>
    The decision ID.
  </td>

  <td>
    "8f4f8ce4c48041ebb\
    abe267bc619a644"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    AdId
  </td>

  <td>
    The ad ID if it was passed in the placement.
  </td>

  <td>
    1234567
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    AdQuery
  </td>

  <td>
    Dynamic fields based on which attributes are included in adQuery object in ad decision requests.
  </td>

  <td>

  </td>

  <td>
    JSON
  </td>
</tr>

<tr>
  <td>
    AdTypes
  </td>

  <td>
    The ad types from the placement.
  </td>

  <td>
    Qui
  </td>

  <td>
    array Link
  </td>
</tr>

<tr>
  <td>
    CampaignId
  </td>

  <td>
    The campaign ID if it was passed in the placement.
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    ClickUrl
  </td>

  <td>
    The ClickUrl if passed in the placement.
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    ContentKeys
  </td>

  <td>
    A map of key/value pairs used for ContentDB if passed in the placement.
  </td>

  <td>

  </td>

  <td>
    object
  </td>
</tr>

<tr>
  <td>
    Count
  </td>

  <td>
    The number of ads to return per placement if passed in the placement.
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    DecisionCount
  </td>

  <td>
    Number of decisions per object. DecisionCount can be summed to receive a total.
  </td>

  <td>
    1
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    DivName
  </td>

  <td>
    The name of the div from the placement.
  </td>

  <td>
    "div1"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    EventIds
  </td>

  <td>
    Event IDs if passed in the placement.
  </td>

  <td>

  </td>

  <td>
    array
  </td>
</tr>

<tr>
  <td>
    FlightId
  </td>

  <td>
    The flight ID if it was passed in the placement.
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    FloorCPC
  </td>

  <td>
    Floor CPC if passed in the placement.
  </td>

  <td>

  </td>

  <td>
    float
  </td>
</tr>

<tr>
  <td>
    FloorPrice
  </td>

  <td>
    Floor price if passed in the placement.
  </td>

  <td>

  </td>

  <td>
    float
  </td>
</tr>

<tr>
  <td>
    Meta:version
  </td>

  <td>
    The decision ID.
  </td>

  <td>
    "1.0"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Meta:schema
  </td>

  <td>
    The type of log - will always be decision.
  </td>

  <td>
    "decision"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    NetworkId
  </td>

  <td>
    The network ID from the request.
  </td>

  <td>
    1234
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Overrides
  </td>

  <td>
    An object that overrides values for an advertiser, campaign, flight or ad, if passed in the placement.
  </td>

  <td>

  </td>

  <td>
    object
  </td>
</tr>

<tr>
  <td>
    Properties
  </td>

  <td>
    A map of key/value pairs used to pass custom properties in the placement.
  </td>

  <td>

  </td>

  <td>
    object
  </td>
</tr>

<tr>
  <td>
    Proportionality
  </td>

  <td>
    If a multi-winner placement used the proportionality setting.
  </td>

  <td>

  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    RequestId
  </td>

  <td>
    The ID of the decision's request.
  </td>

  <td>
    "a6dca0abf19e4b41a4ac\
    679b9328907b"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    SiteId
  </td>

  <td>
    The site ID from the placement.
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Timestamp
  </td>

  <td>
    Time of the decision, as milliseconds since UNIX epoch.
  </td>

  <td>
    1541173272293
  </td>

  <td>
    long
  </td>
</tr>

<tr>
  <td>
    ZoneIds
  </td>

  <td>
    The zone ID(s) if they were passed in the placement.
  </td>

  <td>

  </td>

  <td>
    array
  </td>
</tr>

<tr>
  <td>
    PassbackAdIds
  </td>

  <td>
    RTB related
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    SelectedAdIds
  </td>

  <td>
    Ad IDs selected for this placement.
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    RtbAdIds
  </td>

  <td>
    RTB related
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    BidRequestAdIds
  </td>

  <td>
    RTB related
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    EventMultiplier
  </td>

  <td>
    RTB related
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    MatchedBidRequestAdIds
  </td>

  <td>
    RTB related
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>
Name
Id
{
  "Meta:schema": "decision",
  "Meta:version": "1.0",
  "NetworkId": 1234,
  "Id": "8f4f8ce4c48041ebbabe267bc619a644",
  "DecisionCount": 1,
  "RequestId": "a6dca0abf19e4b41a4ac679b9328907b",
  "Timestamp": 1541173272293,
  "DivName": "div1",
  "AdTypes": [
    5
  ],
  "SiteId": 123456,
  "AdId": 1234567
}

Selection Logs

Selection logs contain information about the ad which was actually selected.
Note: If no ad was selected for a given decision, a Selection log will not be created.

The JSON objects for other events use the same format as the impression object.

  <th>
    Description
  </th>

  <th>
    Sample Data
  </th>

  <th>
    Type
  </th>
</tr>
  <td>
    The numeric ID of an ad size. Sourced from the event shim.
  </td>

  <td>
    162
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    AuctionBids
  </td>

  <td>
    The number of non-RTB ads competing for the impression in an Auction priority. If the ad served was selected outside of an Auction priority, then this AuctionsBids value will be zero. Note that this field is absent unless there is at least one auction bid in the event shim.
  </td>

  <td>
    78
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    BrandId
  </td>

  <td>
    The numeric ID of the impression's advertiser. Sourced from the event shim.
  </td>

  <td>
    554125
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    BurnIn
  </td>

  <td>
    True if in initial/learning phase
  </td>

  <td>

  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    CampaignId
  </td>

  <td>
    The numeric ID of the impression's campaign. Sourced from the event shim.
  </td>

  <td>
    1331048
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Categories
  </td>

  <td>
    The numeric ID of the impression's advertiser. Sourced from the event shim.
  </td>

  <td>
    \[]
  </td>

  <td>
    array
  </td>
</tr>

<tr>
  <td>
    ChannelId
  </td>

  <td>
    The numeric ID of the impression's channel. Sourced from the event shim.
  </td>

  <td>
    40304
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    CreatedOn
  </td>

  <td>
    A time/date stamp (milliseconds since UNIX epoch) that indicates when the impression happened.
  </td>

  <td>
    "/Date(1581038413783)/"
  </td>

  <td>
    int (date)
  </td>
</tr>

<tr>
  <td>
    CreativeId
  </td>

  <td>
    The numeric ID of the impression's creative. Sourced from the event shim.
  </td>

  <td>
    16458736
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    CreativeMetadata
  </td>

  <td>
    The [creative metadata](https://dev.kevel.co/docs/creatives#creative-details-settings) and/or [creative template values](https://dev.kevel.co/docs/creative-templates) of the selection if they are set on the creative.
  </td>

  <td>
    \{\
      "customData": \{\
        "example": \{\
          "keyName": true\
        }\
      },\
      "ctTemplateVariable": "foo"\
    }
  </td>

  <td>
    object
  </td>
</tr>

<tr>
  <td>
    CreativePassId
  </td>

  <td>
    The numeric ID of the impression's ad (creative mapped to flight). Sourced from the event shim.
  </td>

  <td>
    19126348
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Datacenter
  </td>

  <td>
    [If true, the event originates from a TAG known datacenter.](https://www.tagtoday.net).
  </td>

  <td>
    FALSE
  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    DecisionId
  </td>

  <td>
    Decision ID associated with this selection.
  </td>

  <td>
    “7fb50ca376064d9ba5\
    0005e24535f4c9”
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    DecisionIdx
  </td>

  <td>
    Decision Index. If the Decision generates only one Selection (i.e. it does not originate from a multi-winner placement) then the DecisionIdx will always be 0. For multi-winner placements, the DecisionIdx will be the order of the Selection within the Decision (zero indexed).
  </td>

  <td>
    0
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    DeliveryMode
  </td>

  <td>
    `1` ` =` `Web (served by ados.js tags)`\
    `2` ` =`  `Email (served by HTML tags)`\
    `3` `=` `API (served by REST call)`\
    `4` `=` `Static Tracking Link (served by GIF)`.
  </td>

  <td>
    3
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Device.advertisedOs
  </td>

  <td>
    Device details from browser UserAgent
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Device.advertisedOsMajorVersion
  </td>

  <td>
    Device details from browser UserAgent
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Device.advertisedOsMinorVersion
  </td>

  <td>
    Device details from browser UserAgent
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Device.advertisedOsRawVersion
  </td>

  <td>
    Device details from browser UserAgent
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Device.brandName
  </td>

  <td>
    Device details from browser UserAgent
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Device.browser
  </td>

  <td>
    Device details from browser UserAgent
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Device.browserMajorVersion
  </td>

  <td>
    Device details from browser UserAgent
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Device.browserMinorVersion
  </td>

  <td>
    Device details from browser UserAgent
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Device.browserRawVersion
  </td>

  <td>
    Device details from browser UserAgent
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Device.deviceIdentified
  </td>

  <td>
    Device details from browser UserAgent
  </td>

  <td>

  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    Device.formFactor
  </td>

  <td>
    Device details from browser UserAgent
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Device.modelName
  </td>

  <td>
    Device details from browser UserAgent
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Device.osMajorVersion
  </td>

  <td>
    Device details from browser UserAgent
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Device.osMinorVersion
  </td>

  <td>
    Device details from browser UserAgent
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Device.osRawVersion
  </td>

  <td>
    Device details from browser UserAgent
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Ecpm
  </td>

  <td>
    Calculated ECPM of the impression/click/event.
  </td>

  <td>
    830.070956
  </td>

  <td>
    float
  </td>
</tr>

<tr>
  <td>
    EcpmPartition
  </td>

  <td>
    Value pased in during decision request.  See [https://dev.kevel.com/docs/ecpm-partitions](https://dev.kevel.com/docs/ecpm-partitions)
  </td>

  <td>

  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    FirstChannelId
  </td>

  <td>
    Deprecated
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    FrequencyCap
  </td>

  <td>
    The type(s) of frequency capping applied to the impression. Logged as the decimal value of a hex bit flag:  

    FlightCapped: 0x00000001\
    AdCapped: 0x00000010\
    CampaignCapped: 0x00000100\
    AdvertiserCapped: 0x00001000\
    FlightDoesNotAffectParent: 0x00010000\
    AdDoesNotAffectParent: 0x00100000\
    CampaignDoesNotAffectParent: 0x01000000  

    For instance, an impression with both a flight cap and ad cap has a flag of 0x00000011, i.e. decimal 17.
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    GeoMatchedPoints
  </td>

  <td>
    Only included when using GeoDistance targeting.  List of GeoDistance targets.
  </td>

  <td>

  </td>

  <td>

  </td>
</tr>

<tr>
  <td>
    GdprComputed
  </td>

  <td>
    If true, the request has GDPR consent (from the request itself, from a UserDB record, etc.).
  </td>

  <td>
    TRUE
  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    GdprConsentRequired
  </td>

  <td>
    If true, the gdprConsentRequired parameter was provided on the request, indicating that the user was subject to GDPR regulation (even if they didn't use an EU IP address).
  </td>

  <td>
    FALSE
  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    GdprConsentString
  </td>

  <td>
    The IAB consent string provided with the request if the string was used when computing GDPR consent.
  </td>

  <td>
    ““
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    GdprSource
  </td>

  <td>
    Where GDPR consent data (`true` or `false`) originates:  

    `none` - no consent\
    `request` - on the ad request\
    `userdb` - on the user record\
    `both` - both user record and request\
    `str` - from an IAB consent string + allowed vendor ID
  </td>

  <td>
    "none"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Gmv
  </td>

  <td>
    Gross Merchandise Value. Sourced from the event URL if appended as a query parameter. Calculated by taking the gmv parameter on the event URL and multiplying by 1,000,000.
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Id
  </td>

  <td>
    The unique Selection ID.
  </td>

  <td>
    "71f5686388df4fd99fb\
    f43b96eeb4946"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    IsNoTrack
  </td>

  <td>
    If true, the impression was served to a Do Not Track enabled user (boolean).
  </td>

  <td>
    FALSE
  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    IsPublisherPayourExempt
  </td>

  <td>
    Deprecated
  </td>

  <td>

  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    IsRemainder
  </td>

  <td>
    If true, the impression was served as part of the "Remainder Percentage" in an auction priority. IsRemainder is only logged when true.
  </td>

  <td>
    FALSE
  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    IsTrackingCookieEvents
  </td>

  <td>
    If true, the impression is tracking conversions. Sourced from the event shim (boolean).
  </td>

  <td>
    FALSE
  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    IsValidUA
  </td>

  <td>
    If true, the impression passed the bots and spiders filter (boolean).
  </td>

  <td>
    TRUE
  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    Keywords
  </td>

  <td>
    Keyword(s) sent on the request, converted into a comma separated string. Sourced from the event shim.
  </td>

  <td>
    "fpfdvrmwggl4z,j7sr2y\
    wlddf6m,dt7zi5mlfrrs7,\
    kr74uowfsyyzp"
  </td>

  <td>
    string (comma delimited)
  </td>
</tr>

<tr>
  <td>
    Location.CountryCode
  </td>

  <td>
    An array of location data from the request. Sourced from the ad request, NOT the event shim.
  </td>

  <td>
    "AU"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Location.CountryName
  </td>

  <td>
    See above.
  </td>

  <td>
    "Australia"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Location.Region
  </td>

  <td>
    See above.
  </td>

  <td>
    "NSW"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Location.City
  </td>

  <td>
    See above.
  </td>

  <td>
    "Sydney"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Location.DmaCode
  </td>

  <td>
    See above.
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Location.MetroCode
  </td>

  <td>
    See above.
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Location.PostalCode
  </td>

  <td>
    See above.
  </td>

  <td>
    "2000"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Location.Latitude
  </td>

  <td>
    See above.
  </td>

  <td>
    0
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    Location.Longitude
  </td>

  <td>
    See above.
  </td>

  <td>
    0
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    MatchingKeywords
  </td>

  <td>
    Keyword(s) present in the ad. Sourced from the event shim.
  </td>

  <td>
    Quick Links:

    - [Request Logs](doc:be
  </td>

  <td>
    array Links:

  </td>
</tr>

<tr>
  <td>
    Meta:schema
  </td>

  <td>
    The type of log - will always be event.
  </td>

  <td>
    "event"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Meta:version
  </td>

  <td>
    The version of the log format this log object uses.
  </td>

  <td>
    "1.3"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    NetworkId
  </td>

  <td>
    The numeric ID of the selection's network. Sourced from the event shim.
  </td>

  <td>
    10322
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    OptimizedPrice
  </td>

  <td>
    The price set by a bid optimizer (as in ROAS targeting) and is distinct from the initial price
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    PassId
  </td>

  <td>
    The numeric ID of the selection's flight. Sourced from the event shim.
  </td>

  <td>
    11082877
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    PhantomCreativePassId
  </td>

  <td>
    Deprecated
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    PhantomPassId
  </td>

  <td>
    Deprecated
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    PlacementName
  </td>

  <td>
    The name of the Placement object or <div> that served the ad. Sourced from the event shim.
  </td>

  <td>
    "placement 5"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Price
  </td>

  <td>
    The price per unit (CPA, CPM, CPC etc.) associated with the impression. Returned as a string. Sourced from the event shim.
  </td>

  <td>
    "6.01"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    PriorityId
  </td>

  <td>
    The numeric ID of the selection's priority. Sourced from the event shim.
  </td>

  <td>
    161492
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    RateType
  </td>

  <td>
    The [rate](https://dev.kevel.co/docs/flights#rateprice) used by the flight. Sourced from the event shim:\
     · 1 - Flat\
     · 2 = CPM\
     · 3 = CPC\
     · 4 = CPA View\
     · 5 = CPA Click\
     · 6 = CPA Both
  </td>

  <td>
    3
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    RelevancyScore
  </td>

  <td>

  </td>

  <td>
    500
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    RemoteIP
  </td>

  <td>
    Due to GDPR regulation, this is sanitized as 0.0.0.0 instead of the IP address. You can optionally log IP addresses if the request or user record IP address does not originate from a GDPR regulated area([https://dev.kevel.co/docs/gdpr-compliance-and-consent-settings#section-writing-ip-addresses-to-data-shipping-when-gdpr-doesnt-apply](https://dev.kevel.co/docs/gdpr-compliance-and-consent-settings#section-writing-ip-addresses-to-data-shipping-when-gdpr-doesnt-apply)).
  </td>

  <td>
    "0.0.0.0"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    Revenue
  </td>

  <td>
    Revenue generated via the impression. Calculated by taking the revenue field in the event shim and multiplying by 1,000,000.
  </td>

  <td>
    0
  </td>

  <td>

  </td>
</tr>

<tr>
  <td>
    revenueMultiplier
  </td>

  <td>
    Kevel Internal: Set to 1000000
  </td>

  <td>
    int
  </td>

  <td>

  </td>
</tr>

<tr>
  <td>
    SelectionCount
  </td>

  <td>
    The number of selections. This is always 1
  </td>

  <td>
    int
  </td>

  <td>

  </td>
</tr>

<tr>
  <td>
    ServedBy
  </td>

  <td>

  </td>

  <td>
    "i-0ecaf52dd4dba2672"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    ServedByAsg
  </td>

  <td>

  </td>

  <td>
    "bifrost-adservers-default\
    -us-east-1"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    ServedByPid
  </td>

  <td>

  </td>

  <td>
    43473
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    SiteId
  </td>

  <td>
    The numeric ID of the impression's site. Sourced from the event shim.
  </td>

  <td>
    1086974
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    TimeZoneId
  </td>

  <td>
    Timezone of the flight ie. 
  </td>

  <td>
    "UTC"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    User.IsNew
  </td>

  <td>
    An array of user data (in UserDB) associated with the impression. Contains two fields: the Key, and whether or not this is a new user. Sourced from either the UserDB record or the user's cookie.
  </td>

  <td>
    FALSE
  </td>

  <td>
    boolean
  </td>
</tr>

<tr>
  <td>
    User.Type
  </td>

  <td>
    Kevel Internal
  </td>

  <td>

  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    User.Key
  </td>

  <td>
    See above.
  </td>

  <td>
    "ue1-3542a229b8be4109b\
    cad892fc317ddfa"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    UserAgent
  </td>

  <td>
    Deprecated for privacy purposes. User agent data can now be found in the Device object
  </td>

  <td>

  </td>

  <td>

  </td>
</tr>

<tr>
  <td>
    UserKey
  </td>

  <td>
    The user Key (used by UserDB) associated with the impression. Sourced from the ad request.
  </td>

  <td>
    "ue1-3542a229b8be4109b\
    cad892fc317ddfa"
  </td>

  <td>
    string
  </td>
</tr>

<tr>
  <td>
    ZoneId
  </td>

  <td>
    The numeric ID of the impression's zone (if applicable). Sourced from the event shim.
  </td>

  <td>
    0
  </td>

  <td>
    int
  </td>
</tr>

<tr>
  <td>
    MatchedSegmentIds
  </td>

  <td>
    Segment IDs that successfully matched between: User segments (from ADR or UserDB) and Ad targeting rules (include/exclude rules). This is the specific segment IDs that matched during segment targeting evaluation for that particular ad selection.
  </td>

  <td>
    Quick L
  </td>

  <td>
    array Link
  </td>
</tr>
Name
AdTypeId

UserDB Logs

UserDB logs contain JSON objects that represent an activity involving user records— adding custom interests, setting interests, setting GDPR consent, etc. UserDB logs are not shipped by default. You will need to have UserDB enabled, data shipping enabled, AND request the beta logs via a support ticket.

KeyDescription
ActionThe UserDB action logged. See table below.
BrandIdThe ID of a retargeted advertiser, set by the /rt endpoint.
Custom:[key]Custom JSON values set by /custom endpoint.
ConsentGDPR consent string set by /consent endpoint.
InterestInterest, set by /interest endpoint converted into a comma separated string.
IPUser's IP address, set by the /ip endpoint.
Meta:versionThe version of the log format this log object uses.
Meta:schemaThe type of log - will always be userdb.
NetworkIdYour account's network ID.
PartnerIdRTB partner ID set by /sync endpoint.
PartnerKeyPartner key that was set by /sync endpoint.
Property:[key]Any properties passed as a query string on the endpoint, as ?property:foo=bar.
SegmentIdThe ID of a retargeting segment, set by the /rt endpoint.
TimestampTime of the action, as milliseconds since UNIX epoch.
UserKeyThe UserDB ID (also known as "user key") of the user.

Action values:

ActionDescription
cookieUser record was loaded as the azk cookie (/set endpoint).
consentUser's consent was added/removed (/consent endpoint).
customCustom JSON data was added to a user record (/custom endpoint).
forgetUser record was forgotten (/forgot endpoint).
interestInterest was added to a user record (/interest endpoint).
ipIP address was added to user record (/ip endpoint).
retargetingUser record was added to retargeting segment (/rt endpoint).
optoutUser was opted out of UserDB tracking (/optout endpoint).
syncUser record was synced with a third-party ID (/sync endpoint).
{
  "Meta:schema": "userdb",
  "Meta:version": "1.0",
  "NetworkId": 1234,
  "UserKey": "newKey",
  "Timestamp": 1540920521404,
  "Action": "cookie"
}