-
Notifications
You must be signed in to change notification settings - Fork 148
docs: ppr announced as legacy model, ppr to ppe migration #2144
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
Preview for this PR was built for commit |
metalwarrior665
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm but wait for other reviews pls
|
Preview for this PR was built for commit |
|
Preview for this PR was built for commit |
|
Preview for this PR was built for commit |
|
Preview for this PR was built for commit |
mhamas
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general, it looks good to me, pre-approving. Please, consider the comments and have the docs team do the final pass of the text.
|
|
||
| :::warning Legacy pricing model | ||
|
|
||
| Pay per result is a deprecated and will be replaced by Pay per event by the end of January 2026. [Migrate to PPE in one click](#one-click-migration-to-ppe) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Pay per result is a deprecated and will be replaced by Pay per event by the end of January 2026. [Migrate to PPE in one click](#one-click-migration-to-ppe) | |
| Pay per result is deprecated and will be superseded by Pay per event early in 2026. [Migrate to PPE in one click - fully backward compatible](#one-click-migration-to-ppe) |
| Select your PPR Actor, go to the Publication tab, open the Monetization section, and click the `Migrate to Pay per event` button. | ||
|
|
||
|  | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| ### Why should I migrate? | |
| The pay-per-event pricing model offers superior flexibility in charging not only for the results but also for any event. 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. | |
| 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 favour of PPE. But no worries, the migration is completely automatic and fully backward compatible. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🙌
|
|
||
| ### What happens during migration | ||
|
|
||
| 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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| 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. | |
| 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. This change does not count towards the pricing change limits that you are allowed to do once every 30 days. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking of adding this exact line but then I removed it.
It's back in now :]
|
|
||
| **After migration:** With Pay per event, you can define additional custom events beyond dataset items. See [PPE best practices](./pay-per-event#best-practices-for-ppe-actors) for guidance. | ||
|
|
||
| **Respecting user spending limits:** You can continue using the `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable to respect user-specified price limits. However, we recommend using the Apify SDK's built-in methods, which automatically handle spending limits for you. [Learn more](./pay-per-event#respect-user-spending-limits) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggestion: Please, do not add the part about using Apify SDK's built-in methods, because it's currently broken for synthetic events: apify/apify-sdk-js#528
I'd just add that if they decide to add any more events in the future, they should read all pay-per-event docs.
| **Respecting user spending limits:** You can continue using the `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable to respect user-specified price limits. However, we recommend using the Apify SDK's built-in methods, which automatically handle spending limits for you. [Learn more](./pay-per-event#respect-user-spending-limits) | |
| **Respecting user spending limits:** You can continue using the `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable to respect user-specified price limits. If you decide to add more events in the future, please read our Pay per event documentation [link]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I actually removed this all together because two lines above I talk about additional events so I just referenced the PPE documentation there.
|
Preview for this PR was built for commit |
|
Preview for this PR was built for commit |
|
|
||
| **Respecting user spending limits:** You can continue using the `ACTOR_MAX_PAID_DATASET_ITEMS` environment variable to respect user-specified price limits. | ||
|
|
||
| Bleu sky and flying high free as a bird |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is this? Is this some sort of Lorem Ipsum?
|
|
||
| ## One click migration to PPE | ||
|
|
||
| Select your PPR Actor, go to the Publication tab, open the Monetization section, and click the `Migrate to Pay per event` button. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Select your PPR Actor, go to the Publication tab, open the Monetization section, and click the `Migrate to Pay per event` button. | |
| Select your PPR Actor, go to the **Publication** tab, open the **Monetization** section, and click the **Migrate to Pay per event** button. |
|
|
||
| ### Why should I migrate? | ||
|
|
||
| The Pay per event pricing model offers superior flexibility in charging not only for the results but also for any event. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| The Pay per event pricing model offers superior flexibility in charging not only for the results but also for any event. | |
| The pay per event pricing model offers superior flexibility in charging not only for the results but also for any event. |
You can also use italics to highlight: price per event model offers...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is valid for the entire PR, there's several locations where capital P is used unnecessarily
|
|
||
|  | ||
|
|
||
| ### Why should I migrate? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| ### Why should I migrate? | |
| ### Why should I migrate |
|
|
||
| **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). | ||
|
|
||
| **After migration:** With Pay per event, you can define additional custom events beyond dataset items. [Learn more](./pay-per-event) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| **After migration:** With Pay per event, you can define additional custom events beyond dataset items. [Learn more](./pay-per-event) | |
| **After migration:** With [pay per event](./pay-per-event), you can define additional custom events beyond dataset items. |
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.
Note
Marks PPR as a legacy model with a one-click migration to PPE; clarifies PPE spending-limit behavior and updates quality score categories.
sources/platform/actors/publishing/monetize/pay_per_result.mdx:sources/platform/actors/publishing/monetize/pay_per_event.mdx:eventChargeLimitReacheddescription to reflect user-set limit behavior.ChargeResultalready respectsACTOR_MAX_TOTAL_CHARGE_USD.sources/platform/actors/publishing/quality_score.mdx:Written by Cursor Bugbot for commit e396273. Configure here.