← Back to guides

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 ↗

1

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).

Go to Domains ↗

📌 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.

2

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):

TypeNameValue
TXT_roylead.shop.comroylead-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.promo for a subdomain).

3

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.

4

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.

Go to Landing Pages ↗

The address must be on the chosen domain: a page on another site is not accepted.

5

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):

  1. The form container — put it where you want the order form:
<div class="lp-form-container"></div>
  1. 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:

FieldnameRequired
First namenomeYes
Last namecognomeYes
PhonetelefonoYes
AddressindirizzoNo
CitycittaNo
ZIPcapNo

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:

AttributeWhat it does
data-bundle-tier="1|2|3"makes the card clickable and picks that quantity in the form
data-bundle-nowgets the price
data-bundle-fullthe full price, struck through (only when higher)
data-bundle-savethe savings, translated automatically
data-bundle-pricesstays hidden until prices are ready
6

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.

Go to Leads ↗

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.

Get started free ↗