Skip to main content

Landing pages

Single-product conversion pages for paid ads — manual builder, AI-generated drafts, sections, and accurate shipping when you bind a product.

Written by Support

Landing pages are single-product conversion pages designed for paid traffic. Strip everything that doesn't sell, focus on one product, drive to a single CTA. DZBuild gives you a fast manual builder and a one-click AI generator on top of the same data model, so you can iterate without rebuilding.

Video

Storefront vs. landing page

Use the storefront when

Use a landing page when

The customer is browsing

The customer clicked an ad

You sell 10+ products

You're pushing 1 product hard

Organic / repeat traffic

Facebook / TikTok / Google Ads

The customer needs to compare

One offer, one decision

A landing page lives at https://{your-store}.dzbuild.app/landing/{slug} (or under your custom domain). It does not show your storefront navigation, search bar or footer — just the offer.

How many landing pages can I have?

Per-plan caps:

Plan

Landing pages

Free

0

Pro

3

Unlimited

Unlimited

Enterprise

Unlimited

Landing pages come with your plan. Individual pages are no longer sold separately, so the cap in the table is what you get.

Plan the expiry date around your campaigns: when a plan expires your storefront closes to customers and your custom domain is removed, so ads pointing at those URLs keep spending on a dead page.

To upgrade or renew, open /dashboard/subscribe and click ▶ How to renew for the in-app guided tour, or check the video tutorials on the DZBuild YouTube channel.

Where to find landing pages

Open Dashboard → Landing pages at /dashboard/landing-pages. The page is a card grid with a search box above it, which filters the loaded cards by title or URL, client-side. Each card shows:

  • The page title

  • The creation date

  • The number of sections

  • The view count

  • An Active badge

  • The page's public URL in a read-only box with a copy button — the slug is visible inside that URL, there's no separate slug field on the card

Three actions per card: Edit, Preview (opens the live page in a new tab), Delete.

Every landing page you create in the dashboard is created and saved as active. There is no Draft state in the merchant UI. A page that Copilot or the API builds section by section starts as a draft by default and stays offline until it is published, even though its card in this list shows Active. Saving such a page from the dashboard editor with Save all changes publishes it.

Two ways to create

Option 1 — AI-generate a draft

Click Generate with AI at the top of the list (or go to /dashboard/landing-pages/ai-generate). Pick the product, give the page a title, optionally add a one-line angle ("Mother's day gift", "for hot summer"), and the generator designs a complete page in a couple of minutes. The page is drawn as one tall image (three stacked images for the tall size) with the text written into the artwork, followed by an order form in matching colours. The artwork covers:

  • Headline + sub-headline

  • Pain → solution sections

  • Benefits list

  • Generated scene images for the product in context

  • Trust signals

  • Call-to-action with the order form

What the wizard asks for:

  • A product that already has at least one image. Products with no image are greyed out and cannot be selected.

  • A page title: required, at least 3 characters.

  • The angle / description — a free-text box that accepts up to 2,000 characters.

  • The page language — Arabic, French or English.

  • The page size — the standard page costs 20 AI credits, the tall (3-panel) page costs 45. The tall option is greyed out when your balance can't cover it.

See your balance at /dashboard/ai-credits.

The language you pick here is stored on the landing page itself: it does not follow your store language, and it drives the page's text direction. In the dashboard it is only settable in the AI wizard: manually created pages are always Arabic/RTL, and the editor has no language setting. Pages created through Copilot or the API can use any of the three languages, and the API can change it later.

The generated images are ordinary Image sections: the words are part of the picture, so you change them by swapping the image, not by typing, and you can add your own sections around them. There is no per-block regenerate: to get a different draft you run the generator again, which charges credits again. A run that fails gives the credits back automatically.

Option 2 — Build manually

Click Create a page (/dashboard/landing-pages/create). A 3-step wizard asks you to (1) pick the product, (2) enter the page title, URL slug and SEO description, (3) create. There are no templates — the page starts empty and you add sections in the editor.

Older AI-generated pages may contain PAS blocks (Problem / Agitation / Before-after / Solution / Features / CTA). They stay editable, but they cannot be added by hand, and new AI pages no longer use them.

Section types

Fourteen section types can be added manually, each with its own style controls:

Section

What it does

Image

A single full-width image block.

Image carousel

Several images the visitor can swipe through.

Announcement bar

A thin banner strip for a promo line.

Special offer

A highlighted offer block.

Price display

Price + compare-at price as a standalone block.

Product offers

Quantity-tier offer cards ("1 box", "2 boxes", …). See below.

Order form

The full inline order form.

Order button

A CTA button that scrolls to / opens the order form.

Free text

Rich free text.

Contact button

A WhatsApp / phone contact button.

Countdown

A countdown timer for urgency.

Fake visitors

A "N people are viewing this page" counter.

Testimonials

Customer review cards.

Custom form

A lead form with your own fields (this is the only place an email field exists on a landing page).

Product offers and follow_offers

Each offer row in a Product offers section carries its own quantity, price, compare-at price, badge, image, featured flag and free-shipping flag.

