Overview

Registering Build Identifiers

Register your platform identifiers in Console so the customizer accepts requests from your build. This is the one-time setup every shipping app needs — and the most common cause of 403 errors when it's missed.

Why register?

Every customizer session is minted on Ava-Twin's server, and every mint is gated by the platform identifier of the build making the request. Console is where you tell us which builds are allowed: register an origin (web) or bundle ID (native), and only requests from that build will succeed.

This means an API key on its own can't be used to mint sessions from a build you don't control. Stolen keys without a matching registered identifier get rejected at the edge.

Editor mode bypasses identifier checks. You can develop without registering until you're ready to ship. Calls from the Unity Editor skip origin and bundle enforcement.

Per-platform identifier formats

The format you register depends on which platform Unity reports at runtime via Application.platform. Here's what to register for each:

PlatformRegisterExamples
WebGL WebGLPlayerOrigin (host) — wildcards supportedmygame.com *.mygame.com mygame.com:8080
Android AndroidJava package namecom.mycompany.mygame
iOS IPhonePlayerCFBundleIdentifiercom.mycompany.mygame
Windows standalone WindowsPlayerreverse-DNS bundle IDcom.mycompany.mygame.win
macOS standalone OSXPlayerreverse-DNS bundle IDcom.mycompany.mygame.mac
Linux standalone LinuxPlayerreverse-DNS bundle IDcom.mycompany.mygame.linux
⚠ Case matters for native bundles. Bundle IDs must be lowercase and match exactly. A typo or a stray capital letter is the most common reason native builds hit BUNDLE_NOT_ALLOWED.

How registration works in Console

1
Open Console → Apps → [your app] → Edit.
2
In the Platform Identifiers section, you'll see one input per enabled platform.
3
Enter your identifier matching the format above.
4
Save — changes take effect within ~60 seconds.
Plan tier locked? If you see Upgrade → next to a platform, your plan doesn't include it. See the plan-tier filter below for what each plan unlocks.

WebGL wildcards

Wildcards let one registered origin cover multiple subdomains:

  • *.example.com matches app.example.com and staging.example.com — but not bare example.com.
  • TLD wildcards (*.com, *.io, *.co.uk) are rejected — too broad.
  • Use a wildcard if you have multiple subdomain environments (dev / staging / prod) and want to cover them with one entry.

Localhost auto-allow (development convenience)

Local dev just works. localhost and 127.0.0.1 (any port) are always allowed for WebGL — you don't need to register them. Local dev just works.

Plan-tier filter

Which platforms can be registered depends on your plan:

PlanRegisterable platforms
FreeWebGL only
IndieWebGL + iOS + Android
Studio / Agency / EnterpriseAll 6 platforms (incl. Windows / macOS / Linux)

See Pricing & Plans for the full plan comparison.

Error reference

When the customizer rejects a session mint, the response includes a machine-readable code. Match it to the table below for the fix:

CodeWhenFix
ORIGIN_NOT_REGISTEREDWebGL request to a platform with no origin registered.Register an origin in Console for this app's WebGL slot.
ORIGIN_NOT_ALLOWEDThe browser's Origin doesn't match the registered value.Update Console to match (typo? wrong subdomain?).
BUNDLE_NOT_REGISTEREDNative build with no bundle ID registered for that platform.Register the bundle ID in Console for that platform.
BUNDLE_NOT_ALLOWEDSDK-reported bundle doesn't match registered.Update Console (typo? case mismatch — must be lowercase).
PARENT_ORIGIN_REQUIREDCustomizer iframe couldn't determine parent origin.Browser referrer-policy issue — see notes below.
PARENT_ORIGIN_INVALIDdocument.referrer not a valid URL.Rare; usually browser misconfig.

Browser referrer policy

If your game's pages set <meta name="referrer" content="no-referrer"> or Referrer-Policy: no-referrer, the customizer can't determine its parent origin and you'll see PARENT_ORIGIN_REQUIRED. Use strict-origin-when-cross-origin (the default) or origin.

FAQ

Do I need to register before testing in Editor?
No, Editor bypasses identifier checks. Register before you make a build.
Can I register multiple environments (dev / staging / prod)?
Use a WebGL wildcard (e.g. *.mygame.com), OR create separate apps for full plan-quota isolation.
What if my Unity build's Application.identifier is empty (WebGL)?
That's fine for WebGL — server uses Origin instead. The SDK still reports it, but the server ignores it for the WebGL platform.
How fast does a Console change take effect?
About 60 seconds (cache TTL). If you just registered an identifier and still see a 403, wait a minute and retry.