Landing on an external site
Connect the pages of a site you host yourself (Shopify, your own server, another builder) to RoyLead — verify the domain, register the page and paste the code.
Updated on October 22, 2026
If your landing lives on a site you host yourself — Shopify, your own server, another builder — you can connect it to RoyLead without moving it: RoyLead publishes nothing, you paste one piece of code into the page and from there clicks, leads and pixels work just like on landings built with the editor.
💡 Got a WordPress site? Use the plugin, it does everything for you: Read: Integrate WordPress ↗
Add the site in Domains
Go to Domains → Add domain → Add external site and type the site's domain (e.g. shop.com or promo.shop.com).
📌 Is the domain already on Cloudflare and did you import it? No need to add it again: open its settings (gear icon) and pick External site as the site type. It's verified right away — skip to Step 3.
Verify the domain is yours
RoyLead shows you a TXT record to add in the domain's DNS panel (where you bought it, or on Cloudflare):
| Type | Name | Value |
|---|---|---|
| TXT | _roylead.shop.com | roylead-verify=… (copy it from RoyLead) |
Save it and press Verify. The record can take a few minutes to show up: if RoyLead doesn't find it, try again later from the To verify badge on the domain row.
⚠️ Until the domain is verified, clicks and leads of its pages are not recorded. This stops anyone from using your code on a site that isn't theirs.
💡 If the DNS panel adds the domain at the end of the name by itself, type only the first part:
_roylead(or_roylead.promofor a subdomain).
Thank-you and privacy
On the domain row, Service pages column, click TY and enter the address of your site's thank-you page; with PRIV, the privacy policy one.
🚨 The thank-you page is required: after ordering, the visitor is sent there. Without it, they end up on a page that doesn't exist on your site.
You can change them any time: they apply from the next visit, without touching the code in your pages.
Register the landing
Go to Landing Pages → Connect landing page → Landing on external site. Pick the domain, paste the page address and give it a name.
The address must be on the chosen domain: a page on another site is not accepted.
Paste the code
As soon as the landing is created, RoyLead gives you two pieces of code (you can find them again any time with the </> icon on the landing row):
- The form container — put it where you want the order form:
<div class="lp-form-container"></div>
- The tracker — paste it once, right before
</body>. It already contains the key and the landing ID: you don't need to change anything.
💡 The form is generated by the tracker, with per-country phone validation and anti-spam protection. Want several forms on the page? Repeat the container: one tracker is enough.
The form colors are picked in RoyLead: per domain (Domains → palette icon) or per landing (Landing Pages → palette icon).
Hand-written form (optional)
Instead of the container you can write the <form> yourself: add the data-roylead-form attribute, no action, and use these name values:
| Field | name | Required |
|---|---|---|
| First name | nome | Yes |
| Last name | cognome | Yes |
| Phone | telefono | Yes |
| Address | indirizzo | No |
| City | citta | No |
| ZIP | cap | No |
In this case the styling is up to you.
Price cards (multi-quantity offers)
If the offer has several quantities (1 / 2 / 3 packs), the tracker fills in the cards you mark with these attributes:
| Attribute | What it does |
|---|---|
data-bundle-tier="1|2|3" | makes the card clickable and picks that quantity in the form |
data-bundle-now | gets the price |
data-bundle-full | the full price, struck through (only when higher) |
data-bundle-save | the savings, translated automatically |
data-bundle-prices | stays hidden until prices are ready |
Test it
Open the page with a test parameter, e.g. https://shop.com/offer?fbclid=test123&utm_source=facebook, and send a test order: within seconds you'll find it in Leads, with the campaign parameters.
Troubleshooting
- Nothing arrives → the domain is still To verify (Step 2), or the tracker isn't on the page or is pasted twice.
- The form doesn't show → the
<div class="lp-form-container"></div>is missing, or it's inside a hidden element. - An error page shows after ordering → the thank-you page is missing (Step 3).
- You copied the page to another domain → register that domain too (Steps 1-2) and the landing with its address: the code only works on the landing's domain.
- Whoever managed the domain left the team → copy the tracker again from the landing row (
</>icon): the old one used their key.
Ready to put this into practice?
Create your RoyLead account and start in minutes.