Separately, an Order button section (or an order form rendered as a button) has a Price follows the product's offers (by quantity) toggle, on by default for new sections. When it is on and the quantity field is shown, the quantity the buyer picks is matched against the quantity offers configured on the product itself (Products → the product → offers), not against this section's rows, and an exact match re-prices the order to that offer's price and applies its free-shipping flag. The match and the final price are always recalculated from the offers you saved on the product. The price the browser sends is never trusted. Free shipping chosen inside a Product offers section is likewise re-read from the offer you saved on that section.

Linking a product

Every page you create in the dashboard is bound to a product: the create wizard will not finish without one, and the editor lets you switch to another product but not remove it. A page with no product (for example one created through Copilot or the API) or with an inactive product shows a No product or Product inactive warning on its card; click it to attach a product in the page settings. Why it matters:

When the order form is bound to a product, shipping is calculated from your store's per-wilaya rates plus any per-product overrides. A landing page without a product binding can silently undercharge shipping — especially with the Custom Product Shipping addon, which needs the product to look up the correct rate.

If you sell a bundle that doesn't map to one product, create a placeholder product (with the bundle's actual weight + dimensions + shipping rules) and bind the landing page to it.

Editing sections

In the landing-page editor (/dashboard/landing-pages/:id/edit):

  • Drag sections by the grip handle to reorder — this is the reorder method on desktop. On a narrow screen (768px or less) each section card also shows ▲ / ▼ arrows that move it one place, disabled on the first and last section.

  • Click Delete to remove a section.

  • Click a section's pencil icon, or click the section in the preview, to open its settings.

  • A copy icon on each section card duplicates that section.

Save propagates instantly — no separate publish step.

The preview pane

The right-hand pane is not a mock-up: it is the actual public page, rendered by the same code that serves it to buyers, inside an iframe. What you see is what buyers get. Style and text edits patch the preview instantly; structural edits reload the iframe once the autosave confirms.

Don't try to share that preview URL: it is login-gated, requires the landing-pages Edit Pages permission in Team & roles and is sent with noindex and a same-origin frame policy, so it is useless to anyone outside your dashboard. Use the card's Preview action (the real public URL) when you want to send the page to someone.

The order form

The most important block. Configure:

  • Fields and their on/off switches: commune, address and quantity each have a switch. Name, phone and wilaya cannot be switched off: they are locked on and marked required in the editor.

  • Required fields: the server accepts an order only if name and phone are filled and the phone is an Algerian mobile number (05, 06 or 07, also accepted with the +213 or 00213 prefix).

  • Optional fields — full address, quantity, and one merchant-defined free-text field (label, placeholder, required toggle) whose value is appended to the order's seller notes. There is no email field on the landing-page order form — landing-page orders are always stored with an empty customer email. If you need an email address, add a Custom form section instead.

  • Variants — the form renders the product's variant groups with full product-page parity (thumbnails, price pills, sold-out and dead-end states). The three group types are color (colour swatch cards), text (plain option buttons — this is what a group named "Size" uses) and image_text (thumbnail cards). Multi-select selectable groups reuse the image-text card markup and are optional rather than required.

  • Bundles / quantity offers — "Buy 2 + 1 free" with auto-quantity. Pair with the Offer Variant Popup addon for clean per-piece variant selection.

  • Pixel events: the landing page fires ViewContent on load, InitiateCheckout once per order form when the visitor first sends it, and Purchase on a successful order submit (browser pixel plus server-side Conversions API for Facebook, TikTok, Snapchat and Pinterest, deduplicated by event ID). A Custom form section fires Lead instead (SubmitForm on TikTok, SIGN_UP on Snapchat, generate_lead on GA4) and produces neither InitiateCheckout nor Purchase. Landing pages never fire AddToCart.

Submission stays inline — no redirect, the confirmation appears on the same page so you don't lose customers between steps.

Pixels and analytics

A pixel can be targeted to specific landing pages. Useful when:

  • A specific campaign uses a different Pixel ID for clean attribution.

  • You're A/B-testing two creatives and want separate audiences.

Targeting is set on the pixel, not on the page: open /dashboard/pixels, click Customize on the pixel card and pick the landing pages. The targeted pixel fires on those pages in addition to your global pixels, not instead of them. The Customize button shows on the Unlimited and Enterprise plans. See Pixels for the full setup.

Duplicating

Duplicating a whole landing page is not available in the dashboard today. To A/B-test a different headline, hero or CTA, create a second page and rebuild the sections, then split one ad link between the two pages with the A/B Testing addon.

You can duplicate an individual section inside the editor with the copy icon on the section card.

Tips

  • Always bind the page to a product, even for bundles. It's the only way shipping math is right.

  • Show a "Cash on Delivery" badge prominently. Algerian buyers trust this and convert better.

  • Keep the form short. Ask for what you need to deliver the order and nothing more.

  • Real product photos beat stock images on Algerian traffic.

  • Know what the built-in bot checks cover. Every landing-page form runs a few light checks against automated submissions, and a script written for your page can get past them. Treat them as a speed bump, not as protection.

  • Add a captcha if fake orders from ads are costing you money. The addon puts a real challenge in front of the form.

  • Test at phone width first. That is where your ad traffic lands.

What's next

Did this answer your question?