Create your first PWA promo link: app, link, domain, pixels, buyer assignment and Android testing

· 10 min read

Follow the real interface in the swifttu PWA workspace: create an app, then a promo link, choose a dedicated, own or wildcard subdomain, bind pixels, assign a buyer, set how iOS visitors are handled, and test on an Android phone.

On this page

A PWA promo link sends ad traffic to an installable app page: a visitor opens the link on an Android phone, sees the app's install page, installs it, and is then taken to the Offer URL you set. Creating a link that is ready to run takes two steps: first build the app under "Apps" (it defines the name, icon and colors after install), then create the link under "Links" (it defines the target URL, domain, pixels and more). Here is the whole path in order. The interface changes slightly between releases, so go by what you actually see.

Create the app first

The app defines the name, icon and colors visitors see after installing. A promo link belongs to an app, so the app comes first.

  1. In the PWA workspace, open "Apps" in the left menu and click "Create app" at the top right. The main button creates a "Custom app"; the arrow next to it also offers "Build with AI" and "From a template".
  2. In the "App Page Design" drawer, start with the "Infrastructure" section: fill in "App name" (required) and upload the app icon ("Upload app icon": PNG, JPG or JPEG only, recommended 512px * 512px or 1024px * 1024px). "Remark" is optional and only visible in the console.
  3. Go to the "App Settings" section (the heading inside is "Store Info"): under "Select languages" choose at least one store language; the first one is the fallback. Under that language's tab fill in "App vendor" and "App description" (required), and add "Upload app detail images" and "Add app tags" as needed. The language matching the visitor's device is used first; if none match, the first one is used.
  4. The "Other Settings" section holds the QR code, iOS compatibility and other switches. For a first app, keep the defaults; iOS visitors are covered in a later section.
  5. Click "Save" at the bottom. The preview on the right is an unsaved draft: not billed, not counted as a visit. After saving, the app appears in the list.

Create the promo link

Once the app exists, create the link under "Links".

  1. Open "Links" in the left menu and click "New link" (the button is disabled until an app exists, and the page asks you to create one). The "New link" drawer slides in from the right; the anchor bar at the top lists "Basics", "Landing page", "Cloak rule", "Domain", "Redirect & click ID", "A/B & environment", "Pixels & backups" and "Assign buyer".
  2. "Basics": choose the "App"; "Channel / agent note" is optional and helps tell channels apart; "Custom path (optional)" takes a path such as /promo, and paths must be unique on a domain.
  3. In "Landing page", set "Offer URL" to "Enter manually" and fill in an address starting with https://; or choose "Choose a payment site", where the offer uses the site's address and follows it when the site's domain changes. Macros supported by the system can be used in the path and query of the Offer URL, but not in the host.
  4. (Optional) In "Cloak rule", "Cloak rule" defaults to "No cloak". When bound, visitors are checked against the rule first; if the rule is paused or in review, visitors only see the safe page. See Create your first cloak rule for how to build one. If the chosen rule has the review-period safety lock, human verification or frequency cap turned on, a yellow notice explains that these do not apply on PWA links.
  5. Do not put ad-platform dynamic parameters directly in the Offer URL (the platform does not replace parameters inside the redirect target). Write sub1= with the platform macro in the ad platform's "URL parameters" field and let the Offer URL receive it with a macro the system supports; the interface tells you exactly what to change when you save.
  6. If the Offer URL contains Chinese punctuation or a full-width space (common after copy and paste), the interface asks you to remove it.
  7. To save effort, use "One-click promo link" on the page: pick an app and enter the Offer, and the domain, cloak rule, pixels and pre-launch check are handled for you. Nothing is written until you click "Start".

Choose a domain

In the drawer's "Domain" section, the "Domain" dropdown only lists healthy domains. Without a domain the link uses the platform's shared preview domain, which is for testing only and has a daily visit cap. For real traffic, use one of the three kinds of domain below:

  1. Dedicated domain: provided by the platform and used by your account alone, never shared, so other users' flagged links cannot affect it. A new link has no ID yet, so click "Save" first, then click "Get a dedicated domain" on the link's row (when editing a link you can also click "Claim from the platform pool →"). The dialog shows the yearly price and you are only charged after confirming (gifted quota first, then your wallet); it renews from the wallet before expiry, there is a grace period if renewal fails, and the domain is recycled afterwards. A dedicated domain can serve only one link.
  2. Your own domain: first add your domain in Domain Management and verify ownership; then, on the "Domains" page in the PWA workspace's left menu, under "Use your own domain", pick it from "Verified domain" and click "Add" (with no verified domain, the page says "You have no verified domains yet."). Then go back to the link and pick it with "Attach a domain" (or "Domain" in the drawer). Your own domains can be shared by several links.
  3. Wildcard subdomain: if the domain you pick under "Verified domain" is a wildcard (like *.example.com), a "Subdomain prefix" box appears next to the dropdown. Enter only the prefix, for example pwa1, and pwa1.example.com is added. A prefix may only contain lowercase letters, digits and hyphens (-), 1–63 characters, with no leading or trailing hyphen and no dots. One wildcard domain can therefore produce many subdomains for different links.
  4. A newly added domain needs a moment to be set up: the page says "Added …. The site is being set up and will be reachable in about 1 minute.", and the row shows "Setting up…" for a short while. Wait 1–2 minutes before you test it.
  5. To change a link's domain later, click "Change domain" on the link's row; for a link that already has a domain, the domain option in the drawer is locked.
  6. Each link in the list shows whether it uses a "Dedicated domain" or the shared preview domain. Make sure it is on a real domain before you run traffic.

