diff --git a/.github/actions/load/action.yml b/.github/actions/load/action.yml
index 0102608dbd1..e3fc00dc6ae 100644
--- a/.github/actions/load/action.yml
+++ b/.github/actions/load/action.yml
@@ -24,10 +24,14 @@ runs:
rm -r "$(pwd)"/*
- name: Download artifact
- uses: actions/download-artifact@v5
+ uses: Wandalen/wretry.action@v3.8.0
with:
- path: '${{ runner.temp }}'
- name: '${{ inputs.name }}'
+ action: actions/download-artifact@v7
+ attempt_limit: 2
+ attempt_delay: 10000
+ with: |
+ path: '${{ runner.temp }}'
+ name: '${{ inputs.name }}'
- name: 'Untar working directory'
shell: bash
diff --git a/.github/actions/unzip-artifact/action.yml b/.github/actions/unzip-artifact/action.yml
index 672fae7af85..a05c15a00cd 100644
--- a/.github/actions/unzip-artifact/action.yml
+++ b/.github/actions/unzip-artifact/action.yml
@@ -11,6 +11,9 @@ outputs:
runs:
using: 'composite'
steps:
+ - name: 'Delay waiting for artifacts to be ready'
+ shell: bash
+ run: sleep 10
- name: 'Download artifact'
id: download
uses: actions/github-script@v8
diff --git a/.github/codeql/queries/autogen_fpDOMMethod.qll b/.github/codeql/queries/autogen_fpDOMMethod.qll
index 61555d5852f..164a699e97b 100644
--- a/.github/codeql/queries/autogen_fpDOMMethod.qll
+++ b/.github/codeql/queries/autogen_fpDOMMethod.qll
@@ -7,9 +7,9 @@ class DOMMethod extends string {
DOMMethod() {
- ( this = "toDataURL" and weight = 32.78 and type = "HTMLCanvasElement" )
+ ( this = "toDataURL" and weight = 32.64 and type = "HTMLCanvasElement" )
or
- ( this = "getChannelData" and weight = 1033.52 and type = "AudioBuffer" )
+ ( this = "getChannelData" and weight = 1009.41 and type = "AudioBuffer" )
}
float getWeight() {
diff --git a/.github/codeql/queries/autogen_fpEventProperty.qll b/.github/codeql/queries/autogen_fpEventProperty.qll
index a102dc216aa..25ecd018f0f 100644
--- a/.github/codeql/queries/autogen_fpEventProperty.qll
+++ b/.github/codeql/queries/autogen_fpEventProperty.qll
@@ -7,21 +7,21 @@ class EventProperty extends string {
EventProperty() {
- ( this = "accelerationIncludingGravity" and weight = 195.95 and event = "devicemotion" )
+ ( this = "candidate" and weight = 54.73 and event = "icecandidate" )
or
- ( this = "beta" and weight = 889.02 and event = "deviceorientation" )
+ ( this = "rotationRate" and weight = 63.55 and event = "devicemotion" )
or
- ( this = "gamma" and weight = 318.9 and event = "deviceorientation" )
+ ( this = "accelerationIncludingGravity" and weight = 205.08 and event = "devicemotion" )
or
- ( this = "alpha" and weight = 748.66 and event = "deviceorientation" )
+ ( this = "acceleration" and weight = 64.53 and event = "devicemotion" )
or
- ( this = "candidate" and weight = 48.4 and event = "icecandidate" )
+ ( this = "alpha" and weight = 784.67 and event = "deviceorientation" )
or
- ( this = "acceleration" and weight = 59.13 and event = "devicemotion" )
+ ( this = "beta" and weight = 801.42 and event = "deviceorientation" )
or
- ( this = "rotationRate" and weight = 58.73 and event = "devicemotion" )
+ ( this = "gamma" and weight = 300.01 and event = "deviceorientation" )
or
- ( this = "absolute" and weight = 480.46 and event = "deviceorientation" )
+ ( this = "absolute" and weight = 281.45 and event = "deviceorientation" )
}
float getWeight() {
diff --git a/.github/codeql/queries/autogen_fpGlobalConstructor.qll b/.github/codeql/queries/autogen_fpGlobalConstructor.qll
index 1bd3776448a..8feceaae940 100644
--- a/.github/codeql/queries/autogen_fpGlobalConstructor.qll
+++ b/.github/codeql/queries/autogen_fpGlobalConstructor.qll
@@ -6,15 +6,15 @@ class GlobalConstructor extends string {
GlobalConstructor() {
- ( this = "OfflineAudioContext" and weight = 1249.69 )
+ ( this = "SharedWorker" and weight = 74.12 )
or
- ( this = "SharedWorker" and weight = 78.96 )
+ ( this = "OfflineAudioContext" and weight = 1062.83 )
or
- ( this = "RTCPeerConnection" and weight = 36.22 )
+ ( this = "RTCPeerConnection" and weight = 36.17 )
or
- ( this = "Gyroscope" and weight = 94.31 )
+ ( this = "Gyroscope" and weight = 100.27 )
or
- ( this = "AudioWorkletNode" and weight = 106.77 )
+ ( this = "AudioWorkletNode" and weight = 145.12 )
}
float getWeight() {
diff --git a/.github/codeql/queries/autogen_fpGlobalObjectProperty0.qll b/.github/codeql/queries/autogen_fpGlobalObjectProperty0.qll
index 622b4097377..19489a50149 100644
--- a/.github/codeql/queries/autogen_fpGlobalObjectProperty0.qll
+++ b/.github/codeql/queries/autogen_fpGlobalObjectProperty0.qll
@@ -7,59 +7,57 @@ class GlobalObjectProperty0 extends string {
GlobalObjectProperty0() {
- ( this = "availWidth" and weight = 62.91 and global0 = "screen" )
+ ( this = "availHeight" and weight = 65.33 and global0 = "screen" )
or
- ( this = "availHeight" and weight = 66.51 and global0 = "screen" )
+ ( this = "availWidth" and weight = 61.95 and global0 = "screen" )
or
- ( this = "colorDepth" and weight = 36.87 and global0 = "screen" )
+ ( this = "colorDepth" and weight = 38.5 and global0 = "screen" )
or
- ( this = "pixelDepth" and weight = 43.1 and global0 = "screen" )
+ ( this = "availTop" and weight = 1305.37 and global0 = "screen" )
or
- ( this = "availLeft" and weight = 730.43 and global0 = "screen" )
+ ( this = "plugins" and weight = 15.16 and global0 = "navigator" )
or
- ( this = "availTop" and weight = 1485.89 and global0 = "screen" )
+ ( this = "deviceMemory" and weight = 64.15 and global0 = "navigator" )
or
- ( this = "orientation" and weight = 33.81 and global0 = "screen" )
+ ( this = "getBattery" and weight = 41.16 and global0 = "navigator" )
or
- ( this = "vendorSub" and weight = 1822.98 and global0 = "navigator" )
+ ( this = "webdriver" and weight = 27.64 and global0 = "navigator" )
or
- ( this = "productSub" and weight = 381.55 and global0 = "navigator" )
+ ( this = "permission" and weight = 24.67 and global0 = "Notification" )
or
- ( this = "plugins" and weight = 15.37 and global0 = "navigator" )
+ ( this = "storage" and weight = 35.77 and global0 = "navigator" )
or
- ( this = "mimeTypes" and weight = 15.39 and global0 = "navigator" )
+ ( this = "onLine" and weight = 18.84 and global0 = "navigator" )
or
- ( this = "webkitTemporaryStorage" and weight = 32.87 and global0 = "navigator" )
+ ( this = "pixelDepth" and weight = 45.77 and global0 = "screen" )
or
- ( this = "hardwareConcurrency" and weight = 55.54 and global0 = "navigator" )
+ ( this = "availLeft" and weight = 624.44 and global0 = "screen" )
or
- ( this = "appCodeName" and weight = 167.7 and global0 = "navigator" )
+ ( this = "orientation" and weight = 34.16 and global0 = "screen" )
or
- ( this = "onLine" and weight = 18.14 and global0 = "navigator" )
+ ( this = "vendorSub" and weight = 1873.27 and global0 = "navigator" )
or
- ( this = "webdriver" and weight = 28.99 and global0 = "navigator" )
+ ( this = "productSub" and weight = 381.87 and global0 = "navigator" )
or
- ( this = "keyboard" and weight = 5673.26 and global0 = "navigator" )
+ ( this = "webkitTemporaryStorage" and weight = 37.97 and global0 = "navigator" )
or
- ( this = "mediaDevices" and weight = 123.32 and global0 = "navigator" )
+ ( this = "hardwareConcurrency" and weight = 51.78 and global0 = "navigator" )
or
- ( this = "storage" and weight = 30.23 and global0 = "navigator" )
+ ( this = "appCodeName" and weight = 173.35 and global0 = "navigator" )
or
- ( this = "deviceMemory" and weight = 62.29 and global0 = "navigator" )
+ ( this = "keyboard" and weight = 1722.82 and global0 = "navigator" )
or
- ( this = "mediaCapabilities" and weight = 148.31 and global0 = "navigator" )
+ ( this = "mediaDevices" and weight = 149.07 and global0 = "navigator" )
or
- ( this = "permissions" and weight = 92.01 and global0 = "navigator" )
+ ( this = "mediaCapabilities" and weight = 142.34 and global0 = "navigator" )
or
- ( this = "permission" and weight = 25.87 and global0 = "Notification" )
+ ( this = "permissions" and weight = 89.71 and global0 = "navigator" )
or
- ( this = "getBattery" and weight = 40.45 and global0 = "navigator" )
+ ( this = "webkitPersistentStorage" and weight = 134.12 and global0 = "navigator" )
or
- ( this = "webkitPersistentStorage" and weight = 121.43 and global0 = "navigator" )
+ ( this = "requestMediaKeySystemAccess" and weight = 18.22 and global0 = "navigator" )
or
- ( this = "requestMediaKeySystemAccess" and weight = 22.53 and global0 = "navigator" )
- or
- ( this = "getGamepads" and weight = 275.28 and global0 = "navigator" )
+ ( this = "getGamepads" and weight = 209.55 and global0 = "navigator" )
}
float getWeight() {
diff --git a/.github/codeql/queries/autogen_fpGlobalObjectProperty1.qll b/.github/codeql/queries/autogen_fpGlobalObjectProperty1.qll
index 3be175f2c11..4ba664c998f 100644
--- a/.github/codeql/queries/autogen_fpGlobalObjectProperty1.qll
+++ b/.github/codeql/queries/autogen_fpGlobalObjectProperty1.qll
@@ -8,7 +8,7 @@ class GlobalObjectProperty1 extends string {
GlobalObjectProperty1() {
- ( this = "enumerateDevices" and weight = 361.7 and global0 = "navigator" and global1 = "mediaDevices" )
+ ( this = "enumerateDevices" and weight = 595.56 and global0 = "navigator" and global1 = "mediaDevices" )
}
float getWeight() {
diff --git a/.github/codeql/queries/autogen_fpGlobalTypeProperty0.qll b/.github/codeql/queries/autogen_fpGlobalTypeProperty0.qll
index 489d3f0f3ae..b26e3689251 100644
--- a/.github/codeql/queries/autogen_fpGlobalTypeProperty0.qll
+++ b/.github/codeql/queries/autogen_fpGlobalTypeProperty0.qll
@@ -7,11 +7,11 @@ class GlobalTypeProperty0 extends string {
GlobalTypeProperty0() {
- ( this = "x" and weight = 5673.26 and global0 = "Gyroscope" )
+ ( this = "x" and weight = 4255.55 and global0 = "Gyroscope" )
or
- ( this = "y" and weight = 5673.26 and global0 = "Gyroscope" )
+ ( this = "y" and weight = 4255.55 and global0 = "Gyroscope" )
or
- ( this = "z" and weight = 5673.26 and global0 = "Gyroscope" )
+ ( this = "z" and weight = 4255.55 and global0 = "Gyroscope" )
}
float getWeight() {
diff --git a/.github/codeql/queries/autogen_fpGlobalTypeProperty1.qll b/.github/codeql/queries/autogen_fpGlobalTypeProperty1.qll
index 2f290d30132..084e91305b6 100644
--- a/.github/codeql/queries/autogen_fpGlobalTypeProperty1.qll
+++ b/.github/codeql/queries/autogen_fpGlobalTypeProperty1.qll
@@ -8,7 +8,7 @@ class GlobalTypeProperty1 extends string {
GlobalTypeProperty1() {
- ( this = "resolvedOptions" and weight = 18.94 and global0 = "Intl" and global1 = "DateTimeFormat" )
+ ( this = "resolvedOptions" and weight = 19.01 and global0 = "Intl" and global1 = "DateTimeFormat" )
}
float getWeight() {
diff --git a/.github/codeql/queries/autogen_fpGlobalVar.qll b/.github/codeql/queries/autogen_fpGlobalVar.qll
index debc39522ee..a28f1c7772c 100644
--- a/.github/codeql/queries/autogen_fpGlobalVar.qll
+++ b/.github/codeql/queries/autogen_fpGlobalVar.qll
@@ -6,23 +6,23 @@ class GlobalVar extends string {
GlobalVar() {
- ( this = "devicePixelRatio" and weight = 18.84 )
+ ( this = "devicePixelRatio" and weight = 18.39 )
or
- ( this = "outerWidth" and weight = 104.3 )
+ ( this = "screenX" and weight = 366.36 )
or
- ( this = "outerHeight" and weight = 177.3 )
+ ( this = "screenY" and weight = 320.66 )
or
- ( this = "indexedDB" and weight = 21.68 )
+ ( this = "outerWidth" and weight = 104.67 )
or
- ( this = "screenX" and weight = 411.93 )
+ ( this = "outerHeight" and weight = 154.1 )
or
- ( this = "screenY" and weight = 369.99 )
+ ( this = "screenLeft" and weight = 321.49 )
or
- ( this = "screenLeft" and weight = 344.06 )
+ ( this = "screenTop" and weight = 322.32 )
or
- ( this = "screenTop" and weight = 343.13 )
+ ( this = "indexedDB" and weight = 23.36 )
or
- ( this = "openDatabase" and weight = 128.91 )
+ ( this = "openDatabase" and weight = 146.11 )
}
float getWeight() {
diff --git a/.github/codeql/queries/autogen_fpRenderingContextProperty.qll b/.github/codeql/queries/autogen_fpRenderingContextProperty.qll
index 1f23b1a5057..e508d42520b 100644
--- a/.github/codeql/queries/autogen_fpRenderingContextProperty.qll
+++ b/.github/codeql/queries/autogen_fpRenderingContextProperty.qll
@@ -7,35 +7,35 @@ class RenderingContextProperty extends string {
RenderingContextProperty() {
- ( this = "getImageData" and weight = 55.51 and contextType = "2d" )
+ ( this = "getExtension" and weight = 24.59 and contextType = "webgl" )
or
- ( this = "getParameter" and weight = 30.58 and contextType = "webgl" )
+ ( this = "getParameter" and weight = 28.11 and contextType = "webgl" )
or
- ( this = "measureText" and weight = 46.82 and contextType = "2d" )
+ ( this = "getImageData" and weight = 62.25 and contextType = "2d" )
or
- ( this = "getParameter" and weight = 70.22 and contextType = "webgl2" )
+ ( this = "measureText" and weight = 43.06 and contextType = "2d" )
or
- ( this = "getShaderPrecisionFormat" and weight = 128.74 and contextType = "webgl2" )
+ ( this = "getParameter" and weight = 67.61 and contextType = "webgl2" )
or
- ( this = "getExtension" and weight = 71.78 and contextType = "webgl2" )
+ ( this = "getShaderPrecisionFormat" and weight = 138.74 and contextType = "webgl2" )
or
- ( this = "getContextAttributes" and weight = 190.28 and contextType = "webgl2" )
+ ( this = "getExtension" and weight = 69.66 and contextType = "webgl2" )
or
- ( this = "getSupportedExtensions" and weight = 560.85 and contextType = "webgl2" )
+ ( this = "getContextAttributes" and weight = 201.04 and contextType = "webgl2" )
or
- ( this = "getExtension" and weight = 26.27 and contextType = "webgl" )
+ ( this = "getSupportedExtensions" and weight = 360.36 and contextType = "webgl2" )
or
- ( this = "getShaderPrecisionFormat" and weight = 1175.17 and contextType = "webgl" )
+ ( this = "readPixels" and weight = 24.33 and contextType = "webgl" )
or
- ( this = "getContextAttributes" and weight = 1998.53 and contextType = "webgl" )
+ ( this = "getShaderPrecisionFormat" and weight = 1347.35 and contextType = "webgl" )
or
- ( this = "getSupportedExtensions" and weight = 1388.64 and contextType = "webgl" )
+ ( this = "getContextAttributes" and weight = 2411.38 and contextType = "webgl" )
or
- ( this = "readPixels" and weight = 22.43 and contextType = "webgl" )
+ ( this = "getSupportedExtensions" and weight = 1484.82 and contextType = "webgl" )
or
- ( this = "isPointInPath" and weight = 5210.68 and contextType = "2d" )
+ ( this = "isPointInPath" and weight = 4255.55 and contextType = "2d" )
or
- ( this = "readPixels" and weight = 610.19 and contextType = "webgl2" )
+ ( this = "readPixels" and weight = 1004.16 and contextType = "webgl2" )
}
float getWeight() {
diff --git a/.github/codeql/queries/autogen_fpSensorProperty.qll b/.github/codeql/queries/autogen_fpSensorProperty.qll
index 74bf3e4f988..bfc5c329068 100644
--- a/.github/codeql/queries/autogen_fpSensorProperty.qll
+++ b/.github/codeql/queries/autogen_fpSensorProperty.qll
@@ -6,7 +6,7 @@ class SensorProperty extends string {
SensorProperty() {
- ( this = "start" and weight = 92.53 )
+ ( this = "start" and weight = 105.54 )
}
float getWeight() {
diff --git a/.github/workflows/PR-assignment-deps.yml b/.github/workflows/PR-assignment-deps.yml
index 587555b705c..2d7fce88837 100644
--- a/.github/workflows/PR-assignment-deps.yml
+++ b/.github/workflows/PR-assignment-deps.yml
@@ -20,7 +20,7 @@ jobs:
run: |
npx gulp build
- name: Upload dependencies.json
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v7
with:
name: dependencies.json
path: ./build/dist/dependencies.json
@@ -28,7 +28,7 @@ jobs:
run: |
echo '{ "prNo": ${{ github.event.pull_request.number }} }' >> ${{ runner.temp}}/prInfo.json
- name: Upload PR info
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v7
with:
name: prInfo
path: ${{ runner.temp}}/prInfo.json
diff --git a/.github/workflows/jscpd.yml b/.github/workflows/jscpd.yml
index c3021b2ced7..a4b2a14861f 100644
--- a/.github/workflows/jscpd.yml
+++ b/.github/workflows/jscpd.yml
@@ -56,7 +56,7 @@ jobs:
- name: Upload unfiltered jscpd report
if: always()
- uses: actions/upload-artifact@v6
+ uses: actions/upload-artifact@v7
with:
name: unfiltered-jscpd-report
path: ./jscpd-report.json
@@ -89,7 +89,7 @@ jobs:
- name: Upload filtered jscpd report
if: env.filtered_report_exists == 'true'
- uses: actions/upload-artifact@v6
+ uses: actions/upload-artifact@v7
with:
name: filtered-jscpd-report
path: ./filtered-jscpd-report.json
@@ -119,7 +119,7 @@ jobs:
- name: Upload comment data
if: env.filtered_report_exists == 'true'
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v7
with:
name: comment
path: ${{ runner.temp }}/comment.json
diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml
index 39fdcc4067b..e4a736c0b25 100644
--- a/.github/workflows/linter.yml
+++ b/.github/workflows/linter.yml
@@ -117,7 +117,7 @@ jobs:
- name: Upload comment data
if: ${{ steps.comment.outputs.result == 'true' }}
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v7
with:
name: comment
path: ${{ runner.temp }}/comment.json
diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml
index 1cc6808f29f..924683ec0e0 100644
--- a/.github/workflows/run-tests.yml
+++ b/.github/workflows/run-tests.yml
@@ -71,6 +71,11 @@ on:
BROWSERSTACK_ACCESS_KEY:
description: "Browserstack access key"
+
+permissions:
+ contents: read
+ actions: read
+
jobs:
checkout:
name: "Define chunks"
@@ -201,7 +206,7 @@ jobs:
- name: 'Save coverage result'
if: ${{ steps.coverage.outputs.coverage }}
- uses: actions/upload-artifact@v6
+ uses: actions/upload-artifact@v7
with:
name: coverage-partial-${{inputs.test-cmd}}-${{ matrix.chunk-no }}
path: ./build/coverage
@@ -224,7 +229,7 @@ jobs:
name: ${{ needs.build.outputs.built-key }}
- name: Download coverage results
- uses: actions/download-artifact@v7
+ uses: actions/download-artifact@v8
with:
path: ./build/coverage
pattern: coverage-partial-${{ inputs.test-cmd }}-*
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 1209ca2057d..ed12de000c8 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -8,6 +8,10 @@ on:
pull_request:
types: [opened, synchronize, reopened]
+permissions:
+ contents: read
+ actions: read
+
concurrency:
group: test-${{ github.head_ref || github.ref }}
cancel-in-progress: true
diff --git a/AGENTS.md b/AGENTS.md
index ce4e1353a9a..c340fee56ff 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -45,3 +45,6 @@ This file contains instructions for the Codex agent and its friends when working
- Avoid running Babel over the entire project for incremental test runs.
- Use `gulp serve-and-test --file The retrieved data from Neuwo API is injected into the bid request as OpenRTB (ORTB2)`site.content.data` and
- `user.data`. Full bid request can be inspected in Developer Tools Console under
+ The retrieved data from Neuwo API is injected into the bid request as OpenRTB (ORTB2)
+ Listen to the After clicking "Update", the Neuwo data is stored in the global Note: Event timing tests for multiple Prebid.js events (auctionInit, bidRequested,
+ beforeBidderHttp, bidResponse, auctionEnd) are available in the page source code but are commented out. To
+ enable them, uncomment the timing test section in the JavaScript code. For more information about Neuwo RTD Module configuration and accessing data retrieved from Neuwo API, see modules/neuwoRtdProvider.md.Prebid.js Live Adapter Test
+
+
+
+
+
diff --git a/integrationExamples/gpt/adcluster_video_example.html b/integrationExamples/gpt/adcluster_video_example.html
new file mode 100644
index 00000000000..0a309b24749
--- /dev/null
+++ b/integrationExamples/gpt/adcluster_video_example.html
@@ -0,0 +1,291 @@
+
+
+
+
+ Adcluster Adapter – Outstream Test (AN renderer + IMA fallback)
+
+
+
+
+
+
+
diff --git a/integrationExamples/gpt/insurads.html b/integrationExamples/gpt/insurads.html
new file mode 100644
index 00000000000..92f6b7df8b2
--- /dev/null
+++ b/integrationExamples/gpt/insurads.html
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Prebid.js Test
+ Div-1
+ Basic Prebid.js Example using Neuwo Rtd Provider
Neuwo Rtd Provider Configuration
IAB Content Taxonomy Options
Cache Options
@@ -231,6 +253,14 @@ Cache Options
+ OpenRTB 2.5 Category Fields
+ URL Cleaning Options
IAB Taxonomy Filtering Options
+
+ • ContentTier1: top 1 (≥10% relevance)
+ • ContentTier2: top 2 (≥10% relevance)
+ • ContentTier3: top 3 (≥15% relevance)
+ • AudienceTier3: top 3 (≥20% relevance)
+ • AudienceTier4: top 5 (≥20% relevance)
+ • AudienceTier5: top 7 (≥30% relevance)
+ Ad Examples
Div-1
- Div-1
Div-2
- Div-2
Neuwo Data in Bid Request
- site.content.data and
+ user.data. Full bid request can be inspected in Developer Tools Console under
INFO: NeuwoRTDModule injectIabCategories: post-injection bidsConfig
Neuwo Site Content Data
+ No data yet. Click "Update" to fetch data.
+ Neuwo User Data
+ No data yet. Click "Update" to fetch data.
+ Neuwo OpenRTB 2.5 Category Fields (IAB Content Taxonomy 1.0) Data
+ No data yet. Click "Update" to fetch data (requires enableOrtb25Fields and /v1/iab endpoint).
+ Accessing Neuwo Data in JavaScript
+ bidRequested event to access the enriched ORTB2 data:
+pbjs.onEvent("bidRequested", function(bidRequest) {
+ const ortb2 = bidRequest.ortb2;
+ const neuwoSiteData = ortb2?.site?.content?.data?.find(d => d.name === "www.neuwo.ai");
+ const neuwoUserData = ortb2?.user?.data?.find(d => d.name === "www.neuwo.ai");
+ console.log("Neuwo data:", { siteContent: neuwoSiteData, user: neuwoUserData });
+});
+
+ neuwoData variable. Open
+ Developer Tools Console to see the logged data.