darkcore docs
PWAStreams

Stream overview

A stream brings a domain, routing, cloaking, offers, pixels, and postbacks into one ad link.

A stream manages traffic: it selects a target, takes it to the needed offer, and retains attribution. An active stream's domain is the ready link for an ad campaign.

ad → stream domain → cloaking and rules → PWA or Direct Link → offer

Quick setup

Create a stream and set an internal name.
Attach a domain with Active status.
Add a routing rule with a PWA or Direct Link.
Add a tracking link to the offer with the {click_id} macro.
Select a default pixel or pass one in the URL.
Activate the stream and check the domain on a phone.

Create a stream

Create a draft stream and configure it using the steps above.

What belongs to a stream

SectionWhat it controls
GeneralName, tags, and default pixel
DomainsAddresses that receive traffic
CloakingVerification level, allowed OSs, and whitepage
Traffic distributionRouting conditions, PWA/Direct Link, and weights
Tracking linksOffers, macros, and distribution across target URLs
PostbackReceiving conversions and forwarding events to external systems
System push campaignsWhether subscribers from this stream can receive system campaigns launched by an admin

These are route and attribution settings. A stream no longer controls PWA behavior or passes PWA settings to the Traffic Engine.

What belongs to a specific target

Post-routing behavior belongs on the target itself:

  • PWA — installation page, icon, iOS interaction, webview bypass, push prompt, and manifest;
  • Direct Link — direct offer redirect plus its own Mini-PWA, webview, and push settings;
  • other targets — only settings their own scenario supports.

Configure PWA behavior in PWA Editor → Config, and Direct Link behavior in the Direct Link editor. The stream owns the traffic path, filters, attribution, and offer.

System push in a stream

The Allow system push campaigns switch does not request notification permission. It only decides whether subscribers from this stream can receive system campaigns launched by an administrator. Configure the prompt, trigger, style, and copy in the PWA; for a Direct Link, configure them in the Direct Link itself.

If the stream has a default pixel selected, its domain is enough:

https://your-domain.com/

If no pixel is selected or you need to override it for a campaign, add the darkcore integration ID:

https://your-domain.com/?pixel_id=PIXEL_INTEGRATION_ID

Pass subs only when you need them for reporting, rules, or macros:

https://your-domain.com/?pixel_id=PIXEL_INTEGRATION_ID&sub1=CAMPAIGN_ID&sub2=CREATIVE_ID

Statuses and activation

A stream moves through Draft → Active → Paused. Activation is available when:

  • at least one domain is attached and one is Active;
  • at least one rule has a variant with a non-zero weight;
  • at least one tracking link has a target URL with a non-zero weight.

The lack of a catch-all rule does not block activation, but some traffic may not find a route.

Preview opens a temporary link without cloaking for about an hour. Use it to check the flow before launching ads.

Before launch

  • Open the domain on a real Android and iPhone if you work with both OSs.
  • Confirm that the correct rule selects the required target.
  • Reach the offer and check that its URL receives click_id.
  • Make a test conversion and find it in analytics.

See Traffic distribution for routing details.

On this page