Bind pixels

A pixel tells the ad platform which ad a conversion such as an install, sign-up or deposit came from, which helps delivery optimization.

  1. First add the pixel under "Pixels" in the left menu. Where to find the Pixel ID, access token and test event code for Facebook and TikTok is covered in the Facebook pixel setup guide and the TikTok pixel setup guide.
  2. Back in the link drawer, under "Pixels & backups", tick the pixels to use under "Linked pixels (n / 5 selected)"; up to 5. If it says there are no enabled pixels yet, create and enable one under "Pixels" first.
  3. Once bound, install, sign-up and deposit events are sent server-to-server to the ad platform; no third-party scripts are injected into the PWA pages.
  4. (Optional) In the same section, add backup addresses under "Backup offers". If the link's Offer has a problem, click "Switch offer" on the link's row to swap to a backup in one click.

Assign a buyer

If a media buyer on your team runs this link, you can grant it to one staff account. That account can only see this link's data and copy the link, not edit it. Staff accounts do not see this section when they create links themselves.

  1. In the "Assign buyer" section, pick an existing staff account under "Buyer account"; the default is "Do not assign".
  2. No account yet? Choose "+ Create buyer account" and enter a username, password and name. The new account is read-only and only sees this link. You cannot create more once your plan's staff account limit is reached.
  3. Click "Save". The assignment runs after the link is saved: the new account's login address, username and password are shown in the drawer only once, so click "Copy login info" right away. If the assignment fails, a red notice appears; click "Retry assignment", the link itself is already saved.

How iOS visitors are handled

This product is built for Android users, so target Android devices only in your ads. If an iPhone or iPad visitor does open the link, the app's "iOS compatibility" switch decides what happens:

  1. Off (default): an iPhone / iPad visitor who opens the link in Safari does not see the install page and is redirected straight to the link's redirect URL.
  2. To send iOS visitors to a different page: fill in the address under "iOS-specific Offer URL (optional)" in the drawer's "Landing page" section; leave it empty to use the Offer URL.
  3. To let iOS visitors see the install page as well: edit the app on the "Apps" page and turn on "iOS compatibility" in "Other Settings". iOS visitors then see the install page and an "Add to Home Screen" guide.
  4. With "iOS compatibility" on, the iOS redirect URL cannot be an App Store app link, or saving is rejected; if the app already has such links, the switch is greyed out and lists the conflicting link paths. The link drawer also shows the current iOS compatibility status of its app.
  5. Desktop visitors and in-app browser visitors are handled on the "Non-Android compat" page in the left menu; the per-link "In-app browsers" option is in the drawer's "Redirect & click ID" section.

Test on an Android phone

After saving the link, walk through the whole flow yourself before you run traffic.

  1. Go back to "Links", find the link and confirm its status is "Active" and that it has an access address. If it says "No URL yet", there is no usable domain yet; go back to the previous step and attach one.
  2. Click "Copy" to get the address, or click "QR code" and scan it with your phone. Wait 1–2 minutes first if the domain is new.
  3. Open the link in Chrome on an Android phone. You should see the app's install page you set up: name, icon, description and the install button. Tap the install button and finish the installation in the system prompt.
  4. Open the app from its icon on the home screen and confirm it goes to the Offer URL you set.
  5. If you bound a pixel, check the "Test events" page of the ad platform to confirm the events arrived; the two pixel guides above explain how to use the test event code. Start real traffic once everything looks right.
  6. Cannot open it, or you do not see the install page: first check whether the link's row shows a yellow tag such as "The bound cloak rule is paused" or "The bound cloak rule is in review; visitors only see the review page", in which case visitors only see the safe page; then confirm the domain has had its 1–2 minutes of setup time.
  7. If a cloak rule is bound and you want to know why a visit was allowed or blocked, replay it with "Diagnose / Trace" in "Visit Logs" in the Cloak workspace.

Compliance reminder

  • swifttu is positioned as an invalid-traffic and crawler filter: it helps you tell bots, crawlers and other invalid traffic apart from real users.
  • Do not use it for anything illegal, fraudulent, counterfeit, or that impersonates someone else's brand. The app's name, icon, description and the content after install must be truthful, lawful and match what you actually provide.
  • Also follow the laws of your region and the advertising policies of each ad platform. Apps, links or accounts that violate them may be restricted.
  • #PWA
  • #Promo link
  • #Domain
  • #Pixel
  • #Android testing

Other languages: 简体中文

Ready to try it?

Sign up free and launch your first landing page in minutes.

Sign up free

Related articles

swifttu 讯兔swifttu 讯兔

The traffic firewall, smart routing, landing-page studio and dual-ledger payments console for overseas advertisers.

Disclaimer: swifttu only provides compliant traffic-filtering, link-distribution and landing-page tooling. Users must follow the advertising and developer policies of the media platforms they run on (including Meta, Google and TikTok) and must not use the platform for anything that violates local laws.