Skip to content

Commit 3d82806

Browse files
authored
Merge pull request #457 from apify/academy-content-migration-publishing-actors
academy/content-migration
2 parents 9a1818b + d7e507f commit 3d82806

File tree

15 files changed

+612
-6506
lines changed

15 files changed

+612
-6506
lines changed
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
---
2+
title: Actor README
3+
description: Learn how to write a comprehensive README to help users better navigate, understand and run the actor.
4+
menuWeight: 2
5+
paths:
6+
- apify-platform/publishing-actors-on-apify-store/actor-readme
7+
---
8+
9+
## What is the point of this guide?
10+
11+
- It should also be a "template" for developers developing new public actors so that they have a structure and guidance for writing the readmes.
12+
- The goal is to ensure that more people will understand and run their actors.
13+
- Whenever you build an actor, think of the original request/idea and the "use case" = "user need" it should solve, please take notes and share them with Apify, so we can help you write a blog post supporting your actor with more information, more detailed explanation, better SEO.
14+
- Consider adding a video, images, and screenshots to your readme to break up the text.
15+
- This is an example of an actor with a readme that corresponds well to the guidelines below:
16+
- [https://apify.com/dtrungtin/airbnb-scraper](https://apify.com/dtrungtin/airbnb-scraper)
17+
- Tip no.1: if you want to add snippets of code anywhere in your readme, you can use [Carbon](https://github.com/carbon-app/carbon).
18+
- Tip no.2: if you need any quick Markdown guidance, check out [https://www.markdownguide.org/cheat-sheet/](https://www.markdownguide.org/cheat-sheet/)
19+
20+
## What should you add to your actor readme?
21+
22+
Aim for sections 1-6 below and try to include at least 300 words. You can move the sections around to some extent if it makes sense, e.g. 3 might come after 6. Consider using emojis as bullet points or otherwise trying to break up the text.
23+
24+
1. **What does (actor name) do?**
25+
26+
- in 1-2 sentences describe what the actor does and what it does not do
27+
- consider adding keywords like API, e.g. Instagram API
28+
- always have a link to the target website in this section
29+
30+
2. **Why use (actor name)? or Why scrape (target site)?**
31+
32+
- How it can be beneficial for the user
33+
- Business use cases
34+
- Link to a success story, or a business use case, or a blog post.
35+
36+
3. **How much will it cost to scrape (target site)?**
37+
38+
- Simple text explaining what type of proxies are needed and how many platform credits (calculated mainly from consumption units) are needed for 1000 results.
39+
- This is calculated from carrying out several runs (or from runs saved in the DB). @Zuzka can help if needed. [Information in this table](https://docs.google.com/spreadsheets/d/1NOkob1eYqTsRPTVQdltYiLUsIipvSFXswRcWQPtCW9M/edit#gid=1761542436), tab "cost of usage".
40+
- Here’s an example for this section:
41+
42+
> ## How much will it cost me to scrape Google Maps reviews?
43+
>
44+
> <br/> Apify provides you with $5 free usage credits to use every month on the Apify Free plan and you can get up to 100,000 reviews from this Google Maps Reviews Scraper for those credits. So 100k results will be completely free!
45+
> <br/> But if you need to get more data or to get your data regularly you should grab an Apify subscription. We recommend our $49/month Personal plan - you can get up to 1 million Google Maps reviews every month with the $49 monthly plan! Or 10 million with the $499 Team plan - wow!
46+
47+
4. **How to scrape (target site)**
48+
49+
- Link to "How to…" blogs, if one exists (or suggest one if it doesn't)
50+
- Add a video tutorial or gif from an ideal actor run.
51+
- Consider adding a short numbered tutorial as Google will sometimes pick these up as rich snippets. Remember that this might be in search results, so you can repeat the name of the actor and give a link, e.g.
52+
53+
![How to scrape a website - numbered tutorial]({{@asset apify_platform/publishing_actors_on_apify_store/images/how-to-scrape-target-site.webp}})
54+
55+
5. **Is it legal to scrape (target site)?**
56+
57+
- This can be used as boilerplate text for the legal section, but you should use your own judgement and also customize it with the site name.
58+
59+
> Our scrapers are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our scrapers, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. You can also read our blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/)
60+
61+
6. **Input**
62+
63+
- Each actor detail page has an input tab, so you just need to refer to that. If you like, you can add a screenshot showing the user what the input fields will look like.
64+
- This is an example of how to refer to the input tab:
65+
66+
> Twitter Scraper has the following input options. Click on the [input tab](https://apify.com/vdrmota/twitter-scraper/input-schema) for more information.
67+
68+
7. **Output**
69+
70+
- Mention "You can download the dataset extracted by (actor name) in various formats such as JSON, HTML, CSV, or Excel.”
71+
- Add a simplified JSON dataset example, like here: [https://apify.com/drobnikj/crawler-google-places#output-example](https://apify.com/drobnikj/crawler-google-places#output-example)
72+
73+
8. **Tips or Advanced options section**
74+
- Share any tips on how to best run the actor, such as how to limit compute unit usage, get more accurate results, or improve speed.
75+
76+
If you want some general tips on how to make GitHub readmes that stand out, check out these guides. Not everything in there will be suitable for an Apify actor readme, so you should cherry-pick what you like and use your imagination.
77+
78+
[Build a Stunning README For Your GitHub Profile](https://towardsdatascience.com/build-a-stunning-readme-for-your-github-profile-9b80434fe5d7)
79+
80+
[How to Create a Beautiful README for Your GitHub Profile](https://yushi95.medium.com/how-to-create-a-beautiful-readme-for-your-github-profile-36957caa711c)
81+
82+
## [](#next) Next up
83+
84+
If you followed all the tips described above, your actor README should be good to go! In the [next lesson]({{@link apify_platform/publishing_actors_on_apify_store/seo_and_promotion.md}})! we will dive deeper into how you can improve your README's SEO and promote your actor to ensure it reaches as many potential users as possible!

content/academy/apify_platform/publishing_actors_on_apify_store/monetizing_your_actor.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
22
title: Monetizing your actor
33
description: Learn how you can use Apify to monetize your web scraping and automation projects.
4-
menuWeight: 2
4+
menuWeight: 3
55
paths:
6-
- apify-platform/publishing-actors-on-apify-store/monetizing-your-actor
6+
- apify-platform/publishing-actors-on-apify-store/monetizing-your-actor
77
---
88

99
# [](#monetizing-your-actor) Monetizing your actor
@@ -22,7 +22,6 @@ First, go to your actor page, **Actors → My Actors** and click on the actor yo
2222

2323
Our support team will be notified about your request and promptly contact you to discuss the desired price and trial length for your actor, and help you fill in your billing details.
2424

25-
2625
## [](#price-and-trial-length) Price and trial length
2726

2827
**You choose the price and free trial length of your actor.** Apify can give you advice about the best practices of the most successful actors, but at the end of the day, we give developers full control over the pricing strategy of their tools.
Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
---
22
title: Naming your actor
33
description: Apify's standards for actor naming. Learn how to choose the right name for scraping and non-scraping actors and how to optimize your actor for search engines.
4+
menuWeight: 1
45
paths:
5-
# NOTE: IF ADDING A NEW PATH, LEAVE THE OLD ONES FOR REDIRECTS
6+
# NOTE: IF ADDING A NEW PATH, LEAVE THE OLD ONES FOR REDIRECTS
67
- actor/publishing/naming-your-actor
78
- actors/publishing/naming-your-actor
9+
- apify-platform/publishing-actors-on-apify-store/naming-your-actor
810
---
911

1012
# [](#naming-your-actor) Naming your actor
@@ -19,24 +21,23 @@ For actors such as [YouTube Scraper](https://apify.com/bernardo/youtube-scraper)
1921

2022
GOOD:
2123

22-
* Technical name (actor's name in the [Apify Console](https://console.apify.com)): **${domain}-scraper**, e.g. **youtube-scraper**.
23-
* Publication title for the Apify Store: **${Domain} Scraper**, e.g. **YouTube Scraper**.
24-
* Name of the GitHub repository: **actor-${domain}-scraper**, e.g. **actor-youtube-scraper**.
24+
- Technical name (actor's name in the [Apify Console](https://console.apify.com)): **${domain}-scraper**, e.g. **youtube-scraper**.
25+
- Publication title for the Apify Store: **${Domain} Scraper**, e.g. **YouTube Scraper**.
26+
- Name of the GitHub repository: **actor-${domain}-scraper**, e.g. **actor-youtube-scraper**.
2527

2628
AVOID:
2729

28-
* Technical name: **the-scraper-of-${domain}**, e.g. **the-scraper-of-youtube**.
29-
* Publication title: **The Scraper of ${Domain}**, e.g. **The Scraper of YouTube**.
30-
* GitHub repository: **actor-the-scraper-of-${domain}**, e.g. **actor-the-scraper-of-youtube**.
30+
- Technical name: **the-scraper-of-${domain}**, e.g. **the-scraper-of-youtube**.
31+
- Publication title: **The Scraper of ${Domain}**, e.g. **The Scraper of YouTube**.
32+
- GitHub repository: **actor-the-scraper-of-${domain}**, e.g. **actor-the-scraper-of-youtube**.
3133

3234
If your actor only caters to a specific service on a domain (and you don't plan on extending it), add the service to the actor's name.
3335

3436
For example,
3537

36-
* Technical name: **${domain}-${service}-scraper**, e.g. **google-search-scraper**.
37-
* Publication title: **${Domain} ${Service} Scraper**, e.g. [**Google Search Scraper**](https://apify.com/apify/google-search-scraper).
38-
* GitHub repository: **actor-${domain}-${service}-scraper**, e.g. **actor-google-search-scraper**.
39-
38+
- Technical name: **${domain}-${service}-scraper**, e.g. **google-search-scraper**.
39+
- Publication title: **${Domain} ${Service} Scraper**, e.g. [**Google Search Scraper**](https://apify.com/apify/google-search-scraper).
40+
- GitHub repository: **actor-${domain}-${service}-scraper**, e.g. **actor-google-search-scraper**.
4041

4142
## [](#non-scraping-actors) Non-scraping actors
4243

@@ -48,18 +49,22 @@ Below are examples for the [Google Sheets](https://apify.com/lukaskrivka/google-
4849

4950
GOOD:
5051

51-
* Technical name: **google-sheets**.
52-
* Publication title: **Google Sheets Import & Export**.
53-
* GitHub repository: **actor-google-sheets**.
52+
- Technical name: **google-sheets**.
53+
- Publication title: **Google Sheets Import & Export**.
54+
- GitHub repository: **actor-google-sheets**.
5455

5556
AVOID:
5657

57-
* Technical name: **import-to-and-export-from-google-sheets**.
58-
* Publication title: **Actor for Importing to and Exporting from Google Sheets**.
59-
* GitHub repository: **actor-for-import-and-export-google-sheets**.
58+
- Technical name: **import-to-and-export-from-google-sheets**.
59+
- Publication title: **Actor for Importing to and Exporting from Google Sheets**.
60+
- GitHub repository: **actor-for-import-and-export-google-sheets**.
6061

6162
## [](#renaming-your-actor) Renaming your actor
6263

6364
**Warning!** Changing your actor's **technical name** may break current integrations for that actor's users. This is why some actors in the Apify Store don't have consistent naming. For the same reason, it is best to change the actor's name early, before you build a steady user base.
6465

6566
The **publication title**, however, can be changed without any problems.
67+
68+
## [](#next) Next up
69+
70+
Now that your actor is properly named and you know the differences between your actor's technical name and publication title, it's time to take the [next step]({{@link apify_platform/publishing_actors_on_apify_store/actor_readme.md}})! into making your actor public in Apify Store by ensuring that it has a well-structured and comprehensive README.

content/academy/apify_platform/publishing_actors_on_apify_store/publishing_your_actor.md

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
11
---
22
title: Publishing your actor
33
description: Prepare your actor for the Apify Store with a description and README file and learn how to make your actor available to the public.
4-
menuWeight: 1
4+
menuWeight: 4
55
paths:
6-
- apify-platform/publishing-actors-on-apify-store/publishing-your-actor
6+
- apify-platform/publishing-actors-on-apify-store/publishing-your-actor
77
---
88

99
# [](#publishing-actor) Publishing your actor
1010

11-
Before you make your actor public, it is important to write a good **Description** and **README** sections, so that users can understand what your actor does, how to configure its inputs, and what kind of output it returns.
11+
Before you make your actor public, it is important to make sure your actor has good **Description** and **README** sections so that users can understand what your actor does, how to configure its inputs, and what kind of output it returns. In this lesson, we will briefly go over each of the fields you have to fill in before publishing your actor. For more detailed information about [SEO and promotion]({{@link apify_platform/publishing_actors_on_apify_store/seo_and_promotion.md}})! and [how to write a comprehensive README]({{@link apify_platform/publishing_actors_on_apify_store/actor_readme.md}})!, check the previous lessons in this section of the academy.
1212

1313
You can find the Title and description configurations by going to **Apify Console****Actors****My Actors****your-actor****Settings → Publication**
1414

1515
![Actor publication settings]({{@asset apify_platform/publishing_actors_on_apify_store/images/actor-publication-settings.webp}})
1616

17-
Writing a complete and descriptive README can significantly increase your chances of convincing users to give your actors a try. Not only that, but you can also include popular keywords in text to increase the traffic to your actor's page. For more information on how you can **fine-tune your actor’s title, description, and Readme**, check our in-depth [SEO guide](https://docs.apify.com/actors/publishing/seo-and-promotion).
18-
19-
Now, let’s move on to understand exactly how to add a description and README to your Apify actors.
20-
2117
## [](#description) Description
2218

2319
The actor’s description is a short paragraph describing the actor’s purpose. It will be displayed on the actor’s page right below its title.
@@ -30,15 +26,15 @@ While writing your actor’s description you also have the option to write an SE
3026

3127
## [](#readme) README
3228

33-
The next step is to write a **README** detailing the actor’s features, reasons to scrape the targeted website, and an explanation about how to use the actor.
29+
The next step is to include a **README** detailing the actor’s features, reasons to scrape the targeted website, and an explanation about how to use the actor.
3430

35-
Keep in mind that the actor’s README is generated from your README.md file, and you can apply the same [SEO principles](https://docs.apify.com/actors/publishing/seo-and-promotion) throughout the README.
31+
Keep in mind that the actor’s README is generated from your README.md file, and you can apply the same [SEO principles]({{ apify_platform/publishing_actors_on_apify_store/seo_and_promotion.md}})! described in the previous lesson to your README.
3632

37-
To save some time when writing an actor’s README, we recommend using the template below as a starting point:
33+
To save some time when writing an actor’s README, you can use the template below as a starting point:
3834

3935
[https://github.com/zpelechova/readme-template](https://github.com/zpelechova/readme-template)
4036

41-
Note that the complexity of the README should match the actor’s complexity. This means that the template above is not immutable and that you can adapt it to fit the particularities of your actor. You can check our guide, **[How to write great README for your actors](https://help.apify.com/en/articles/2912548-how-to-write-great-readme-for-your-actors)**, for more examples of README files.
37+
Note that the complexity of the README should match the actor’s complexity. This means that the template above is not immutable and that you can adapt it to fit the particularities of your actor.
4238

4339
## [](#make-your-actor-public) Make your actor Public
4440

@@ -78,7 +74,6 @@ Actors that require some sort of authentication will always fail the tests despi
7874

7975
You can easily implement your own tests and customize them to fit your actor's particularities by using our public [Actor Testing](https://apify.com/pocesar/actor-testing) tool available on the Apify store.
8076

81-
8277
## [](#next) Next up
8378

8479
Congratulations! Now, your actor is available to the public in the Apify Store. In the [next lesson]({{@link apify_platform/publishing_actors_on_apify_store/monetizing_your_actor.md}})!, we'll learn how you can monetize your actors to start making money on the Apify platform.

0 commit comments

Comments
 (0)