# User Identifier

A User Identifier is a value used to identify each individual user — and it is critically important.

All features provided by Hackle are behavior-based.\
Therefore, to accurately analyze user behavior, the criteria for identifying a **user** must be clearly defined.

Being able to clearly identify a specific user allows you to accurately calculate goals such as revenue per user, search conversion rate, and product page views — based on that user's history of purchases, searches, and product views.

{% hint style="info" %}
An identifier must be a unique value with no duplicates.\
For example, a member ID or a device ID that can uniquely identify a user.
{% endhint %}

### Basic User Identifiers

While you can send various user identifiers to Hackle, the most fundamental ones are User ID and Device ID.

<table><thead><tr><th width="146.5703125">Identifier</th><th>Description</th></tr></thead><tbody><tr><td><strong>DeviceID</strong></td><td>The unique identifier for the device (phone, PC, tablet) used to access the service.<br>It remains the same regardless of whether a UserID is set.</td></tr><tr><td><strong>HackleDeviceId</strong></td><td>If no Device ID is separately configured, this value is used as the DeviceID.</td></tr><tr><td><strong>UserID</strong></td><td>A member ID that uniquely identifies a user within the service.<br>It is recommended to set this to the ID generated after the user logs in or registers.</td></tr><tr><td><strong>HackleID</strong></td><td>The <a href="/pages/QowaBg651RXYlAnKd18I">Hackle ID</a> provided by Hackle.<br>When both User ID and Device ID are sent, a Hackle ID is generated by combining the two — enabling more accurate identification of the same user.</td></tr><tr><td>SessionID</td><td>The <a href="/pages/LmFaGj340F0iSsnhNsJo">Session ID</a> maintained during a user's continuous activity.</td></tr><tr><td><strong>ID</strong><br>(deprecated)</td><td>An identifier previously used as the default identifier.<br>Send whichever of Device ID or User ID can be consistently sent as the same value from both the frontend and server.<br>For frontend SDKs, if no separate configuration is made, the Device ID value is sent as-is for ID. This means ID, Device ID, and Hackle Device ID all hold the same value.</td></tr></tbody></table>

### Additional User Identifiers

In addition to the default user identifiers, you can send identifiers of the 'Custom' type.

#### Custom Type

These are user identifiers you define yourself to fit your service.\
For example, in a commerce context, you might use Session ID or order number. Note that Custom type identifiers cannot use the Hackle ID.

{% hint style="danger" %}
Important notes when using Advertising IDs (GAID, IDFA)

When collecting these IDs, you must strictly follow Google's and Apple's policies. Please refer to the links below for each company's policies.

* [Google Advertising ID usage guidelines](https://developer.android.com/training/articles/user-data-ids?hl=ko#advertising-ids)
* [Apple's User Privacy and Data Use guidelines](https://developer.apple.com/kr/app-store/user-privacy-and-data-use/)
  {% endhint %}


---

# 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/getting-started/user-identifier.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.
