ImprovedAIBilling

    Aiter gets into sites that used to turn it away

    Research now works past bot protection, retries a dropped run on its own, and takes a credit only when a brief actually arrives in front of you.

    A campaign came back completely empty last week, with nothing on screen to say why. Chasing that one down turned up three separate problems on the path a difficult website takes through Aiter, and this note is all three of them closed.

    Sites that used to turn us away

    Plenty of large brands run bot protection that blocks anything arriving from a data centre, which is exactly what our scan looked like. When that happened we had no second move, which hurt most in competitor research, where the sites you most want read are the ones best defended.

    There is a ladder now. If the ordinary request gets turned away, Aiter tries again by a route that looks like an ordinary visitor, then a simpler read of the page, then the brand's own entry page, then a different source entirely. The first rung is byte for byte what we did before, so sites that worked yesterday behave exactly as they did.

    Aiter also tells the difference between a page and a polite refusal. A site can answer perfectly normally and hand you a page that says Access Denied, and we used to file that as content and build a brief on it. That now counts as a block and moves to the next rung.

    The whole ladder is bounded, so a hopeless URL fails in a reasonable time instead of hanging.

    You pay when a brief arrives, not before

    Credits used to leave your balance when a run started. If the run then died halfway through, a refund was supposed to put it back, which works right up until the run dies in a way that never reaches the refund.

    Charging now happens at the moment a brief is handed to you. Not at the start, not on a retry, and not for a source that failed to read. If nothing arrives, nothing was charged, and that is now true because of how it works rather than because we remembered to undo it. A run our own platform kills is free.

    Runs also retry themselves once, at no cost to you, since a dropped connection is a common way for a campaign to end up empty.

    When it does fail, it says so

    The old failure was silent in the worst way: the campaign simply sat there looking as though generation had never started. It now fails out loud, names the site that turned us away, and points at the box where you can describe the business yourself.

    Blocked and ignored get different explanations too, because they call for different things from you. The copy is written in each language rather than translated into it.

    Bigger targets on a phone

    We measured every public page at phone width and counted the buttons and links too small to hit reliably. The homepage had 19, pricing had 10, the blog had 15. They are all gone.

    Eight form fields were small enough to make an iPhone zoom in on focus and never zoom back out, which is the kind of thing you only notice when it happens to you on a train. Those are fixed too, along with a blog layout that pushed the page slightly wider than the screen.

    Campaigns in the language you are reading

    Starting a campaign from a marketing page always produced English, whatever language the page was in. The window inside the product got this right; the buttons on the way in did not. They agree now, and three languages that had been missing from that list entirely no longer fall back to English.

    → Start one from any solution page and it will come back in your language.

    Related updates