diff --git a/sources/platform/actors/publishing/monetize.mdx b/sources/platform/actors/publishing/monetize.mdx index 8e311a65f3..2bc69efa8d 100644 --- a/sources/platform/actors/publishing/monetize.mdx +++ b/sources/platform/actors/publishing/monetize.mdx @@ -12,7 +12,7 @@ sidebar_position: 2 import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Apify Store allows you to monetize your web scraping and automation projects by publishing them as Paid Actors. This guide explains the available pricing models and how to get started. +Apify Store allows you to monetize your web scraping and automation projects by publishing them as paid Actors. This guide explains the available pricing models and how to get started. ## Pricing models @@ -32,9 +32,9 @@ With the rental model, you can specify a free trial period and a monthly rental You make your Actor rental with 7-day free trial and then $30/month. During the first calendar month, three users start to use your Actor: -1. First user, on the Apify paid plan, starts the free trial on 15th -1. Second user, on the Apify paid plan, starts the free trial on 25th -1. Third user, on the Apify free plan, start the free trial on 20th +1. First user, on the Apify paid plan, starts the free trial on the 15th +1. Second user, on the Apify paid plan, starts the free trial on the 25th +1. Third user, on the Apify free plan, starts the free trial on the 20th The first user pays their first rent 7 days after the free trial, i.e., on the 22nd of the month. The second user only starts paying the rent next month. The third user is on the Apify free plan, so after the free trial ends on the 27th of the month, they are not charged and cannot use the Actor further until they get a paid plan. Your profit is computed only from the first user. They were charged $30, so 80% of this goes to you, i.e., _0.8 * 30 = $24_. @@ -69,7 +69,7 @@ Read more about Actors on Apify Store and different pricing models from the pers
Example - pay-per-result pricing model -You make your Actor pay-per-result and set the price to be $1/1,000 results. During the first month, two users on Apify paid plans use your Actor to get 50,000 and 20,000 results, costing them $50 and $20, respectively. Let's say the underlying platform usage for the first user is $5 and for the second $2. Third user, this time on Apify free plan, uses the Actor to get 5,000 results, with underlying platform usage of $0.5. +You make your Actor pay-per-result and set the price to be $1/1,000 results. During the first month, two users on Apify paid plans use your Actor to get 50,000 and 20,000 results, costing them $50 and $20, respectively. Let's say the underlying platform usage for the first user is $5 and for the second $2. A third user, this time on an Apify free plan, uses the Actor to get 5,000 results, with underlying platform usage of $0.5. Your profit is computed only from the first two users, since they are on Apify paid plans. The revenue for the first user is $50 and for the second $20, i.e., total revenue is $70. The total underlying cost is _$5 + $2 = $7_. Since your profit is 80% of the revenue minus the cost, it would be _0.8 * 70 - 7 = $49_.
@@ -84,9 +84,9 @@ To ensure profitable operation: ### Pay-per-event pricing model -The pay-per-event pricing model offers a flexible monetization option for Actors on Apify Store. Unlike the pay-per-result, PPE allows you to charge users based on specific events triggered programmatically by your Actor's code. +The pay-per-event pricing model offers a flexible monetization option for Actors on Apify Store. Unlike pay per result, PPE allows you to charge users based on specific events triggered programmatically by your Actor's code. -#### PPE vs PPR +#### PPE vs. PPR Unlike PPR, which charges based on the number of results produced, PPE lets you define pricing for individual events. You can charge for specific events directly from your Actor by calling the PPE charging API. Common events include Actor start, dataset item creation, and external API calls. @@ -101,7 +101,7 @@ Your profit is calculated as follows: where: - _Revenue_: The amount charged for events via the PPE [API](/api/v2/post-charge-run) or through [JS](/sdk/js/reference/class/Actor#charge)/[Python](/sdk/python/reference/class/Actor#charge) SDK. You receive 80% of this revenue. -- _Platform costs_: The underlying platform usage costs for running the Actor, calculated using the same unit pricing as PPR. +- _Platform costs_: The underlying platform usage costs for running the Actor, are calculated using the same unit pricing as PPR. Only paid user activity is included in profit calculations. @@ -111,10 +111,10 @@ Only paid user activity is included in profit calculations. 1. _Define clear events_: break your Actor's functionality into measurable, chargeable events. 1. _Common use cases_: 1. _For scraping_: combine Actor start and dataset items pricing to reflect setup and per-result cost. - 1. _Beyond scraping_: Account for intergrations with external systems or external API calls. + 1. _Beyond scraping_: Account for integrations with external systems or external API calls. 1. _External API costs_: Account for additional processing costs. 1. _Test your pricing_: Run your Actor and analyze cost-effectiveness using a special dataset. -1. _Communicate value_: Ensure pricing reflects the value provided and is competetive. +1. _Communicate value_: Ensure pricing reflects the value provided and is competitive. #### Best practices for PPE Actors @@ -122,10 +122,10 @@ Only paid user activity is included in profit calculations. - Avoid duplicate charges by not calling the start Actor event during migration. - Ensure users are not charged beyond their set maximum. The [`ChargingManager`](https://github.com/metalwarrior665/actor-charge-manager-poc) or our SDKs ([JS](/sdk/js/reference/class/ChargingManager) and [Python](/sdk/python/reference/class/ChargingManager)) can handle this logic. - Use idempotency keys in API calls to prevent double charges. -- Try to limit the number of evernt. Fewer events makes it easier for users to understand your pricing. -- Try to make your event have tangible artifacts that users can see and understand (this might be not possible when using external APIs) i.e: +- Try to limit the number of events. Fewer events make it easier for users to understand your pricing. +- Try to make your event have tangible artifacts that users can see and understand (this might not be possible when using external APIs) i.e: - Get a record - - Save it to dataset + - Save it to a dataset - etc. :::note `ChargingManager` usage @@ -138,7 +138,7 @@ You can also choose not to use it, but then you must handle API integration and ## Setting up monetization -Navigate to your [Actor page](https://console.apify.com/actors?tab=my) in Apify Console, choose Actor that you want to monetize, and select the Publication tab. +Navigate to your [Actor page](https://console.apify.com/actors?tab=my) in Apify Console, choose the Actor that you want to monetize, and select the Publication tab. ![Monetization section](./images/monetization-section.png) Open the Monetization section and complete your billing and payment details. ![Set up monetization](./images/monetize_actor_set_up_monetization.png) @@ -159,7 +159,7 @@ Follow the monetization wizard to configure your pricing model. ## Changing monetization -You can change the monetization setting of your Actor by using the same wizard as for the setup in the **Monetization** section of your Actor's **Publication** tab. Any changes made to an already published Actor will take _14 days_ to come in effect, so that the users of your Actor have time to prepare. +You can change the monetization setting of your Actor by using the same wizard as for the setup in the **Monetization** section of your Actor's **Publication** tab. Any changes made to an already published Actor will take _14 days_ to come into effect, so that the users of your Actor have time to prepare. :::important Frequency of monetization adjustments