Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/capabilities/analytics/devvit-journeys.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ Events must reflect **intentional, committed user actions**.

### App allowlist

Telemetry is restricted by a server-side allowlist. Only approved apps can emit journey events. Requests from non-allowlisted apps will get a message that the event was dropped.
Devvit Journeys is generally available, and apps do not need to be individually added to an allowlist to emit journey events. The telemetry service may still apply server-side controls, such as disabling telemetry or excluding an app. Check the receipt returned by each telemetry call: `JOURNEY_RECEIPT_VALID` means the event was accepted and recorded. See [Journeys Receipts](./journeys-receipts.md) for other outcomes.

### Platform constraints

Expand All @@ -147,7 +147,7 @@ Here's how to implement journey tracking in your app.

### Permissions

Set Journeys permissions to `true` in `devvit.json`.
Set Journeys permissions to `true` in `devvit.json`.

```
"permissions": {
Expand Down
28 changes: 15 additions & 13 deletions docs/capabilities/analytics/journeys-receipts.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@ Other Journey calls return:

Covered calls:

- Start Journey
- Journey Progress
- Journey Interaction
- End Journey
- Start Journey
- Journey Progress
- Journey Interaction
- End Journey
- App Ready

## Receipt fields
Expand All @@ -45,6 +45,8 @@ Covered calls:

`message` is the human-readable diagnostic. You can log it or display it during implementation/debugging.

Devvit Journeys is generally available, so apps do not need to request individual allowlist enrollment as part of normal setup. The server may still return a denied receipt when a server-side rollout or exclusion control applies.

## Upgrade note for existing devs

`startJourney()` changed from returning only the Journey ID information to returning the Journey ID plus a receipt. If you’re upgrading existing code, you may need to update any custom response types, mocks, or destructuring assumptions so they account for the new `receipt` field.
Expand All @@ -63,14 +65,14 @@ For example, code that only typed the response as `{ journeyId: string }` should

## Possible receipt outcomes

| Status | Meaning | Current Message |
| :---- | :---- | :---- |
| `JOURNEY_RECEIPT_VALID` | Event was accepted and recorded. | `Success: Event was recorded.` |
| `JOURNEY_RECEIPT_DENIED_NOT_ALLOWLISTED` | Event was valid, but the app is not enabled for Journey telemetry yet. | `Denied: Your app is not allowlisted for Journey telemetry yet.` |
| `JOURNEY_RECEIPT_DENIED_RATE_LIMITED` | Event was valid, but skipped because the app sent too many events. | `Denied: Event was rate limited.` |
| `JOURNEY_RECEIPT_DENIED_DUPLICATE` | Event was valid, but skipped because it was already recorded. | `Denied: Event was already recorded.` |
| `JOURNEY_RECEIPT_INVALID` | Event payload was invalid and was not recorded. | `Invalid: Event payload was not recorded.` |
| `JOURNEY_RECEIPT_UNSPECIFIED` | Recording status could not be confirmed. | `Unknown: Telemetry recording status could not be confirmed.` |
| Status | Meaning | Current Message |
| :--------------------------------------- | :------------------------------------------------------------------------------------------- | :--------------------------------------------------------------- |
| `JOURNEY_RECEIPT_VALID` | Event was accepted and recorded. | `Success: Event was recorded.` |
| `JOURNEY_RECEIPT_DENIED_NOT_ALLOWLISTED` | Event was valid, but Journey telemetry was not enabled for the app by a server-side control. | `Denied: Your app is not allowlisted for Journey telemetry yet.` |
| `JOURNEY_RECEIPT_DENIED_RATE_LIMITED` | Event was valid, but skipped because the app sent too many events. | `Denied: Event was rate limited.` |
| `JOURNEY_RECEIPT_DENIED_DUPLICATE` | Event was valid, but skipped because it was already recorded. | `Denied: Event was already recorded.` |
| `JOURNEY_RECEIPT_INVALID` | Event payload was invalid and was not recorded. | `Invalid: Event payload was not recorded.` |
| `JOURNEY_RECEIPT_UNSPECIFIED` | Recording status could not be confirmed. | `Unknown: Telemetry recording status could not be confirmed.` |

Example:

Expand All @@ -84,7 +86,7 @@ Example:
}
```

That receipt is an indicator to reach out to the Devvit team for allowlisting. After allowlist, the dev sees:
This receipt indicates that a server-side control prevented the event from being recorded. If you receive it unexpectedly, contact the Devvit team. After the control is removed, the dev sees:

