# Pangkalahatang-ideya ng Streams

Ang Streams ay mga campaign container na nagbibigay-daan sa iyong pagsamahin ang maraming laro sa isang shareable
experience. Gamitin ang streams para gumawa ng marketing funnels, magpatakbo ng time-limited promotions, magtulak ng team
engagement sa live events, o gabayan ang mga manlalaro sa isang sequence ng mga laro.

## Ano ang Stream?

Ang stream ay isang koleksyon ng mga larong pinagsama-sama sa ilalim ng isang link. Sa halip na ibahagi ang indibidwal na
mga laro, maaari kang magbahagi ng stream na nagpapakita sa mga manlalaro ng maraming laro — sa fixed order o
randomized.

**Mga pangunahing kakayahan:**

- Pagsamahin ang maraming laro sa isang campaign
- Magtakda ng start at end dates para mag-schedule ng mga promosyon
- Kontrolin ang game ordering (sequential o random)
- Limitahan ang total plays o plays per user
- Ayusin ang streams sa [funnel stages](/fil/streams/funnel-stages/) para sa pipeline visualization
- Magpatakbo ng [social/team mode](/fil/streams/social-leaderboard/) na may real-time leaderboards
- Mangolekta ng leads gamit ang [Lead Capture](/fil/streams/lead-capture/) (email, name, phone)
- Magkonekta ng webhooks at integrations para sa real-time event tracking
- Mag-attach ng [Analytics Providers](/fil/connections/analytics-providers/) (GA4, Mixpanel, PostHog, atbp.) sa Tracking step
- Subaybayan ang UTM parameters para sa marketing attribution

{/* TODO: Add screenshot of funnel view (stream-funnel-view.jpg) */}

## Mga Status ng Stream

Sumusunod ang streams sa lifecycle na may mga sumusunod na status:

| Status        | Paglalarawan                                   |
| ------------- | --------------------------------------------- |
| **Draft**     | Nagsi-set up pa ang stream, hindi pa visible       |
| **Scheduled** | Naka-configure ang stream na may future start date |
| **Active**    | Live ang stream at tumatanggap ng plays            |
| **Paused**    | Pansamantalang huminto ang stream                 |
| **Completed** | Naabot na ng stream ang end date o play limit nito |
| **Archived**  | Naka-retire na ang stream at hindi na accessible    |

## Paglikha ng Stream

