Link Locker

Put a destination URL behind a short list of offer completions. Visitors finish the offers, then land on the link. Useful for downloads, file shares, referral codes and anything hosted elsewhere.

Create a locker

  1. Go to Link Locker in the publisher sidebar and create a locker.
  2. Set the redirect URL — where the visitor goes after unlocking. This is required.
  3. Set a fallback URL — shown if the redirect cannot happen. Also required.
  4. Set how many conversions are required, from 1 to 5.
  5. Choose a theme and save.
  6. Copy the locker's UUID.

Settings

Setting Required Notes
Name Yes Up to 255 characters. Shown to you, not to visitors.
Redirect URL Yes Where the visitor is sent on unlock. Up to 2048 characters.
Fallback URL Yes Offered on the locker page as an alternative destination. Up to 2048 characters.
Conversions required Optional Whole number from 1 to 5. Defaults to 1. See the note below — setting this above 3 does not widen the offer list.
Theme Optional classic, modern or glass. Unlike the Content Locker, themes are built in and cannot be customised by your operator.
Notes Optional Private note for your own reference.
The offer list is capped at three. Regardless of what you set for conversions required, the locker shows at most three offers, taken from the highest-paying ones available for the visitor's country. If you set the requirement to 5, a visitor must complete offers from a list that only holds 3. Set the requirement to 3 or fewer.

Lockers you create are active immediately — there is no approval step for link lockers, unlike ad campaigns.

Integration

Share the locker URL directly. This is the usual approach — post it in social media, in video descriptions, or behind a download button.

https://preads.hansaldev.com/link-locker/YOUR_LOCKER_UUID/show?uid=YOUR_USER_ID

Parameters

Parameter Required Description
uid Yes Your unique ID for this visitor. This is how the locker knows who is unlocking.
fp Optional A device fingerprint value, if you collect one.
Always pass uid. Without it the locker identifies visitors by IP address. Everyone behind one network address — a school, an office, a carrier — then shares a single session, so one visitor unlocking sends everyone straight through.

Embedding instead of redirecting

If you would rather keep visitors on your site, embed the locker page:

<iframe
  src="https://preads.hansaldev.com/link-locker/YOUR_LOCKER_UUID/show?uid=YOUR_USER_ID"
  width="100%" height="800px"
  frameborder="0">
</iframe>

Make sure your layout stays usable on mobile. Note that the redirect to the destination URL happens inside the iframe, so it will load the destination inside your frame rather than replacing the top-level page. Use a direct link if you want the visitor to leave your site.

Detecting when a visitor unlocks

The locker emits no browser events. It does, however, expose a progress endpoint that the locker page polls itself:

GET https://preads.hansaldev.com/link-locker/YOUR_LOCKER_UUID/progress?session_token=TOKEN

Response on success:

{
  "completed": 1,
  "required": 3,
  "is_unlocked": false,
  "progress_percent": 33.33333333333333,
  "unlock_token": "..."
}
Status Meaning
422 session_token was missing.
403 { "error": "Invalid session" } — the token is not valid for this locker.
404 { "error": "Session not found" } — no session matches, usually because the visitor's identity changed.

In practice, if you share a plain link you do not need this endpoint — the locker redirects the visitor itself. It is useful when you render the locker yourself and need to drive your own interface.

After unlocking

  • The visitor is sent to your redirect URL automatically.
  • Your fallback URL is also shown on the locker page as an alternative destination.
  • Unlocking is recorded per session, so returning with the same uid and device fingerprint goes straight through.

Tracking and reporting

  • No postback is sent for locker conversions. Locker conversions do not trigger your postback URL. See Postback Setup.
  • Locker conversions are recorded and reported, without an app association.
  • Clicks and completions are available on the locker's own Statistics page in the publisher area.
  • If an administrator reverses a locker conversion, the amount is deducted from your balance.

Rate limits

All public locker endpoints share a limit of 60 requests per minute per IP address — the locker page, click tracking, the progress endpoint and inbound network postbacks alike. Poll the progress endpoint no more than once every few seconds.

Who can manage lockers

Role Can do
Publisher Create, edit, view and delete your own lockers. Lockers are active immediately.
Administrator List, view, delete, change status and reverse conversions. Administrators cannot create or edit lockers.
Advertiser Nothing. There is no advertiser-facing link locker screen — lockers are a publisher tool.

An administrator can set a locker's status to active, rejected, banned or pending. A non-active locker returns 404 to visitors.

Troubleshooting

Symptom Cause and fix
404 on the locker URL Wrong UUID, or the locker is not active. Copy the UUID from the locker list.
One visitor unlocks it for everyone uid was not passed, so visitors are grouped by IP. Pass a unique uid.
Visitors must re-unlock on every visit The uid or device fingerprint changes between visits. Keep uid stable.
Visitors cannot finish the required number of offers The offer list holds at most three entries. If you required more than three, lower the requirement.
The destination loads inside the iframe Expected when embedding. Use a direct link to send the visitor out of your page.
The locker only shows three offers By design. Only three offers are ever offered per locker.
No postback arrives for locker conversions Correct behaviour — lockers never post back. Use the statistics page.

Related documentation