Recipe · Affiliate marketing and media buying

Landing page check

Loads each of this profile's rows in the Landing pages dataset through that profile's own proxy, so the page renders the way a visitor in that market sees it, and records where the load finished plus a verdict: ok, redirected, blocked by a challenge or a geo refusal, or an error. Every row keeps a full-page screenshot.

On this page

What it does

Loads each landing page through this profile's own proxy, so the page renders the way a visitor in that market sees it. Keeps a full-page shot.

It runs against one profile, through that profile's own proxy and with its own cookies — so the pages load the way that account's owner would see them. It navigates, so give it a profile whose session you are happy to have in use.

One profileIts own proxy and cookiesThe Landing pages table

The 11 steps

The real tree, read out of the pack the launcher ships. Indentation is nesting: the steps under a loop run once per row, and the ones under a branch run only when the condition above them holds. Every {{…}} is a value filled in at run time — from the row being walked, from a setting on the run, or from the profile itself.

loadRowsLoad this profile's landing pagesLoad Landing pages into rows
evaluateStamp the checkRun script
loopEach landing pageLoop forEach

Each time

setVarStart this row with no destinationSet landed_url
setVarStart this row as an errorSet verdict
gotoOpen the landing pageGo to {{loop.item.url}}on failure: continue
waitWait
evaluateWhere did it land?Run scripton failure: continue
evaluateRead the pageRun scripton failure: continue
saveRowsFile the destination and the verdictSave to Landing pageson failure: continue
screenshotScreenshoton failure: continue

Each of those is one of the step types on the automation reference, with the same fields the editor shows and the same fields an agent is handed over the local API.

The tables it uses

These load with the recipe. A dataset is a typed table your workspace owns — the columns are named and typed up front so the steps can address them, and every one of them is yours to rename, extend or fill from a file afterwards.

Landing pages

readswrites

The pages your ads point at, checked from a profile whose proxy sits in the market they are meant for.

url
URL · url
name
Name · text
geo
Geo · text
profile
Profile · profile
final_url
Landed on · text
status
Status · select · Unchecked | OK | Redirected | Blocked | Error
checked_at
Checked at · datetime
notes
Notes · longText

Re-running updates the row it already wrote rather than adding a second one. That is what the match column in the save step is for, and it is the difference between a status check and a table that doubles in size every pass.

Loading it

In the launcher, open Automations, choose Load a starter pack, and pick Affiliate marketing and media buying. Untick anything you do not want. The tables land first, then the workflows, then a project called Media Buying Ops that links them together.

What arrives is an ordinary automation row. Open it in the editor, change a step, rename it, delete it — nothing in the app treats it as special afterwards, and loading the pack a second time makes a fresh copy rather than overwriting the one you edited. Tables are the opposite: an existing table of the same name is reused and keeps its rows.