---
title: TV App - Server Side
slug: docs/tv-app-server-side
docTags: 
createdAt: 2024-05-23T10:44:45.990Z
---

![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/L9TT6TB_qEH-czO45Cc86_image.png)

## TLDR

This simple web application simulates a Smart TV application to showcase Adobe Target Server-Side features and is meant for technical discussions.&#x20;

- Access [https://dsn.adobe.com/workspaces/binji-exp-news](https://dsn.adobe.com/workspaces/binji-exp-news) > Binji+ TV
  (known bug: Direct links to the project may get stuck in an authentication loop. Open via Workspace)
- XT Activity can be viewed [here](https://experience.adobe.com/#/@demosystem4/target/activities/activitydetails/Experience-Targeting/silicon_parameterpersonalization).&#x20;
- A/B Test Activity can be viewed [here](https://experience.adobe.com/#/@demosystem4/target/activities/activitydetails/A-B/silicon_test).

## Overview

This simple web application simulates a Smart TV application to showcase Adobe Target Server-Side features and is meant for technical discussions. It resembles a streaming service interface with two recommendation sections:

- **"Recommended for You"&#x20;**- contains the result of **Experience Targeting&#x20;**&#x62;ased on an arbitrary parameter - **interest**. It can be set with buttons on the bottom of the page. These buttons are located outside the main 'TV screen' to highlight that they are not directly from user interaction on the page but from back-end systems. The description below this section states which interest has been used for personalization.
- **"Our pick"&#x20;**- contains **A/B Test&#x20;**&#x72;esults for two experiences with equal chances. The A/B test is intentionally re-calculated on every page refresh to showcase changing results. The description below this section states which experience was selected.

## How do I prove that it is server-side?

Currently, the best method is to show your browser's network traffic to prove that no client-side requests are made to Target, Launch, or any other system. The exact steps will differ slightly for each web browser. For Chrome:

1. Open the Binji+ TV app.
2. Right-click anywhere on the page and select "**Inspect**".
3. In a newly open section (to the right or bottom of the screen) switch to the "**Network**" tab and select the " **Fetch/XHR**" button. This filters out all irrelevant requests.
4. Change interest by clicking buttons on the bottom-left and/or refresh the page.
5. Show the empty network tab to prove no client-side requests are made.

![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/8A2p-NaD4LLZWj5go2ZvM_image.png)

## More Implementation details

- Experience Targeting - after selecting an interest, the page is reloaded, the parameter is sent by the server to Target, and the page is rendered only after receiving the personalized response, thus 'server-side'. These results are acquired with a REST call to Target's Delivery API. The description below this section names an interest that was used in personalization. It also comes from Target. You can view [Target Activity here](https://experience.adobe.com/#/@demosystem4/target/activities/activitydetails/Experience-Targeting/silicon_parameterpersonalization).


![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/QRWrBX6Rv2XJKL4JKL-1i_image.png)

- A/B Test - on every page refresh (including selecting interest) a new A/B test is performed for demo purposes. In the production application, the user session would be passed to Target, to ensure that the given user always receives the same experience. These results are acquired with Target SDK for Node.js. You can view [Target Activity here](https://experience.adobe.com/#/@demosystem4/target/activities/activitydetails/A-B/silicon_test).

![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/r0kRqPNp6uBa2mtk_kaqd_image.png)

