# Property

## Overview

A property is a characteristic of a subject. In Hackle, the subjects that can have properties are **users and events**.

* Users and events can have one or more properties.
* A property consists of a Property Key and a Property Value.
* The Property Key is an abstraction of each characteristic.
* The Property Value is the concrete value for each characteristic.

{% hint style="info" %}
The analysis criteria can be seen as the property key, and the analysis items can be seen as an itemization of the property values.
{% endhint %}

## Example

Assume that member B of shopping mall A is 30 years old, has VIP membership tier, and has completed adult verification. In this case, member B's properties can be defined as follows:

| Property Key     | Property Value |
| ---------------- | -------------- |
| age              | 30             |
| membership\_tier | VIP            |
| adult\_verified  | Yes            |

## Conditions for Property Values

* Must be expressible as a string, number, or yes/no.
* For strings, the maximum length is 64 characters.
* For numbers, up to 15 integer digits and up to 6 decimal places are supported.

## Importance of defining property values

Everything you want to measure can have properties. Data can also be collected by gathering properties.\
Therefore, it is important to define properties that match the analysis criteria.

For example, if you want to "analyze by the platform users use," you need to be able to collect platform properties. In this case, the property key is obviously "platform," but the property values may require some thought. You could divide into PC/Mobile, or PC/Mobile/Tablet. There is no correct answer here; it depends on a value judgment of what values are needed.

## Types of properties

There are two types of properties available in Hackle.

1. **Hackle-provided Properties**\
   For properties defined by Hackle, the Hackle SDK automatically collects them.\
   Hackle-provided properties have a Hackle logo icon before the property key.
2. **Custom Properties**\
   You define the properties you want and collect them via the Hackle SDK.

![(Example) A/B Test - Data Analytics tab - Dialog when clicking the Configure Manually button](/files/SOmMDuv63YnHildVE01d)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hackle.io/en/event-management/properties.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
