Audit an Amazon seller's organic and sponsored search visibility by combining DataDoe search-term data, live Amazon search results, owned-ASIN matching, screenshots, and a reusable dashboard report. Use when asked to run an Amazon ASIN/search visibility audit for a specific DataDoe seller.
Total top 5 search terms by child_asin_purchase_count from the last 60 days.
Add all other available metrics to the data.
Download the report to file using exports_raw_url_get method.
It is ok if there is less than 60 days of data.
Write coreSearchSummaries.json with normalized fields matching references/dashboard.md.
Return only the top terms + totals.
Prepare a list of unique search terms that appeared in the data.
Open Amazon website for the seller's marketplace in the built-in browser:
Always use web browser cards that are visible to the user, so the user can follow your actions.
If prompted: Accept cookies usage.
Change the Deliver to to a valid postal code from the capital of the marketplace country.
Change the language of the page and currency to the ones local to the marketplace.
Search for each unique search term and collect all ASINs with their organic/paid search ranks:
To search, enter a URL matching this pattern: https://AMAZON_DOMAIN/s?k=SEARCH_TERM_URL_ENCODED.
Use this command to URL encode: node -e "console.log(encodeURIComponent('SEARCH_TERM'))".
Before collecting the data, make sure that Deliver to, language, and currency are properly set.
Take a screenshot of the top of each results page in the built-in browser and save it in search_rasults/screenshots/st-SEARCH_TERM.png.
Sponsored results are marked as sponsored. If a result is sponsored it is not organic (single ASIN cannot be both).
For each of the search terms prepare a JSON file named search_rasults/st-SEARCH_TERM.json with the following content:
json
1 {
2"searchTerm": "SEARCH_TERM",
3"amazonMarketplace": "AMAZON_DOMAIN",
4"checkedAt": "CURRENT_DATE",
5"screenshotLocation": "run-root-relative path to the screenshot",
6"organicRanks": [
7 {
8"asin": "ASIN",
9"organicRank": rank as int,
10"price_value": price as float 00.00,
11"price_currency": "CURRENCY_CODE",
12"asin_name": "NAME_OF_THE_ASIN (exact as displayed in search results)",
13"asin_rating" reviews rating as float 0.0 or null if not given in the result tile
14"asin_image_url": "LINK_TO_THE_ITEM_IMAGE",
15"asin_url": "LINK_TO_THE_ITEM (exact URL as the user would click it)",
16"my_listing": null17 }
18 ],
19"ppcRanks": [
20 {
21"asin": "ASIN",
22"ppcRank": rank as int,
23"price_value": price as float 00.00,
24"price_currency": "CURRENCY_CODE",
25"asin_image_url": "LINK_TO_THE_ITEM_IMAGE",
26"asin_url": "LINK_TO_THE_ITEM",
27"my_listing": null28 }
29 ]
30 }
(Spawn a subagent for this step) Extract unique ASINs from all results for each search term using scripts/list-asins.js.
(Spawn a subagent for this step) Fetch active listings for the seller using DataDoe and save it to CSV (include only ASINs):
Source: amazon_listings_with_cogs.
Paginate if the seller has more listings than the Export limit.
(Spawn a subagent for these steps) Run the file-based post-processor for the step 11 ASIN list, step 12 listings export, and the dashboard build:
Mark my listings in JSONs using scripts/mark-my-listings.js.
Generate report-data.json.
Render report.html.
Run contract checks.
Return only summary stats + paths.
That's all. Open the report page for the user.
If the user asks for analysis / optimization / audit / etc. of a specific ASIN, then follow references/asin-visibility-auditor.md directly with the ASIN, the marketplace domain to use, and the location of your run data. Never run this task in a sub-agent.
Glossary
ASIN:
An ASIN (Amazon Standard Identification Number) is a unique 10-character code Amazon uses to identify and manage products in its marketplace.