Skip to content

Commit 78e7080

Browse files
authored
docs: ppr announced as legacy model, ppr to ppe migration (#2144)
Documentation explaining to users that PPR pricing model is now a legacy pricing model. There is an option to migrate to PPE using a migration button. Other minor fixes. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Marks PPR as a legacy model with a one-click migration to PPE; clarifies PPE spending-limit behavior and updates quality score categories. > > - **Monetization** > - **`sources/platform/actors/publishing/monetize/pay_per_result.mdx`**: > - Add warning that PPR is deprecated and will be replaced by PPE by Jan 2026. > - Add “One click migration to PPE” section with instructions and migration button screenshot. > - **`sources/platform/actors/publishing/monetize/pay_per_event.mdx`**: > - Clarify `eventChargeLimitReached` description to reflect user-set limit behavior. > - Note that the SDK `ChargeResult` already respects `ACTOR_MAX_TOTAL_CHARGE_USD`. > - **Quality score** > - **`sources/platform/actors/publishing/quality_score.mdx`**: > - Minor copy tweak for category intro; add “Trustworthiness” to the category list. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit e396273. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
1 parent 297ea75 commit 78e7080

4 files changed

Lines changed: 38 additions & 4 deletions

File tree

263 KB
Loading

sources/platform/actors/publishing/monetize/pay_per_event.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,12 @@ An Actor's negative net profit does not affect the positive profit of another Ac
6161

6262
Finish the Actor run once charging reaches user-configured maximum cost per run. Apify SDKs (JS and Python) return `ChargeResult` that helps determine when to finish.
6363

64-
The `eventChargeLimitReached` property checks if the current event type can be charged more. If you have multiple event types, analyze the `chargeableWithinLimit` property to see if other events can still be charged before stopping the Actor.
64+
The `eventChargeLimitReached` property checks if the user's limit allows for another charge of this event. If you have multiple events, analyze the `chargeableWithinLimit` property to see if other events can still be charged before stopping the Actor.
6565

6666
:::info ACTOR_MAX_TOTAL_CHARGE_USD environment variable
6767

6868
For pay-per-event Actors, users set a spending limit through the Apify Console. This limit is available in your Actor code as the `ACTOR_MAX_TOTAL_CHARGE_USD` [environment variable](/platform/actors/development/programming-interface/environment-variables), which contains the user's maximum cost.
69+
The Apify SDK's `ChargeResult` respects the user set limit already.
6970

7071
:::
7172

sources/platform/actors/publishing/monetize/pay_per_result.mdx

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,41 @@ sidebar_position: 2
1212
import Tabs from '@theme/Tabs';
1313
import TabItem from '@theme/TabItem';
1414

15+
:::warning Pay per result is deprecated
16+
17+
This pricing model is deprecated and will be removed in 2026. You can migrate to [pay per event with one click](#one-click-migration-to-ppe), and the migration is backward compatible.
18+
19+
:::
20+
1521
In this model, you set a price per 1,000 results. Users are charged based on the number of results your Actor produces and stores in the run's default dataset. Your profit is calculated as 80% of the revenue minus platform usage costs.
1622

17-
The details on how your cost is computed can be found in [Example of a PPR pricing model](#example-of-a-ppr-pricing-model).
23+
The details on how your cost is computed can be found in [Example of a PPR pricing model](#example-of-ppr-pricing).
24+
25+
## One click migration to PPE
26+
27+
Select your PPR Actor, go to the **Publication** tab, open the **Monetization** section, and click the **Migrate to pay per event** button.
28+
29+
![Migration button](../images/ppr-to-ppe-migration-button.png)
30+
31+
### Why should I migrate
32+
33+
The pay per event pricing model offers superior flexibility in charging not only for the results but also for any event.
34+
This helps you to pass on the costs of external APIs or additional processing directly to your users, price different functionalities of your Actor differently, avoid revenue loss from small but usage-heavy runs, and more.
35+
36+
37+
Given that the pay per event model is fully compatible with pay per result, and to bring more simplicity to users of your Actors, we are fully deprecating PPR in favor of PPE.
38+
The migration is completely automatic and fully backward compatible.
39+
40+
### What happens during migration
41+
42+
The migration switches your pricing model from pay per result to pay per event. Your price per 1,000 results is automatically converted to an equivalent `apify-default-dataset-item` [event](./pay-per-event#use-synthetic-default-dataset-item-event-apify-default-dataset-item) price.
43+
This change does not count towards the pricing change limits that you are allowed to do once every 30 days.
44+
45+
**Code changes:** No changes to your Actor code are required if it already respects the `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable (the price limit set by users).
46+
47+
**After migration:** With [pay per event](./pay-per-event), you can define additional custom events beyond dataset items.
48+
49+
**Respecting user spending limits:** You can continue using the `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable to respect user-specified price limits.
1850

1951
## How is profit computed
2052

@@ -35,7 +67,7 @@ PPR charges based on the number of results produced. PPE lets you define pricing
3567

3668
:::info Learn more about PPE
3769

38-
If you want to learn more about PPE, refer to the [Pay per event](/platform/actors/publishing/monetize/pay-per-event) section.
70+
If you want to learn more about PPE, refer to the [pay per event](/platform/actors/publishing/monetize/pay-per-event) section.
3971

4072
:::
4173

sources/platform/actors/publishing/quality_score.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,14 @@ The Actor quality score recalculates several times per day. Changes you make to
2929

3030
Your quality score may change even without you modifying your Actor. This happens for two reasons: First, your score is influenced by how well your Actor performs relative to other Actors on the platform. As other Actors improve or decline, your relative position may shift. Second, the quality score algorithm continues to evolve with new properties being added and adjustments to existing calculations.
3131

32-
There are seven quality categories:
32+
These are the quality categories:
3333

3434
- Reliability
3535
- Popularity
3636
- Feedback and community
3737
- Ease of use
3838
- Pricing transparency
39+
- Trustworthiness
3940
- History of success
4041
- Congruency of texts
4142

0 commit comments

Comments
 (0)