-
Notifications
You must be signed in to change notification settings - Fork 202
docs: Add Actor task publication guide #2582
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
Merged
Merged
Changes from all commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
f6b0e73
docs: kicked off the Actor task publication guide
jbartadev 99a3701
docs: another iteration on Actor task publication guide
jbartadev 802e6cd
fix: add missing blank line after Next steps heading
jbartadev 177cf3c
fix: broken link to tasks page in publish-task guide
jbartadev 20998b2
fix: style guide violations in publish-task guide
jbartadev 8a5bf6a
Merge branch 'master' into docs/publish-task-guide
jbartadev bb5ee04
docs: address PR review feedback on publish-task guide
jbartadev 56a55a3
Merge branch 'master' into docs/publish-task-guide
jbartadev a88e2e3
Apply suggestions from code review
jbartadev 82a1c12
Update sources/platform/actors/publishing/publish-task.mdx
jbartadev ae4f254
Merge branch 'master' into docs/publish-task-guide
jbartadev File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Binary file added
BIN
+162 KB
sources/platform/actors/publishing/images/public-tasks/actor-examples-tab.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+42.7 KB
sources/platform/actors/publishing/images/public-tasks/task-dataset-schema.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+114 KB
...es/platform/actors/publishing/images/public-tasks/task-display-information.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+51.2 KB
sources/platform/actors/publishing/images/public-tasks/task-input-section.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+128 KB
sources/platform/actors/publishing/images/public-tasks/task-landing-page.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+54.7 KB
sources/platform/actors/publishing/images/public-tasks/task-publication-tab.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,161 @@ | ||
| --- | ||
| title: Publish your Actor task | ||
| description: Publish a saved Actor task as a public use-case landing page on Apify Store by completing the display information, input, and dataset schema sections. | ||
| slug: /actors/publishing/publish-task | ||
| sidebar_position: 2 | ||
| --- | ||
|
|
||
| [Actor tasks](/platform/actors/running/tasks) are shareable, pre-configured inputs for your Actors. [Publishing a task](#publish-your-tasks) creates a public landing page that shows what the Actor does, what inputs it uses, and what output to expect. Public tasks also appear in your Actor's **Examples** tab, which helps users discover your Actor through search engines and AI agents. For monetized Actors, this can lead to more page views, more runs, and more revenue. | ||
|
|
||
| This guide walks you through the publication process on the **Publication** tab and the steps to make a task public. | ||
|
|
||
| ## Prerequisites | ||
|
|
||
| Before you publish a task, make sure you have: | ||
|
|
||
| - A [published Actor](./publish.mdx) that you own or maintain. | ||
| - A [saved task](/platform/actors/running/tasks) with a complete input configuration. | ||
| - An [input schema](/platform/actors/development/actor-definition/input-schema) and at least one [dataset schema view](/platform/actors/development/actor-definition/dataset-schema) defined on the Actor. | ||
|
|
||
| ## What tasks to publish | ||
|
|
||
| Focus on tasks that represent a real use case someone would search for and that show your Actor solving a specific problem. Not every saved task needs a public landing page. | ||
|
|
||
| ### Focus on a real use case | ||
|
|
||
| The best tasks aim to solve a problem a user actually has. Instead of publishing a generic "default configuration" task, publish one that answers a question someone might type into a search engine or AI agent. | ||
|
|
||
| For example, if you maintain Google Maps, Amazon, and Yahoo scraper Actors: | ||
|
|
||
| | ❌ Weak task | ✅ Strong task | | ||
| | --- | --- | | ||
| | Google Maps - default config | Find dentists in San Francisco with reviews | | ||
| | Test run 2 | Extract restaurant emails for local marketing | | ||
| | All fields enabled | Compare gym ratings across New York boroughs | | ||
| | Amazon default | Monitor Amazon product prices and reviews for market research | | ||
| | Yahoo Finance test | Track stock prices and news on Yahoo Finance | | ||
|
|
||
| Each strong task focuses on a specific industry, location, or workflow. A user searching for "dentist data San Francisco" is far more likely to land on a page with that exact framing. | ||
|
|
||
| ### Target search traffic and AI discovery | ||
|
|
||
| Each landing page is indexed by search engines and includes a markdown (`.md`) version that AI agents can access directly, making your task discoverable through AI-powered search and AI assistants. | ||
|
|
||
| Think of each task as a keyword-targeted landing page: | ||
|
|
||
| - Location-specific tasks: "Scrape real estate listings in Austin" rather than "Scrape real estate listings" | ||
| - Industry-specific tasks: "Monitor competitor pricing for electronics" rather than "Monitor competitor pricing" | ||
| - Workflow-specific tasks: "Export LinkedIn company data to Google Sheets" rather than "Export LinkedIn data" | ||
|
|
||
| The more specific the task, the less competition it has in search results and the more relevant it is to the person who finds it. | ||
|
|
||
| :::info Show the range of your Actor | ||
|
|
||
| If your Actor supports multiple use cases, publish a task for each one. A web scraping Actor might have tasks for lead generation, price monitoring, and content aggregation. Each task demonstrates a different capability and attracts a different audience. | ||
|
|
||
| ::: | ||
|
|
||
| ## Publish your tasks | ||
|
|
||
| Once your task runs reliably and produces the output you want users to see, publish it from Apify Console. | ||
|
|
||
| 1. From your task's page in Apify Console, open the **Publication** tab. | ||
| 1. Complete the three sections: [Display information](#display-information), [Input](#input), and [Dataset schema](#dataset-schema). | ||
| 1. Click **Publish task**. | ||
|
|
||
|  | ||
|
|
||
| ### Display information | ||
|
|
||
| This section controls how your task appears on the public task landing page and in search results. | ||
|
|
||
| There are three fields in this section: | ||
|
|
||
| - **Slug:** the URL-friendly name used in the task's landing page URL. | ||
| - **SEO task title:** shown as the heading on the landing page and as the page title in search results. | ||
| - **SEO description:** appears under the title on the landing page and as the meta description in search results. | ||
|
|
||
| You can live preview how the fields propagate on the right (they update as you type): | ||
|
|
||
| - **Page Preview:** how the landing page will look to visitors. | ||
| - **SERP Preview:** how the page will appear in search engine results pages (SERPs). | ||
|
|
||
|  | ||
|
|
||
| :::tip Title format | ||
|
|
||
| Frame the title as the user's goal, not as a description of the Actor's mechanics. A good title combines an action, a target, and a qualifier. | ||
|
|
||
| Good examples: | ||
|
|
||
| - Track competitors' store locations | ||
| - Get a local B2B leads list | ||
| - Verify business emails from Google Maps | ||
|
|
||
| Avoid titles like "Google Maps scraper - task 3" or "Test task" that describe the Actor instead of the user's goal. | ||
|
|
||
| ::: | ||
|
|
||
| ### Input | ||
|
|
||
| The Input section controls which fields from your task's input configuration appear on the public landing page. By default, every field defined in your task input is selected. Deselect any field that is not relevant to the task's use case. | ||
|
|
||
| This control affects display only. The task itself always runs with the full input configuration, regardless of which fields are selected here. | ||
|
|
||
|  | ||
|
|
||
| Use this section to: | ||
|
|
||
| - Show only the fields that demonstrate how the task is configured for its specific use case. | ||
| - Hide configuration fields that are not relevant to the task and would confuse first-time users. | ||
|
|
||
| :::info Secret fields are protected automatically | ||
|
|
||
| All input fields with `"isSecret": true` in the Actor's [input schema](/platform/actors/development/actor-definition/input-schema) are automatically masked and never shown on the landing page. Before publishing, confirm sensitive fields are marked as secret. | ||
|
|
||
| ::: | ||
|
|
||
| ### Dataset schema | ||
|
|
||
| The Dataset schema section selects which view of the Actor's dataset is rendered on the landing page. Each view organizes the output fields differently. Pick the one that best matches the task's use case. | ||
|
|
||
|  | ||
|
|
||
| For more on configuring views, see [Dataset schema](/platform/actors/development/actor-definition/dataset-schema). | ||
|
jbartadev marked this conversation as resolved.
|
||
|
|
||
| ## Task landing page | ||
|
|
||
| Each published task gets its own standalone landing page on the [Apify website](https://apify.com). This page is publicly accessible, indexed by search engines, and readable by AI agents. Published tasks also appear in the **Examples** tab of the Actor's detail page, linking visitors directly to the landing page. | ||
|
|
||
|  | ||
|
|
||
| ### URL structure | ||
|
|
||
| The landing page URL is built from your username, Actor name, and task name. For example: | ||
|
|
||
| ```text | ||
| https://apify.com/john/google-maps-scraper/examples/find-dentists-san-francisco | ||
| ``` | ||
|
|
||
| Keep the task name short, descriptive, and focused on the use case keyword. | ||
|
|
||
| ### Landing page content | ||
|
|
||
|  | ||
|
|
||
| The landing page displays the information you configured in the [Display information](#display-information), [Input](#input), and [Dataset schema](#dataset-schema) sections: | ||
|
|
||
| - The **SEO task title** and **SEO description** at the top of the page. | ||
| - The selected **input fields** with their configured values, so visitors can see exactly how the task is set up. | ||
| - A preview of the **Dataset schema fields** based on the dataset view you selected. | ||
| - A call-to-action button that lets visitors try the task immediately. | ||
| - Generic sections explaining how Apify works and how to integrate it. | ||
|
|
||
| ### What happens when a visitor tries the task | ||
|
|
||
| When a visitor clicks the call-to-action button, Apify creates a new task under their account with the same input configuration. The visitor gets their own independent copy. They can modify, run, and manage it without affecting your original task. You don't need to worry about other users consuming your resources or altering your configuration. | ||
|
|
||
| ## Next steps | ||
|
|
||
| - Set up [monetization](./monetize/index.mdx) for your Actor. | ||
| - Track quality with the [Actor quality score](./quality_score.mdx). | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.