Partner widget probe

Hard-coded. Not wired to anything. Safe to delete.

1 · Tiqets — Athens (live)

Travelpayouts script tag. Marker 755680 is ours, so clicks attribute correctly. Athens, Travelpayouts city id 99239.

2 · Omio — London → Paris (live)

Loader is the real b2b-nemo-prod bundle, now with defer — see the result note for why that one attribute is the whole fix. data-partner-id="omiolps" per Omio's own instruction; attribution rides on data-redirect, not on this field.

RETRACTED, 2026-09-06: this box used to say data-partner-id="7679741" was tested, did not render, and must never be retried. That conclusion was wrong. It renders. So does omiolps. So would anything — the field cannot block a render, because it is an optional passthrough that becomes one hidden input on the search form.

The real cause was our own <script> tag. The bundle scans for div[data-omio-widget="true"] once, at execution, with no DOMContentLoaded and no observer. Ours sat above the div, so it scanned an empty document. Adding defer fixes it.

Why it fooled us: a null result reads as unambiguous, so it invites no follow-up question — but only if the instrument could have produced the other answer. This one could not. Nothing about the id was ever under test.

Attribution, settled with the mechanism visible: Omio confirmed clicks attribute via the tracking link, and the form bears that out — redirect is posted as its own field carrying 3963000, which is also confirmed current. request_partner_id is separate and is Omio's internal handle.

Written before the device run, so the answer cannot be fitted to the result.
· Renders in the WebView → remote scripts run, and Omio joins Tiqets as answered.
· Does not render, but Tiqets does → not a WebView-script problem; suspect the api.omio.com position lookup, which is a fetch the WebView may treat differently.
· Neither renders → remote scripts do not run in the WebView, and every script-tag widget is dead. That is the finding the whole probe exists for.
· Tapping Search — the form is target="_blank" POSTing to api.omio.com. System browser is fine; navigating away inside Kovalo with no way back is the outcome that stops all three partners shipping, regardless of how they render.

3 · Ferryhopper — Athens → Santorini (staged)

BLOCKED: our partner_secret note says the stored key is “service role only — never expose to the client”, but Ferryhopper’s own embed puts the widget key in client-side JavaScript. Both cannot be true, and guessing wrong publishes a credential. Needs the Affiliate Dashboard checked for which key type this is.

Their widget is a custom element, not an iframe — so it is the same “does a remote script run” question as the other two, plus a custom-element registration.

<script> /* fhiw loader, per widgets.ferryhopper.com */ </script>
<script>fhiw('client', '<WIDGET API KEY — see blocker above>');</script>
<ferryhopper-widget origin="PIR" destination="JTR"></ferryhopper-widget>
<!-- PIR = Piraeus (Athens), JTR = Santorini -->