```javascript
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ Events must reflect **intentional, committed user actions**.

### App allowlist

Telemetry is restricted by a server-side allowlist. Only approved apps can emit journey events. Requests from non-allowlisted apps will get a message that the event was dropped.
Devvit Journeys is generally available, and apps do not need to be individually added to an allowlist to emit journey events. The telemetry service may still apply server-side controls, such as disabling telemetry or excluding an app. Check the receipt returned by each telemetry call: `JOURNEY_RECEIPT_VALID` means the event was accepted and recorded. See [Journeys Receipts](./journeys-receipts.md) for other outcomes.

### Platform constraints

Expand All @@ -147,7 +147,7 @@ Here's how to implement journey tracking in your app.

### Permissions

Set Journeys permissions to `true` in `devvit.json`.
Set Journeys permissions to `true` in `devvit.json`.

```
"permissions": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@ Other Journey calls return:

Covered calls:

- Start Journey
- Journey Progress
- Journey Interaction
- End Journey
- Start Journey
- Journey Progress
- Journey Interaction
- End Journey
- App Ready

## Receipt fields
Expand All @@ -45,6 +45,8 @@ Covered calls:

`message` is the human-readable diagnostic. You can log it or display it during implementation/debugging.

Devvit Journeys is generally available, so apps do not need to request individual allowlist enrollment as part of normal setup. The server may still return a denied receipt when a server-side rollout or exclusion control applies.

## Upgrade note for existing devs

`startJourney()` changed from returning only the Journey ID information to returning the Journey ID plus a receipt. If you’re upgrading existing code, you may need to update any custom response types, mocks, or destructuring assumptions so they account for the new `receipt` field.
Expand All @@ -63,14 +65,14 @@ For example, code that only typed the response as `{ journeyId: string }` should

## Possible receipt outcomes

| Status | Meaning | Current Message |
| :---- | :---- | :---- |
| `JOURNEY_RECEIPT_VALID` | Event was accepted and recorded. | `Success: Event was recorded.` |
| `JOURNEY_RECEIPT_DENIED_NOT_ALLOWLISTED` | Event was valid, but the app is not enabled for Journey telemetry yet. | `Denied: Your app is not allowlisted for Journey telemetry yet.` |
| `JOURNEY_RECEIPT_DENIED_RATE_LIMITED` | Event was valid, but skipped because the app sent too many events. | `Denied: Event was rate limited.` |
| `JOURNEY_RECEIPT_DENIED_DUPLICATE` | Event was valid, but skipped because it was already recorded. | `Denied: Event was already recorded.` |
| `JOURNEY_RECEIPT_INVALID` | Event payload was invalid and was not recorded. | `Invalid: Event payload was not recorded.` |
| `JOURNEY_RECEIPT_UNSPECIFIED` | Recording status could not be confirmed. | `Unknown: Telemetry recording status could not be confirmed.` |
| Status | Meaning | Current Message |
| :--------------------------------------- | :------------------------------------------------------------------------------------------- | :--------------------------------------------------------------- |
| `JOURNEY_RECEIPT_VALID` | Event was accepted and recorded. | `Success: Event was recorded.` |
| `JOURNEY_RECEIPT_DENIED_NOT_ALLOWLISTED` | Event was valid, but Journey telemetry was not enabled for the app by a server-side control. | `Denied: Your app is not allowlisted for Journey telemetry yet.` |
| `JOURNEY_RECEIPT_DENIED_RATE_LIMITED` | Event was valid, but skipped because the app sent too many events. | `Denied: Event was rate limited.` |
| `JOURNEY_RECEIPT_DENIED_DUPLICATE` | Event was valid, but skipped because it was already recorded. | `Denied: Event was already recorded.` |
| `JOURNEY_RECEIPT_INVALID` | Event payload was invalid and was not recorded. | `Invalid: Event payload was not recorded.` |
| `JOURNEY_RECEIPT_UNSPECIFIED` | Recording status could not be confirmed. | `Unknown: Telemetry recording status could not be confirmed.` |

Example:

Expand All @@ -84,7 +86,7 @@ Example:
}
```

That receipt is an indicator to reach out to the Devvit team for allowlisting. After allowlist, the dev sees:
This receipt indicates that a server-side control prevented the event from being recorded. If you receive it unexpectedly, contact the Devvit team. After the control is removed, the dev sees:

```javascript
{
Expand Down
Loading