1. Mag-navigate sa iyong organization dashboard
2. I-click ang **Streams** sa sidebar
3. I-click ang **Create Stream**
4. Maglagay ng pangalan at opsyonal na description
5. Magdagdag ng mga laro sa stream (tingnan ang [Pagdaragdag ng Mga Laro](#pagdaragdag-ng-mga-laro))
6. I-configure ang scheduling at settings
7. I-publish ang stream

<video autoplay loop muted playsinline preload="none">
  <source src="/vdo/streams/streams-tutorial.mp4" type="video/mp4" />
</video>

## Scheduling

Magtakda ng start at end date para kontrolin kung kailan available ang iyong stream:

- **Start date** (`start_at`) — Magiging playable ang stream sa oras na ito
- **End date** (`end_at`) — Hindi na tatanggap ng plays ang stream pagkatapos ng oras na ito
- **Timezone** — Lahat ng dates ay iniinterpret sa napiling timezone

Kung bibisita ang manlalaro ang stream bago ang start date, makikita nila ang countdown timer. Pagkatapos ng end date,
magpapakita ang stream ng completion message.

![Mga setting sa stream scheduling](/img/streams/schedule.jpg)

## Pagdaragdag ng Mga Laro

Magdagdag ng mga laro sa iyong stream mula sa published games ng iyong organisasyon:

1. Buksan ang iyong stream
2. I-click ang **Add Games**
3. Pumili ng isa o higit pang laro mula sa iyong library
4. Ayusin ang display order (i-drag para i-reorder)

<video autoplay loop muted playsinline preload="none">
  <source src="/vdo/streams/add-game-streams.mp4" type="video/mp4" />
</video>

{/* TODO: Add screenshot of games editor (stream-games.jpg) */}

### Per-Game Availability

Ang bawat laro sa loob ng stream ay maaaring may sariling availability window:

- **Available from** — Kailan magiging playable ang laro sa loob ng stream
- **Available until** — Kailan hindi na playable ang laro

Pinapayagan ka nitong mag-drip-release ng mga laro sa tagal ng isang campaign.

## Game Ordering

Piliin kung paano ipapakita ang mga laro sa mga manlalaro:

- **Sequential** — Nakikita ng mga manlalaro ang mga laro sa order na itinakda mo. Kapaki-pakinabang para sa guided journeys o multi-step
  funnels.
- **Random** — Naka-shuffle ang mga laro para sa bawat manlalaro. Kapaki-pakinabang para sa variety packs o A/B testing.

Kapag may higit sa isang laro ang stream, maaaring mag-tap ang mga manlalaro ng **Next Game** pagkatapos matapos para magpatuloy —
walang automatic countdown na magpapasulong sa susunod na laro para sa kanila.

![Mga opsyon sa game ordering](/img/streams/display-order-streams.jpg)

## Lead Capture

I-enable ang CTA form sa stream para mangolekta ng email, name, at phone bago o pagkatapos maglaro. Kapag naka-enable ang Name
at may highscores ang laro, muling ginagamit ang pangalang iyon para sa highscore para hindi
tanungin nang dalawang beses ang mga manlalaro.

Tingnan ang [Lead Capture](/fil/streams/lead-capture/) para sa field options, timing, at kung paano lumalabas ang leads sa
Reports.

## Play Limits

Kontrolin kung ilang beses maaaring laruin ang mga laro:

- **Max plays per user** — Limitahan ang bawat manlalaro sa itinakdang bilang ng plays
- **Max total plays** — I-cap ang kabuuang bilang ng plays sa lahat ng users

![Mga setting sa play limit](/img/streams/play-limit-streams.jpg)

## Analytics Tracking

Sa **Tracking** step ng stream, i-enable ang [Analytics Providers](/fil/connections/analytics-providers/) para mag-load ang browser SDKs (GA4, Mixpanel, PostHog, Amplitude, GTM, Meta Pixel) sa public stream page. Mag-reuse ng org-level configs o gumawa ng bago inline. Hiwalay ito sa DailyPlay [Reports](/fil/sharing/analytics/#reports) at sa server-side [Connections](/fil/connections/overview/).

## UTM Tracking

Sumusuporta ang streams ng UTM parameters para sa marketing attribution:

- `utm_source`
- `utm_medium`
- `utm_campaign`
- `utm_content`
- `utm_term`

Ipinapasa ang mga ito sa iyong webhook events at analytics providers.

![Mga setting sa UTM tracking](/img/streams/utm-streams.jpg)

## Pagbabahagi ng Stream

Ang bawat stream ay may natatanging public URL:

```
https://app.dailyplay.ai/stream/[org-slug]/[stream-slug]
```

Kasama sa sharing options ang:

- **Direct link** — Kopyahin ang stream URL para ibahagi sa pamamagitan ng email, SMS, o social media
- **QR code** — Gumawa ng scannable QR code para sa print materials o in-store displays
- **Embed (iframe)** — I-embed ang stream nang direkta sa iyong website na may responsive 450×800 portrait
  frame
- **JavaScript snippet** — Dynamically insert ang stream player sa anumang webpage

Para sa access control:

- Mangailangan ng [session token](/fil/api/session-tokens/) para sa authenticated access

<video autoplay loop muted playsinline preload="none">
  <source src="/vdo/streams/share-streams.mp4" type="video/mp4" />
</video>

## Connections at Webhooks

Mag-attach ng [connections](/fil/connections/overview/) sa stream para makatanggap ng real-time events kapag
nakikipag-ugnayan ang mga manlalaro sa iyong mga laro. Kasama sa suportadong integrations ang Braze, Zapier, MailChimp, HubSpot,
Salesforce, Segment, at custom webhooks.

Mga karaniwang use case:

- CRM updates sa game completion
- Email triggers sa prize redemption
- Analytics tracking sa buong marketing stack mo
- Lead capture at audience segmentation

Maaari mong i-configure kung aling trigger events ang magfa-fire para sa bawat connection (hal., `play_complete`,
`prize_redemption`).

## I-publish sa LINE

Kumonekta ng [LINE LIFF o MINI App](/fil/connections/line/) sa organization level para makakuha ng permanent
LINE link para sa bawat stream. Idagdag ang link na iyon sa Official Account rich menu o rich message mo para
buksan ng mga manlalaro ang campaign sa loob ng LINE.