Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[APPROVED]: Supplemental TP ID for addressability #92

Open
wants to merge 66 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
878f737
Brightcom adapter: remove adapters (#10925)
prBigBrother Apr 26, 2024
b95d7ec
Update ooloAnalyticsAdapter.js (#11406)
patmmccann May 1, 2024
cf2cedf
Delete integrationExamples/gpt/creative_rendering.html (#11405)
patmmccann May 1, 2024
6214aa7
Prebid 9.0: delete empty file (#11401)
patmmccann May 6, 2024
2ad6437
Sovrn Bid Adapter: Remove Sovrn Analytics Adapter (#11147)
ikagotso May 6, 2024
886f244
Merge branch 'master' into 9.0
dgirardi May 7, 2024
3749ca7
removed adomik connectors (app sunsetted) (#11453)
pfaure May 7, 2024
10d8c88
Merge branch 'master' into 9.0
dgirardi May 7, 2024
487d86f
Prebid 9: remove USP consent string from consent metadata (#11407)
patmmccann May 7, 2024
0005917
OpenX Bid Adapter: remove transformBidParams (#11458)
bwschmidt May 8, 2024
e4e09ea
Merge branch 'master' into 9.0
dgirardi May 9, 2024
8fa2791
PulsePoint bid adapter: Removing deprecated method (#11473)
anand-venkatraman May 10, 2024
da27177
Core: export only public interface for NPM consumers (#11474)
dgirardi May 13, 2024
f798bf2
Merge branch 'master' into 9.0
dgirardi May 13, 2024
66e3887
Criteo bid adapter: Remove references to fast bid (#11435)
leonardlabat May 13, 2024
d80c766
Prebid 9: Dead adapters (#11408)
patmmccann May 13, 2024
1b80561
Enable 1PID addressability by default (#11369)
carlosfelix May 13, 2024
d0c4ee1
Update adloader.js
patmmccann May 14, 2024
183515d
PB9: fix yukta analytics methods (#11475)
patmmccann May 14, 2024
a749d55
Prebid 9: Deprecate native sendTargetingKeys/types, validate asset ID…
dgirardi May 15, 2024
06613c4
Merge branch 'master' into 9.0
dgirardi May 15, 2024
7545234
Merge branch 'master' into 9.0
dgirardi May 16, 2024
0316c79
Prebid 9: change auctionDelay default to 500 (#11498)
dgirardi May 16, 2024
7163064
pirIdSystem: Module delete (#11518)
decemberWP May 20, 2024
6b23584
pb9: Organize adloader.js (#11489)
patmmccann May 20, 2024
4af2afb
Merge branch 'master' into 9.0
dgirardi May 20, 2024
f34f6b1
Rename yahoosspBidAdapter to yahooAdsBidAdapter for Prebid 9 (#11525)
DeepthiNeeladri May 21, 2024
45b5fdc
Prebid 9: rename GDPR modules (#11521)
dgirardi May 21, 2024
8559070
✨ Converted Criteo bid adapter to oRTB (#11486)
Ticki84 May 21, 2024
a14eec2
Merge branch 'master' into 9.0
dgirardi May 21, 2024
5c01f48
fix consentManagement import
dgirardi May 21, 2024
4cb734e
Prebid 9: add deprecation warning for pbadslot (#11537)
dgirardi May 22, 2024
6a539d3
rename bizzclick to blasto (#11512)
BizzClick May 22, 2024
6d5e416
Prebid 9: remove support for GPP 1.0 (#11461)
dgirardi May 22, 2024
b551117
Prebid 9: Removing innerText & adding eslint rule (#11531)
mkomorski May 22, 2024
16d1ea6
Prebid 9: stop supporting top level app/site/device FPD config (#11522)
dgirardi May 23, 2024
f9139d1
Prebid 9: stop using transformBidParams (#11499)
dgirardi May 23, 2024
df599a5
Merge branch 'master' into 9.0
dgirardi May 23, 2024
bca27f4
Prebid 9: gptPreAuction: use GPID by default (#11551)
dgirardi May 23, 2024
bb81d4f
Prebid 9.0: floors enforcement (#11586)
patmmccann May 28, 2024
adea89f
Prebid 9: Clean up remaining transformBidParams dead code (#11585)
patmmccann May 28, 2024
e5d134b
Prebid 9.0: del parrable (#11589)
patmmccann May 28, 2024
375e8d9
Prebid 9: TCF: use publisher consent for vendorless modules (#11536)
dgirardi May 28, 2024
9d02193
Prebid 9: Drop bbw (#11591)
patmmccann May 28, 2024
2f7e2f7
Merge branch 'master' into 9.0
dgirardi May 28, 2024
0076ca7
SirData RTD provider: use textContent instead of innerText
dgirardi May 28, 2024
69da34f
Prebid 9: rename utiqSystem to utiqIdSystem (#11593)
dgirardi May 28, 2024
5ea9f6e
ImproveDigital Bid Adapter: Breaking Parameter Changes for PB9 (#11067)
cciocov May 28, 2024
980c68a
Prebid 9.0: fix consent getconfigs (#11592)
patmmccann May 28, 2024
0280ebb
Prebid 9.0: no harvest eids (#11588)
patmmccann May 29, 2024
a72ef9f
Yahoo Bid Adapter: adding plcmt param support (#11569)
DeepthiNeeladri May 29, 2024
aaa6d37
11071 Prevent Events system import in bidders (#11548)
mkomorski May 29, 2024
19b7efc
Openweb bid adapter: Make placementId parameter mandatory (#11605)
zkosanovic May 29, 2024
d78f405
Update PR_REVIEW.md (#11606)
patmmccann May 29, 2024
303da6a
Merge branch 'master' into 9.0
dgirardi May 29, 2024
69c6160
9.0 del idward (#11611)
patmmccann May 29, 2024
e3f7477
Prebid 9: update PBS tmax default (#11609)
dgirardi May 29, 2024
7ae1d8c
Prebid 9.0: del mmp (#11621)
patmmccann May 30, 2024
f87f6a1
9.0: undocumented analytics adapters (#11590)
patmmccann May 30, 2024
0cc0999
Merge branch 'master' into 9.0
dgirardi May 30, 2024
4102afc
Update adloader.js
patmmccann May 30, 2024
4cbb8d4
9.0 : Change Prebidmanager Analytics to AsteriobidPbm (#11624)
ChrisHuie May 30, 2024
7619d0a
appnexusBidAdapter 9.0 - remove transform bid params and create anPsp…
jsnellbaker May 30, 2024
3416799
Update index.js (#11625)
patmmccann May 30, 2024
1b3c23b
Update adloader.js
patmmccann May 30, 2024
a0fc800
33x supplemental id for addressability
carlosfelix May 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ module.exports = {
files: key + '/**/*.js',
rules: {
'prebid/validate-imports': ['error', allowedModules[key]],
'prebid/no-innerText': ['error', allowedModules[key]],
'no-restricted-globals': [
'error',
{
Expand All @@ -95,5 +96,15 @@ module.exports = {
// code in other packages (such as plugins/eslint) is not "seen" by babel and its parser will complain.
files: 'plugins/*/**/*.js',
parser: 'esprima'
},
{
files: '**BidAdapter.js',
rules: {
'no-restricted-imports': [
'error', {
patterns: ["**/src/events.js"]
}
]
}
}])
};
12 changes: 7 additions & 5 deletions PR_REVIEW.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,20 +51,21 @@ Follow steps above for general review process. In addition, please verify the fo
- If the adapter being submitted is an alias type, check with the bidder contact that is being aliased to make sure it's allowed.
- All bidder parameter conventions must be followed:
- Video params must be read from AdUnit.mediaTypes.video when available; however bidder config can override the ad unit.
- First party data must be read from [getConfig('ortb2');](https://docs.prebid.org/dev-docs/publisher-api-reference/setConfig.html#setConfig-fpd).
- First party data must be read from the bid request object: bidrequest.ortb2
- Adapters that accept a floor parameter must also support the [floors module](https://docs.prebid.org/dev-docs/modules/floors.html) -- look for a call to the `getFloor()` function.
- Adapters cannot accept an schain parameter. Rather, they must look for the schain parameter at bidRequest.schain.
- The bidderRequest.refererInfo.referer must be checked in addition to any bidder-specific parameter.
- Page position must come from bidrequest.mediaTypes.banner.pos or bidrequest.mediaTypes.video.pos
- Global OpenRTB fields should come from [getConfig('ortb2');](https://docs.prebid.org/dev-docs/publisher-api-reference/setConfig.html#setConfig-fpd):
- Eids object is to be preferred to Userids object in the bid request, as the userid object may be removed in a future version
- Global OpenRTB fields should come from bidrequest.ortb2
- bcat, battr, badv
- Impression-specific OpenRTB fields should come from bidrequest.ortb2imp
- instl
- Below are some examples of bidder specific updates that should require docs update (in their dev-docs/bidders/BIDDER.md file):
- If they support the GDPR consentManagement module and TCF1, add `gdpr_supported: true`
- If they support the GDPR consentManagement module and TCF2, add `tcf2_supported: true`
- If they support the TCF consentManagementTcf module and TCF2, add `tcf2_supported: true`
- If they support the US Privacy consentManagementUsp module, add `usp_supported: true`
- If they support one or more userId modules, add `userId: (list of supported vendors)`
- If they support the GPP consentManagementGpp module, add `gpp_supported: true`
- If they support one or more userId modules, add `userId: (list of supported vendors) or (all)`
- If they support video and/or native mediaTypes add `media_types: video, native`. Note that display is added by default. If you don't support display, add "no-display" as the first entry, e.g. `media_types: no-display, native`
- If they support COPPA, add `coppa_supported: true`
- If they support SChain, add `schain_supported: true`
Expand Down Expand Up @@ -121,6 +122,7 @@ Follow steps above for general review process. In addition:
- Confirm that the module
- is not loading external code. If it is, escalate to the #prebid-js Slack channel.
- is reading `config` from the function signature rather than calling `getConfig`.
- Is practicing reasonable data minimization, eg not sending all eids over the wire without publisher whitelisting
- is sending data to the bid request only as either First Party Data or in bidRequest.rtd.RTDPROVIDERCODE.
- is making HTTPS requests as early as possible, but not more often than needed.
- doesn't force bid adapters to load additional code.
Expand Down
15 changes: 0 additions & 15 deletions integrationExamples/gpt/creative_rendering.html

This file was deleted.

112 changes: 0 additions & 112 deletions integrationExamples/gpt/idward_segments_example.html

This file was deleted.

16 changes: 16 additions & 0 deletions libraries/appnexusUtils/anUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,22 @@ export function convertCamelToUnderscore(value) {
}).replace(/^_/, '');
}

export const appnexusAliases = [
{ code: 'appnexusAst', gvlid: 32 },
{ code: 'emxdigital', gvlid: 183 },
{ code: 'emetriq', gvlid: 213 },
{ code: 'pagescience', gvlid: 32 },
{ code: 'gourmetads', gvlid: 32 },
{ code: 'matomy', gvlid: 32 },
{ code: 'featureforward', gvlid: 32 },
{ code: 'oftmedia', gvlid: 32 },
{ code: 'adasta', gvlid: 32 },
{ code: 'beintoo', gvlid: 618 },
{ code: 'projectagora', gvlid: 1032 },
{ code: 'uol', gvlid: 32 },
{ code: 'adzymic', gvlid: 723 },
];

/**
* Creates an array of n length and fills each item with the given value
*/
Expand Down
2 changes: 2 additions & 0 deletions libraries/ortb2.5Translator/translator.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import {deepAccess, deepSetValue, logError} from '../../src/utils.js';

export const EXT_PROMOTIONS = [
'device.sua',
'source.schain',
'regs.gdpr',
'regs.us_privacy',
'regs.gpp',
'regs.gpp_sid',
'user.consent',
'user.eids'
];
Expand Down
12 changes: 1 addition & 11 deletions libraries/pbsExtensions/processors/params.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,7 @@
import {auctionManager} from '../../../src/auctionManager.js';
import adapterManager from '../../../src/adapterManager.js';
import {deepSetValue} from '../../../src/utils.js';

export function setImpBidParams(
imp, bidRequest, context,
{adUnit, bidderRequests, index = auctionManager.index, bidderRegistry = adapterManager.bidderRegistry} = {}) {
export function setImpBidParams(imp, bidRequest) {
let params = bidRequest.params;
const adapter = bidderRegistry[bidRequest.bidder];
if (adapter && adapter.getSpec().transformBidParams) {
adUnit = adUnit || index.getAdUnit(bidRequest);
bidderRequests = bidderRequests || [context.bidderRequest];
params = adapter.getSpec().transformBidParams(params, true, adUnit, bidderRequests);
}
if (params) {
deepSetValue(
imp,
Expand Down
4 changes: 1 addition & 3 deletions modules/.submodules.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
"adtelligentIdSystem",
"adqueryIdSystem",
"amxIdSystem",
"britepoolIdSystem",
"connectIdSystem",
"czechAdIdSystem",
"criteoIdSystem",
Expand Down Expand Up @@ -37,15 +36,14 @@
"novatiqIdSystem",
"oneKeyIdSystem",
"operaadsIdSystem",
"parrableIdSystem",
"pubProvidedIdSystem",
"publinkIdSystem",
"quantcastIdSystem",
"sharedIdSystem",
"tapadIdSystem",
"teadsIdSystem",
"tncIdSystem",
"utiqSystem",
"utiqIdSystem",
"utiqMtpIdSystem",
"uid2IdSystem",
"euidIdSystem",
Expand Down
2 changes: 1 addition & 1 deletion modules/33acrossAnalyticsAdapter.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ by default when Prebid is downloaded. If you are compiling from source,
this might look something like:

```sh
gulp bundle --modules=gptPreAuction,consentManagement,consentManagementGpp,consentManagementUsp,enrichmentFpdModule,gdprEnforcement,33acrossBidAdapter,33acrossIdSystem,33acrossAnalyticsAdapter
gulp bundle --modules=gptPreAuction,consentManagementTcf,consentManagementGpp,consentManagementUsp,tcfControl,33acrossBidAdapter,33acrossIdSystem,33acrossAnalyticsAdapter
```

Enable the 33Across Analytics Adapter in Prebid.js using the analytics provider `33across`
Expand Down
27 changes: 20 additions & 7 deletions modules/33acrossIdSystem.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ const CALLER_NAME = 'pbjs';
const GVLID = 58;

const STORAGE_FPID_KEY = '33acrossIdFp';
const STORAGE_TPID_KEY = '33acrossIdTp';
const DEFAULT_1PID_SUPPORT = true;
const DEFAULT_TPID_SUPPORT = true;

export const storage = getStorageManager({ moduleType: MODULE_TYPE_UID, moduleName: MODULE_NAME });

Expand All @@ -46,7 +49,8 @@ function calculateResponseObj(response) {

return {
envelope: response.data.envelope,
fp: response.data.fp
fp: response.data.fp,
tp: response.data.tp
};
}

Expand Down Expand Up @@ -83,6 +87,11 @@ function calculateQueryStringParams(pid, gdprConsentData, storageConfig) {
params.fp = encodeURIComponent(fp);
}

const tp = getStoredValue(STORAGE_TPID_KEY, storageConfig);
if (tp) {
params.tp = encodeURIComponent(tp);
}

return params;
}

Expand Down Expand Up @@ -115,10 +124,10 @@ function getStoredValue(key, storageConfig = {}) {
}
}

function handleFpId(fpId, storageConfig = {}) {
fpId
? storeValue(STORAGE_FPID_KEY, fpId, storageConfig)
: deleteFromStorage(STORAGE_FPID_KEY);
function handleSupplementalId(key, id, storageConfig = {}) {
id
? storeValue(key, id, storageConfig)
: deleteFromStorage(key);
}

/** @type {Submodule} */
Expand Down Expand Up @@ -164,7 +173,7 @@ export const thirthyThreeAcrossIdSubmodule = {
return;
}

const { pid, storeFpid, apiUrl = API_URL } = params;
const { pid, storeFpid = DEFAULT_1PID_SUPPORT, storeTpid = DEFAULT_TPID_SUPPORT, apiUrl = API_URL } = params;

return {
callback(cb) {
Expand All @@ -183,7 +192,11 @@ export const thirthyThreeAcrossIdSubmodule = {
}

if (storeFpid) {
handleFpId(responseObj.fp, storageConfig);
handleSupplementalId(STORAGE_FPID_KEY, responseObj.fp, storageConfig);
}

if (storeTpid) {
handleSupplementalId(STORAGE_TPID_KEY, responseObj.tp, storageConfig);
}

cb(responseObj.envelope);
Expand Down
3 changes: 2 additions & 1 deletion modules/33acrossIdSystem.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,5 @@ The following settings are available in the `params` property in `userSync.userI
| Param name | Scope | Type | Description | Example |
| --- | --- | --- | --- | --- |
| pid | Required | String | Partner ID provided by 33Across | `"0010b00002GYU4eBAH"` |
| storeFpid | Optional | Boolean | Indicates whether a supplemental first-party ID may be stored to improve addressability | `false` (default) or `true` |
| storeFpid | Optional | Boolean | Indicates whether a supplemental first-party ID may be stored to improve addressability, this feature is enabled by default | `true` (default) or `false` |
| storeTpid | Optional | Boolean | Indicates whether a supplemental third-party ID may be stored to improve addressability, this feature is enabled by default | `true` (default) or `false` |
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js';
/**
* prebidmanagerAnalyticsAdapter.js - analytics adapter for prebidmanager
*/
export const storage = getStorageManager({moduleType: MODULE_TYPE_ANALYTICS, moduleName: 'prebidmanager'});
export const storage = getStorageManager({moduleType: MODULE_TYPE_ANALYTICS, moduleName: 'asteriobidpbm'});
const DEFAULT_EVENT_URL = 'https://endpt.prebidmanager.com/endpoint';
const analyticsType = 'endpoint';
const analyticsName = 'Prebid Manager Analytics';
const analyticsName = 'Asteriobid PBM Analytics';

let ajax = ajaxBuilder(0);

Expand Down
9 changes: 9 additions & 0 deletions modules/AsteriobidPbmAnalyticsAdapter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Overview

Module Name: Asteriobid PBM Analytics Adapter
Module Type: Analytics Adapter
Maintainer: admin@prebidmanager.com

# Description

Analytics adapter for <a href="http://prebidmanager.com/">Asteriobid PBM</a>. Contact admin@prebidmanager.com for information.
2 changes: 1 addition & 1 deletion modules/adhashBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ function brandSafety(badWords, maxScore) {
.replaceAll(/\s\s+/g, ' ')
.toLowerCase()
.trim();
const content = window.top.document.body.innerText.toLowerCase();
const content = window.top.document.body.textContent.toLowerCase();
// \p{L} matches a single unicode code point in the category 'letter'. Matches any kind of letter from any language.
const regexp = new RegExp('[\\p{L}]+', 'gu');
const wordsMatched = content.match(regexp);
Expand Down
Loading