> ## Documentation Index
> Fetch the complete documentation index at: https://docs.keeps.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Product actions

> Attach meaningful application behavior to the exact asset it affected.

Call `track()` after a meaningful server-side action succeeds. The name belongs
to your product vocabulary.

```ts theme={null}
keeps.track("added_to_sequence", {
  asset: outputRow.id,
  userId,
  sessionId,
  properties: { destination: "timeline" },
});
```

Good action names describe what happened to an asset:

* `downloaded`
* `approved`
* `shared`
* `remixed`
* `added_to_sequence`
* `exported_to_nle`
* `reported`

Use lowercase `snake_case`. Do not assign weights or convert actions into a
universal success score. Keeps compares the actions and populations explicitly
in analysis.

Always target the individual output asset. Do not attach an asset action only
to its parent generation.
