Rightmove Scraper · Apify
With all due respect to industry standards but in pay per event model, we are charging per event. My event itself says that I will bill 2 USD per 1K records. While setting cost in Apify, I mentioned 2 USD only for thet event!
How come Apify displaying this as 2000 USD per 1K records!
This is freaking out customers! I have raised concern in Apify support since more than a week. I started saying to contact Apify support now to end customers as there is clearing nothing I can do about it as developer.
This pricing is wrongly displayed on public pages and inside Apify dashboard top bar
Please check : https://apify.com/dhrumil/rightmove-scraper
Apify
Rightmove Scraper · Apify
Scrape rightmove.co.uk to crawl millions of sale/rent real estate properties from United Kingdom. Our real estate scraper also lets you monitor specific...
29 Replies
@ellativity Nice to meet you!
Please take a look at pricing set in back-end. It's correct and existing customers are charged correctly
Hi, moving this conversation into a thread so we can track it
It's just Apify is displaying this price wrongly to customers
I see you have per-event pricing set up. Can you share the part of your code with me where you define the events?
I am not asking to change pricing. I am reporting potention display bug in platform.
the price you set in console is per event not per thousand.
I am looking at your pricing and I can see that the way it's set up inside your Console is causing the pricing to be displayed the way it is
Correct. It's per event
Apify asks you to set up a cost per event, so we then multiply that cost by 1000 to provide your customers with a price per 1000 events. This is industry standard. You don't need to multiply by 1000 yourself as we automate that
In simple terms,
If I say x event will cost you 2 USD, why x event is displayed as 2000 USD as price to customer
You should have your events as individual events in your code, you don't need to package 1000 results into an event as we will calculate the number of results that are produced by a run and then bill your customer according to the number of results and the per-1000 price you've set
Ok. Trying to understand your point
I think it's complicated because you're trying to create tiered pricing yourself. Apify already has a way to set up tiered pricing that reflects the Apify plan a customer has subscribed to (see: https://docs.apify.com/platform/actors/publishing/monetize#how-to-attract-larger-customers-of-ppe-and-ppr-actors)
Monetize your Actor | Platform | Apify Documentation
Learn how you can monetize your web scraping and automation projects by publishing Actors to users in Apify Store.
Yes, I have created my own tiers
It's more appealing to customers + can be adjusted based on specific actor
We have simplified it as much as possible for both developers and customers, so you have a per-event charge. You can decide whether it's for all users or whether you want to introduce discounts for higher volume customers. Either way, you just give Apify the per-event price and when the Actor is run, we will bill your customer for the results they have received according to the price you've set and the tiers you have set
We have found that what is more appealing to customers is having a standardized pricing model that they can understand once and then apply to different Actors
Most customers don't want to have to understand multiple pricing models to use multiple Actors or to compare the prices of two or more Actors offering the same service
In that case, I have to change the code to raise the event for every dataset push rather than every 1K
Yes you need to have every billable result set as an event.
I will do it.
Just a thought
Is this really thoughtful decision ? I mean imagine I am billing 0.0006 USD per event which covers dataset charge for sure + ralative compute as well.
For raising charge event for 0.0006 USD in Apify, Are we doing enough math around it that cost of billing that amount doesn't exceeds the amount itself! 😅
That's a good question! I haven't done the math myself, but hopefully the people who have done it know what they're doing!
Anyways, thanks for expalining this
I have to change many of my actors for this
I mean, hopefully this makes it easier for customers to run your Actor too, as they have a clear picture of the pricing. Please let me know if you get any customer feedback/reviews. I'd love to hear how it goes for you.
Would it be possible to change the pricing immediately for these cases via support ?
Apparently I am not changing what get billed to customer. I am just changing code and want to set event pricing 1000x lower of what they are right now.
@Dhrumil just advanced to level 3! Thanks for your contributions! 🎉
Yep, I will be happy to make those changes for you once you know what the event names are and how much you want to charge for them. You can share them in DM if you want to as well.
I have been discussingthis with @Lukas Krivka on another thread as well. But just so that you know as feedback. Currently syncing code with publishing date of pricing is very difficult part. Specifically while you have so many actors to maintain.
It's like you have to catch the train in exact that moment.
I would appriciate if Apify team can think of some more streamlined way of doing this for PPE actors.
I am convinced that PPE is the future. Just want to make sure future is easy to deal with 😀
I believe there are some updates to come for the pricing change issue, but all this feedback is super valuable to us so thank you for sharing with Lukaš and now with me. We need to hear from devs with a lot of Actors, because you're dealing with our UI at scale so any friction gets multipled. Thanks for taking the time to let us know what you're dealing with!
@Dhrumil Well, we had a discussion that there could be a feature for an automatic build switch when pricing changes. But I was opposed to that, I think it is generally better if you make the Actor work in both old and new pricing systems and eventually you remove the old code. This way you can prepare the new code upfront and merge it to latest build and keep testing both modes.
@Lukas Krivka Actually your point also makes sense. We can't pin point the build even. Let's say if I am changing code and setting up some build number to go live with new events, there are still 14 days to go.
In 14 days, world can change a lot. There can be many updates to scraper itself in 14 days which we have to do sync with 2 parallel versions. Certainly not a good idea.
In such situation, I would tend to agree with you that we can have two set of events deployed and eventually remove one set of events.
That's the best option I can also think of at the moment. However, I have one question, what will be the chargeResult in case of raising event which is not registered with Apify ?
I am asking this because right now I have coded actors to stop immediately when chargeResult says charge failed. Is there any indicator/documentation which explains how to identify failed charge vs ignored charge ?
This helps to identify that charge was ignored and I don't need to exit the actor when two set of events are there in code for those 14 days of period.
You can check with
Actor.getChargingManager().getPricingInfo().perEventPrices['my-event']
before calling charge
Also I think if the event doesn't exist, it will not return eventChargeLimitReached
but I'm not 100% sure, you can check the source code https://github.com/apify/apify-sdk-js/blob/315d2eb1e575120a28f6384a19f580ee91d5d29f/packages/apify/src/charging.ts#L237GitHub
apify-sdk-js/packages/apify/src/charging.ts at 315d2eb1e575120a28f6...
Apify SDK monorepo. Contribute to apify/apify-sdk-js development by creating an account on GitHub.