You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: FAQ_POC.md
+1-2Lines changed: 1 addition & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ NOT all the capabilities. Tech Lab will build and support core services to enabl
25
25
**Does the Trusteed Server preclude using third party tags?**
26
26
No, it does not. You should be able to begin migrating certain modules and parts of your content and experience as you go, without a forklift upgrade. We plan to support server side tagging capabilities to enable third party support.
27
27
28
-
**Why are you only using two vendors in the POC?**
28
+
**Why are you only using two partners in the POC?**
29
29
Fastly and Equativ volunteered time and resources to us and they fit the technical needs and requirements for Trusted Server. For the sake of getting to market ASAP, we chose to double down on these two partners. We do not play favorites or have any financial incentive with these two companies and will begin implementing on other partners in the near future. Any ad exchange supporting prebid server requests should already find support. We will prioritize modules for other edge cloud providers based on industry priorities
30
30
31
31
**How will this project be managed?**
@@ -39,4 +39,3 @@ Yes. As long as your managed service provider can separate the edge from the CMS
39
39
40
40
**How will this comply with Privacy regulations?**
41
41
The trusted server will have modules to support Consent Management Providers (CMP) and send the GPP or TCF string as required in the ad request.
Copy file name to clipboardExpand all lines: README.md
+55-34Lines changed: 55 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,29 +1,30 @@
1
-
# Trusted Server
1
+
# Trusted Server
2
2
3
-
:information_source: Trusted Server is an open-source, cloud based orchestration framework and runtime for publishers. It moves code execution and operations that traditionally occurs in browsers (via 3rd party JS) to secure, zero-cold-start [WASM](https://webassembly.org) binaries running in [WASI](https://github.com/WebAssembly/WASI) supported environments. It importantly gives publishers benefits such as: dramatically increasing control over how and who they share their data with (while maintaining user-privacy compliance), increasing revenue from inventory inside cookie restricted or non-JS environments, ability to serve all assets under 1st party context, and provides secure cryptographic functions to ensure trust across the programmatic ad ecosystem.
3
+
:information_source: Trusted Server is an open-source, cloud based orchestration framework and runtime for publishers. It moves code execution and operations that traditionally occurs in browsers (via 3rd party JS) to secure, zero-cold-start [WASM](https://webassembly.org) binaries running in [WASI](https://github.com/WebAssembly/WASI) supported environments. It importantly gives publishers benefits such as: dramatically increasing control over how and who they share their data with (while maintaining user-privacy compliance), increasing revenue from inventory inside cookie restricted or non-JS environments, ability to serve all assets under 1st party context, and provides secure cryptographic functions to ensure trust across the programmatic ad ecosystem.
4
4
5
5
Trusted Server is the new execution layer for the open-web, returning control of 1st party data, security, and overall user-experience back to publishers.
6
6
7
7
At this time, Trusted Server is designed to work with Fastly Compute. Follow these steps to configure Fastly Compute and deploy it.
8
8
9
9
## Getting Started: Edge-Cloud Support on Fastly
10
+
10
11
- Create account at Fastly if you don’t have one - manage.fastly.com
11
-
- Log in to the Fastly control panel.
12
-
- Go to Account > API tokens > Personal tokens.
13
-
- Click Create token
14
-
- Name the Token
15
-
- Choose User Token
16
-
- Choose Global API Access
17
-
- Choose what makes sense for your Org in terms of Service Access
18
-
- Copy key to a secure location because you will not be able to see it again
19
-
20
-
- Create new Compute Service
21
-
- Click Compute and Create Service
22
-
- Click “Create Empty Service” (below main options)
23
-
- Add your domain of the website you’ll be testing or using and click update
24
-
- Click on “Origins” section and add your ad-server / ssp partner information as hostnames (note after you save this information you can select port numbers and TLS on/off)
25
-
- IMPORTANT: when you enter the FQDN or IP ADDR information and click Add you need to enter a “Name” in the first field that will be referenced in your code so something like “my_ad_partner_1”
26
-
-
12
+
- Log in to the Fastly control panel.
13
+
- Go to Account > API tokens > Personal tokens.
14
+
- Click Create token
15
+
- Name the Token
16
+
- Choose User Token
17
+
- Choose Global API Access
18
+
- Choose what makes sense for your Org in terms of Service Access
19
+
- Copy key to a secure location because you will not be able to see it again
20
+
21
+
- Create new Compute Service
22
+
- Click Compute and Create Service
23
+
- Click “Create Empty Service” (below main options)
24
+
- Add your domain of the website you’ll be testing or using and click update
25
+
- Click on “Origins” section and add your ad-server / SSP integration information as hostnames (note after you save this information you can select port numbers and TLS on/off)
26
+
- IMPORTANT: when you enter the FQDN or IP ADDR information and click Add you need to enter a “Name” in the first field that will be referenced in your code so something like “my_ad_integration_1”
27
+
-
27
28
28
29
:warning: With a dev account, Fastly gives you a test domain by default, but you’re also able to create a CNAME to your own domain when you’re ready, along with 2 free TLS certs (non-wildcard). Note that Fastly Compute ONLY accepts client traffic via TLS, though origins and backends can be non-TLS.
29
30
@@ -38,28 +39,33 @@ At this time, Trusted Server is designed to work with Fastly Compute. Follow the
- Set `delete: true` to permanently remove the key (also deactivates it)
@@ -196,9 +212,9 @@ Once configured, the following endpoints are available:
196
212
197
213
## First-Party Endpoints
198
214
199
-
-`/first-party/ad` (GET): returns HTML for a single slot (`slot`, `w`, `h` query params). The server inspects returned creative HTML and rewrites:
200
-
- All absolute images and iframes to `/first-party/proxy?tsurl=<base-url>&<original-query-params>&tstoken=<sig>` (1×1 pixels are detected server‑side heuristically for logging). The `tstoken` is derived from encrypting the full target URL and hashing it.
201
-
-`/third-party/ad` (POST): accepts tsjs ad units and proxies to Prebid Server.
215
+
-`/first-party/ad` (GET): returns HTML for a single slot (`slot`, `w`, `h` query params). The server inspects returned creative HTML and rewrites:
216
+
- All absolute images and iframes to `/first-party/proxy?tsurl=<base-url>&<original-query-params>&tstoken=<sig>` (1×1 pixels are detected server‑side heuristically for logging). The `tstoken` is derived from encrypting the full target URL and hashing it.
217
+
-`/third-party/ad` (POST): accepts tsjs ad units and proxies to Prebid Server.
202
218
-`/first-party/proxy` (GET): unified proxy for resources referenced by creatives.
203
219
- Query params:
204
220
-`tsurl`: Target URL without query (base URL) — required
@@ -223,7 +239,12 @@ Once configured, the following endpoints are available:
223
239
224
240
- Publisher origin proxy (`handle_publisher_request`): retrieves/generates the synthetic ID, stamps the response with `X-Synthetic-*` headers, and sets the `synthetic_id` cookie (Secure, SameSite=Lax) when absent so subsequent creative and click proxies can propagate the identifier.
225
241
226
-
Notes
227
-
- Rewriting uses `lol_html`. Only absolute and protocol‑relative URLs are rewritten; relative URLs are left unchanged.
228
-
- For the proxy endpoint, the base URL is carried in `tsurl`, the original query parameters are preserved individually, and `tstoken` authenticates the reconstructed full URL.
229
-
- Synthetic identifiers are generated by `crates/common/src/synthetic.rs` and are surfaced in three places: publisher responses (headers + cookie), creative proxy target URLs (`synthetic_id` query param), and click redirect URLs. This ensures downstream partners can correlate impressions and clicks without direct third-party cookies.
242
+
Notes
243
+
244
+
- Rewriting uses `lol_html`. Only absolute and protocol‑relative URLs are rewritten; relative URLs are left unchanged.
245
+
- For the proxy endpoint, the base URL is carried in `tsurl`, the original query parameters are preserved individually, and `tstoken` authenticates the reconstructed full URL.
246
+
- Synthetic identifiers are generated by `crates/common/src/synthetic.rs` and are surfaced in three places: publisher responses (headers + cookie), creative proxy target URLs (`synthetic_id` query param), and click redirect URLs. This ensures downstream integrations can correlate impressions and clicks without direct third-party cookies.
247
+
248
+
## Integration Modules
249
+
250
+
- See [`docs/integration_guide.md`](docs/integration_guide.md) for the full integration module guide, covering configuration, proxy routing, HTML shim hooks, and the `testlight` example implementation.
0 commit comments