---
title: Target, Event, & Condition Mapping
slug: engine-api/targets-events-conditions
description: Overview of the Monetate Engine API events for WHO targets, action conditions, and select experience metrics
image:  https://archbee-image-uploads.s3.amazonaws.com/ceIfEvQHzQk1IVxoRWUh7/K9eTL4jKm7UQINb6zNziJ-20250912-181225.png
docTags: 
createdAt: 2024-05-07T13:18:40.784Z
---

If your site leverages the Engine API, you must ensure to include in Engine API requests the information necessary for [WHO targets](https://docs.monetate.com/docs/types-of-who-targets) and [action conditions](https://docs.monetate.com/docs/action-conditions).

## Target Type Mapping

This table contains the WHO target types and their respective associated Engine API events.

::::ExpandableHeading
### Location

**Targets**: All targets

**Engine API events**: [monetate\:context\:IpAddress](docId\:UcAIL_Fi7yEjd8vUctl9V) and [monetate\:context\:Coordinates](docId\:jqHwkd5f0TOpTc0RTOg31)

:::hint{type="info"}
Send coordinates for greater location precision. You can send both IP address and coordinates in the same request. Send coordinates for greater location precision. You can send both IP address and coordinates in the same request.&#x20;
:::
::::

::::ExpandableHeading
### Weather

**Targets**: All targets

**Engine API events**: [monetate\:context\:IpAddress](docId\:UcAIL_Fi7yEjd8vUctl9V) and [monetate\:context\:Coordinates](docId\:jqHwkd5f0TOpTc0RTOg31)

:::hint{type="info"}
Send coordinates for greater location precision. You can send both IP address and coordinates in the same request.&#x20;
:::
::::

::::ExpandableHeading
### US Demographics

**Targets**: All targets

**Engine API events**: [monetate\:context\:IpAddress](docId\:UcAIL_Fi7yEjd8vUctl9V) and [monetate\:context\:Coordinates](docId\:jqHwkd5f0TOpTc0RTOg31)

:::hint{type="info"}
Send coordinates for greater location precision. You can send both IP address and coordinates in the same request.&#x20;
:::
::::

:::ExpandableHeading
### Technographics

**Targets**

- Browser
- Device type
- Operating system
- HTML5 capable

**Engine API event**: [monetate\:context\:UserAgent](docId\:NgmNvrdCuYtMtLDLgUyYR)

***

**Targets**

- Screen height
- Screen width
- Screen resolution

**Engine API event**: [monetate\:context\:ScreenSize](docId\:Y7cEY7c6D5n9Hymz0FTwk)
:::

::::ExpandableHeading
### Landing

**Targets**

- Custom variable visitors
- Custom variable visitors with multiple values

**Engine API event**: [monetate\:context\:CustomVariables](docId\:qWXOawFdBWNX4Zarj-hAh)

:::hint{type="info"}
The `monetate:context:CustomVariables` event is also used in place of [custom targets](https://docs.monetate.com/docs/create-targets-for-web-experiences) because the Engine API doesn't have access to these client-side targets based on cookies, JavaScript variables, and HTML elements. Therefore, you must pass this information using `monetate:context:CustomVariables` instead.
:::

***

**Target**: New visitors

**Engine API event**: No event required because a customer matches when `monetateId` or `deviceId` isn't present in the request

***

**Target**: Returning visitors

**Engine API event**: No event required because a customer matches when `monetateId` or `deviceId` is present in the request

***

**Targets**

- Referrer
- Past external referrer in past hours contains

**Engine API event**: [monetate\:context\:Referrer](docId\:dqvBBTiobBxPkZSgqVzo9)

***

**Target**: Direct navigation visitors

**Engine API event**: No event required because a customer matches with the absence of [monetate\:context\:Referrer](docId\:dqvBBTiobBxPkZSgqVzo9)

***

**Targets**

- Initial URL query string
- Landing page match
- Last external landing in past hours contains

**Engine API event**: [monetate\:context\:PageView](docId:0S1UVO4ctyzDYZRpvevDN)

:::hint{type="info"}
The `monetate:context:PageView` event references the URL parameter for evaluation.
:::
::::

::::ExpandableHeading
### Behavior

**Targets**

- Abandoned cart
- Amount in abandoned cart
- Amount in cart
- Attribute of product in cart
- Product in abandoned cart
- Product in cart
- Quantity in cart

**Engine API event**: [monetate\:context\:Cart](docId\:CCLZbgZdAjWM9HubH3fBi)

:::hint{type="info"}
You must also pass a known `monetateId` or `deviceId` to sync past session behavior.
:::

***

**Targets**

- Attribute of product purchased
- Average order size
- Days since last purchase
- Last order size
- Product last purchased
- Product purchased
- Products purchased in past days
- Purchase frequency
- Purchased any product
- Purchases in past days
- Purchased on or after specified date

**Engine API event**: [monetate\:context\:Purchase](docId:1WbW8Jiq4stq8KCOrSh2n)

:::hint{type="info"}
You must also pass a known `monetateId` or `deviceId` to sync past session behavior.
:::

***

**Targets**

- Attribute of product viewed
- Product viewed
- Product viewed last visit
- Product viewed this visit

**Engine API event**: [monetate\:context\:ProductDetailView](docId:0QyZqPaP6DHh9e-BNP6iY)

:::hint{type="info"}
You must also pass a known `monetateId` or `deviceId` to sync past session behavior. Furthermore, a product catalog is required for attribute-based targeting.
:::

***

**Target**: On-site search terms

**Engine API event**: [monetate\:context\:SearchView](docId:7zmQ7-M-ntbvwL6kSOW8w)

:::hint{type="info"}
You must also pass a known `monetateId` or `deviceId`.
:::

***

**Targets**

- Days since last visit
- Experiences seen by user
- Sessions in past days
- Time on site
- Visited on or after specified date

**Engine API event**: No event required because these targets are based on the Monetate session

:::hint{type="info"}
You must pass a known `monetateId` or `deviceId` to sync past session behavior.
:::
::::

:::ExpandableHeading
### Datasets

**Targets**: All targets

**Engine API event**: No event required because lookup is based on the `customerId` field in the Engine API request
:::

## Action Condition Mapping

This table contains the [action conditions](https://docs.monetate.com/docs/action-conditions#available-action-conditions) and their respective associated Engine API events.

| **Action Condition** | **Engine API Event**                                                    | **Notes**                              |
| -------------------- | ----------------------------------------------------------------------- | -------------------------------------- |
| Page type            | [monetate\:context\:PageView](docId:0S1UVO4ctyzDYZRpvevDN)              | References the `pageType` parameter    |
| URL                  | [monetate\:context\:PageView](docId:0S1UVO4ctyzDYZRpvevDN)              | References the URL parameter           |
| Time                 | Based on request evaluation time                                        |                                        |
| Cart value           | [monetate\:context\:Cart](docId\:CCLZbgZdAjWM9HubH3fBi)                 |                                        |
| Landing page         | Not currently supported                                                 |                                        |
| Page breadcrumb      | [monetate\:context\:PageView](docId:0S1UVO4ctyzDYZRpvevDN)              | References the `breadcrumbs` parameter |
| Page category        | [monetate\:context\:PageView](docId:0S1UVO4ctyzDYZRpvevDN)              | References the `categories` parameter  |
| Product detail page  | [monetate\:context\:ProductDetailView](docId:0QyZqPaP6DHh9e-BNP6iY)     |                                        |
| Product list page    | [monetate\:context\:ProductThumbnailView](docId:9VI5lbVf0klH3Qj6Xa2-E)  |                                        |
| Custom variable      | [monetate\:context\:CustomVariables](docId\:qWXOawFdBWNX4Zarj-hAh)      |                                        |

## Event/Metric Mapping

Events, such as product views, are counted individually. If this information is recorded by both the Monetate tag and the Engine API, which is possible in a [hybrid implementation](docId\:ZFxS45Ymf6aIcWwKKgXcC), the event could be counted twice in the experience analytics. See [Retracks and the Average Page View Metric](docId\:z7zs1BulqPT_0Z1CoYHww) in [Page Retracks](docId\:z7zs1BulqPT_0Z1CoYHww) for more information.

For pure Engine API implementations, all event reporting must be passed via Engine API requests. This table contains the default metrics and their respective associated Engine API events.

| **Metric**                                                                                    | **Engine API Event**                                             |
| --------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| - Conversion rate
- New customer acquisition rate
- Revenue per session
- Average order value | [monetate\:context\:Purchase](docId:1WbW8Jiq4stq8KCOrSh2n)       |
| * Add to cart rate
* Cart abandonment rate                                                    | [monetate\:context\:Cart](docId\:CCLZbgZdAjWM9HubH3fBi)          |
| - Bounce rate
- Average page views                                                            | Not currently supported                                          |
| Average time on site                                                                          | Based on the Monetate session                                    |
| API events                                                                                    | [monetate\:record\:PageEvents](docId\:x7k8z81A-G9boBqmny0hB)     |
| Recommendations impressions                                                                   | [monetate\:record\:RecImpressions](docId\:VgkeZ_Dw5gcpO7DpqFW41) |
| Recommendations clicks                                                                        | [monetate\:record\:RecClicks](docId\:mb-dQXgU5doQcbjiqRlQy)      |

## Using Action Conditions in Omnichannel Experiences

Similar to Monetate tag–based implementations, you can apply action conditions to the actions you configure in Omnichannel experiences.

For example, if you want an action to appear on a particular page type, click **ADD CONDITION**, expand the options of the **Page type** category, and then select **Page type =**.

![Callout of the 'Page type = option' in the 'Page type' category of the action conditions selector for an Omni JSON action template in the Monetate platform](https://dyzz9obi78pm5.cloudfront.net/app/image/id/641b60d23d280a11841b0202/n/experiences-omni-json-add-condition-page-type-equals.png)

To complete the condition, type the page type into the field and then press Enter. The page type is defined by the `setPageType` data that you pass to Monetate.

Here is an example request with `pageType` specified in the [monetate\:context\:PageView](docId:0S1UVO4ctyzDYZRpvevDN)  event:

:::CodeblockTabs
Example Request with pageType Specified in monetate\:context\:PageView

```json
{
"channel": "a-927c8120/p/example.com",
"monetateId": "5.275061469.1543777025730",
"events": [
    {
      "eventType": "monetate:decision:DecisionRequest",
      "requestId": "11111",
      "includeReporting": true
    },
    {
      "eventType": "monetate:context:PageView",
      "pageType": "home",
      "url": "test/foo"
    }
  ]
}
```
:::

