-
Notifications
You must be signed in to change notification settings - Fork 3.9k
/
callout-vendors.js
262 lines (255 loc) · 15.4 KB
/
callout-vendors.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
import {jsonConfiguration} from '#core/types/object/json';
import {getMode} from '../../mode';
//////////////////////////////////////////////////////////////////
// //
// IMPORTANT: All keys in RTC_VENDORS must be lowercase //
// otherwise the vendor endpoint will not be used. //
// //
//////////////////////////////////////////////////////////////////
// Note: disableKeyAppend is an option specifically for DoubleClick's
// implementation of RTC. It prevents the vendor ID from being
// appended onto each key of the RTC response, for each vendor.
// This appending is done to prevent a collision case during merge
// that would cause one RTC response to overwrite another if they
// share key names.
/** @typedef {{
url: string,
macros: Array<string>,
errorReportingUrl: (string|undefined),
disableKeyAppend: boolean}} */
let RtcVendorDef;
/** @const {!Object<string, RtcVendorDef>} */
const RTC_VENDORS = jsonConfiguration({
////////////////////////////////////////////////////////////////////
// //
// !!! IMPORTANT NOTE !!! //
// //
// If you are adding a new vendor config object to this object, //
// make sure to also update the RTC documentation in these two //
// files under "supported vendors". //
// https://github.com/ampproject/amphtml/blob/main/extensions/amp-a4a/rtc-documentation.md
// https://github.com/ampproject/amphtml/blob/main/extensions/amp-a4a/rtc-publisher-implementation-guide.md
////////////////////////////////////////////////////////////////////
// Add vendors here
admax: {
url: 'https://prebid.admaxmedia.io/openrtb2/amp?tag_id=PLACEMENT_ID&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&slot=ATTR(data-slot)&targeting=TGT&curl=CANONICAL_URL&timeout=TIMEOUT&adcid=ADCID&purl=HREF&gdpr_consent=CONSENT_STRING&account=ACCOUNT_ID',
macros: ['PLACEMENT_ID', 'CONSENT_STRING', 'ACCOUNT_ID'],
disableKeyAppend: true,
},
adpushup: {
url: 'https://amp.adpushup.com/prebidserver/openrtb2/amp?tag_id=TAG_ID&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&slot=ATTR(data-slot)&curl=CANONICAL_URL&gdpr_consent=CONSENT_STRING&adc=ADCID&purl=HREF',
macros: ['TAG_ID', 'CONSENT_STRING'],
disableKeyAppend: true,
},
andbeyond: {
url: 'https://prebid.andbeyond.media/amp.php?tag_id=TAG_ID',
macros: ['TAG_ID'],
disableKeyAppend: true,
},
aps: {
url: 'https://aax.amazon-adsystem.com/e/dtb/bid?src=PUB_ID&pubid=PUB_UUID&=1&u=CANONICAL_URL&slots=%5B%7B%22sd%22%3A%22ATTR(data-slot)%22%2C%22s%22%3A%5B%22ATTR(width)xATTR(height)%22%5D%2C%22ms%22%3A%22ATTR(data-multi-size)%22%7D%5D&pj=PARAMS&gdprc=CONSENT_STRING',
macros: ['PUB_ID', 'PARAMS', 'PUB_UUID', 'CONSENT_STRING'],
disableKeyAppend: true,
},
automatad: {
url: 'https://pbs01.automatad.com/openrtb2/amp?tag_id=TAG_ID',
macros: ['TAG_ID'],
disableKeyAppend: true,
},
browsi: {
url: 'https://amp.browsiprod.com/predict?pvid=PAGEVIEWID_64&ot=ELEMENT_POS&ul=SCROLL_TOP&pl=PAGE_HEIGHT&bks=BKG_STATE&pk=PUB_KEY&sk=SITE_KEY&h=ATTR(height)&adix=ATTR(data-amp-slot-index)&ref=REFERRER&url=HREF',
macros: ['PUB_KEY', 'SITE_KEY'],
errorReportingUrl:
'https://events.browsiprod.com/events/amp?e=ERROR_TYPE&h=HREF&et=predict_error',
disableKeyAppend: true,
},
criteo: {
url: 'https://bidder.criteo.com/amp/rtc?zid=ZONE_ID&nid=NETWORK_ID&psubid=PUBLISHER_SUB_ID&lir=LINE_ITEM_RANGES&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&slot=ATTR(data-slot)&timeout=TIMEOUT&curl=CANONICAL_URL&href=HREF&cst=CONSENT_STATE&cst_str=CONSENT_STRING&cst_type=CONSENT_METADATA(consentStringType)',
macros: [
'ZONE_ID',
'NETWORK_ID',
'PUBLISHER_SUB_ID',
'LINE_ITEM_RANGES',
'CONSENT_STATE',
'CONSENT_STRING',
],
disableKeyAppend: true,
},
freestar: {
url: 'https://prebid-amp.pub.network/openrtb2/amp?tag_id=TAG_ID&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&slot=ATTR(data-slot)&targeting=TGT&curl=CANONICAL_URL&timeout=TIMEOUT&adc=ADCID&purl=HREF&gdpr_consent=CONSENT_STRING&account=ACCOUNT_ID',
macros: ['TAG_ID', 'CONSENT_STRING', 'ACCOUNT_ID'],
disableKeyAppend: true,
},
future: {
url: 'https://ads.servebom.com/amp?adunit=ADUNIT&gdpr_consent=CONSENT_STRING',
macros: ['ADUNIT', 'CONSENT_STRING'],
disableKeyAppend: true,
},
glxm: {
url: 'https://pbserver.galaxiemedia.fr/openrtb2/amp?tag_id=REQUEST_ID&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&slot=ATTR(data-slot)&targeting=TGT&curl=CANONICAL_URL&timeout=TIMEOUT&adc=ADCID&purl=HREF&gdpr_consent=CONSENT_STRING&account=ACCOUNT_ID',
macros: ['REQUEST_ID', 'CONSENT_STRING', 'ACCOUNT_ID'],
disableKeyAppend: true,
},
highfivve: {
url: 'https://prebid-server.h5v.eu/openrtb2/amp?tag_id=TAG_ID&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&slot=ATTR(data-slot)&targeting=TGT&curl=CANONICAL_URL&timeout=TIMEOUT&adc=ADCID&purl=HREF&gdpr_consent=CONSENT_STRING&account=ACCOUNT_ID',
macros: ['TAG_ID', 'CONSENT_STRING', 'ACCOUNT_ID'],
disableKeyAppend: true,
},
hubvisor: {
url: 'https://pbs.hubvisor.io/openrtb2/amp?tag_id=PLACEMENT_ID&slot=ATTR(data-slot)&targeting=TGT&curl=CANONICAL_URL&timeout=TIMEOUT&adcid=ADCID&purl=HREF&gdpr_consent=CONSENT_STRING',
macros: ['PLACEMENT_ID', 'CONSENT_STRING'],
disableKeyAppend: true,
},
indexexchange: {
url: 'https://amp.casalemedia.com/amprtc?v=1&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&s=SITE_ID&p=CANONICAL_URL&consent_state=CONSENT_STATE&consent_string=CONSENT_STRING',
macros: ['SITE_ID', 'CONSENT_STATE', 'CONSENT_STRING'],
disableKeyAppend: true,
},
kargo: {
url: 'https://krk.kargo.com/api/v1/amprtc?slot=SLOT_ID&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&pslot=ATTR(data-slot)&pvid=PAGEVIEWID&targeting=TGT&curl=CANONICAL_URL&timeout=TIMEOUT&acid=ADCID&purl=HREF',
macros: ['SLOT_ID'],
errorReportingUrl:
'https://krk.kargo.com/api/v1/event/amprtc-error?error_type=ERROR_TYPE&url=HREF',
disableKeyAppend: true,
},
lotame: {
url: 'https://ad.crwdcntrl.net/5/pe=y/c=CLIENT_ID/an=AD_NETWORK/ma=MAX_AUDIENCES',
macros: ['CLIENT_ID', 'AD_NETWORK', 'MAX_AUDIENCES'],
disableKeyAppend: true,
},
medianet: {
url: 'https://amprtc.media.net/rtb/getrtc?cid=CID&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&slot=ATTR(data-slot)&tgt=TGT&curl=CANONICAL_URL&to=TIMEOUT&purl=HREF&cste=CONSENT_STATE&cstr=CONSENT_STRING&adcid=ADCID&dmsv=ATTR(data-multi-size-validation)&ep=ELEMENT_POS&st=SCROLL_TOP&ph=PAGE_HEIGHT&bks=BKG_STATE&ref=REFERRER&dj=ATTR(data-json)',
macros: ['CID'],
errorReportingUrl:
'https://qsearch-a.akamaihd.net/log?logid=kfk&evtid=projectevents&project=amprtc_error&error=ERROR_TYPE&rd=HREF',
disableKeyAppend: true,
},
mediasquare: {
url: 'https://pbs-front.mediasquare.fr/msq_prebid?owner=OWNER&code=CODE&sizes=ATTR(data-multi-size)&adunit=ATTR(data-slot)&referer=HREF&gdpr_consent=CONSENT_STRING',
macros: ['OWNER', 'CODE', 'CONSENT_STRING'],
disableKeyAppend: true,
},
navegg: {
url: 'https://usr.navdmp.com/usr?acc=NVG_ACC&wst=0&v=10',
macros: ['NVG_ACC'],
disableKeyAppend: true,
},
newspassid: {
url: 'https://bidder.newspassid.com/openrtb2/amp?tag_id=TAG_ID&placement_id=PLACEMENT_ID&gdpr_consent=CONSENT_STRING&ad_unit_code=AD_UNIT_CODE&site_id=SITE_ID&publisher_id=PUBLISHER_ID&custom_data=TGT&pubcid=PUBCID&adcid=ADCID&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&slot=ATTR(data-slot)&curl=CANONICAL_URL&timeout=TIMEOUT&purl=HREF',
macros: [
'TAG_ID',
'PLACEMENT_ID',
'SITE_ID',
'PUBLISHER_ID',
'AD_UNIT_CODE',
'PUBCID',
],
errorReportingUrl:
'https://bidder.newspassid.com/amp_error?err=ERROR_TYPE&url=HREF',
disableKeyAppend: true,
},
nexx360: {
url: 'https://pbs.nexx360.io/openrtb2/amp?tag_id=TAG_ID&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&slot=ATTR(data-slot)&targeting=TGT&curl=CANONICAL_URL&timeout=TIMEOUT&adc=ADCID&purl=HREF&gdpr_consent=CONSENT_STRING&account=ACCOUNT_ID',
macros: ['TAG_ID', 'CONSENT_STRING', 'ACCOUNT_ID'],
disableKeyAppend: true,
},
openwrap: {
// PubMatic OpenWrap
url: 'https://ow.pubmatic.com/amp?v=1&w=ATTR(width)&h=ATTR(height)&ms=ATTR(data-multi-size)&auId=ATTR(data-slot)&purl=HREF&pubId=PUB_ID&profId=PROFILE_ID&consent_string=CONSENT_STRING&gdpr_applies=CONSENT_METADATA(gdprApplies)&addtl_consent=CONSENT_METADATA(additionalConsent)&consent_type=CONSENT_METADATA(consentStringType)',
macros: ['PUB_ID', 'PROFILE_ID', 'CONSENT_STRING'],
errorReportingUrl: 'https://ow.pubmatic.com/amp_error?e=ERROR_TYPE&h=HREF',
disableKeyAppend: true,
},
ozone: {
url: 'https://elb.the-ozone-project.com/openrtb2/amp?tag_id=TAG_ID&placement_id=PLACEMENT_ID&gdpr_consent=CONSENT_STRING&ad_unit_code=AD_UNIT_CODE&site_id=SITE_ID&publisher_id=PUBLISHER_ID&custom_data=TGT&pubcid=PUBCID&adcid=ADCID&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&slot=ATTR(data-slot)&curl=CANONICAL_URL&timeout=TIMEOUT&purl=HREF',
macros: [
'TAG_ID',
'PLACEMENT_ID',
'SITE_ID',
'PUBLISHER_ID',
'AD_UNIT_CODE',
'PUBCID',
],
errorReportingUrl:
'https://elb.the-ozone-project.com/amp_error?err=ERROR_TYPE&url=HREF',
disableKeyAppend: true,
},
prebidappnexus: {
url: 'https://prebid.adnxs.com/pbs/v1/openrtb2/amp?tag_id=PLACEMENT_ID&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&slot=ATTR(data-slot)&targeting=TGT&curl=CANONICAL_URL&timeout=TIMEOUT&adcid=ADCID&purl=HREF&gdpr_consent=CONSENT_STRING&account=ACCOUNT_ID&gdpr_applies=CONSENT_METADATA(gdprApplies)&addtl_consent=CONSENT_METADATA(additionalConsent)&consent_type=CONSENT_METADATA(consentStringType)',
macros: ['PLACEMENT_ID', 'CONSENT_STRING', 'ACCOUNT_ID'],
disableKeyAppend: true,
},
prebidappnexuspsp: {
url: 'https://ib.adnxs.com/prebid/amp?tag_id=PLACEMENT_ID&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&slot=ATTR(data-slot)&targeting=TGT&curl=CANONICAL_URL&timeout=TIMEOUT&adcid=ADCID&purl=HREF&gdpr_consent=CONSENT_STRING&account=ACCOUNT_ID&gdpr_applies=CONSENT_METADATA(gdprApplies)&addtl_consent=CONSENT_METADATA(additionalConsent)&consent_type=CONSENT_METADATA(consentStringType)',
macros: ['PLACEMENT_ID', 'CONSENT_STRING', 'ACCOUNT_ID'],
disableKeyAppend: true,
},
prebidflux: {
url: 'https://prebid-server.flux-adserver.com/openrtb2/amp?tag_id=TAG_ID',
macros: ['TAG_ID'],
disableKeyAppend: true,
},
prebidopenx: {
url: 'https://prebid.openx.net/openrtb2/amp?tag_id=REQUEST_ID&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&slot=ATTR(data-slot)&targeting=TGT&curl=CANONICAL_URL&timeout=TIMEOUT&adc=ADCID&purl=HREF&gdpr_consent=CONSENT_STRING&account=ACCOUNT_ID',
macros: ['REQUEST_ID', 'CONSENT_STRING', 'ACCOUNT_ID'],
disableKeyAppend: true,
},
prebidrubicon: {
url: 'https://prebid-server.rubiconproject.com/openrtb2/amp?tag_id=REQUEST_ID&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&slot=ATTR(data-slot)&targeting=TGT&curl=CANONICAL_URL&timeout=TIMEOUT&adc=ADCID&purl=HREF&gdpr_consent=CONSENT_STRING&account=ACCOUNT_ID&gdpr_applies=CONSENT_METADATA(gdprApplies)&addtl_consent=CONSENT_METADATA(additionalConsent)&consent_type=CONSENT_METADATA(consentStringType)',
macros: ['REQUEST_ID', 'CONSENT_STRING', 'ACCOUNT_ID'],
disableKeyAppend: true,
},
purch: {
url: 'https://ads.servebom.com/tmntag.js?v=1.2&fmt=amp&o={%22p%22%3APLACEMENT_ID}&div_id=DIV_ID',
macros: ['PLACEMENT_ID', 'DIV_ID'],
disableKeyAppend: true,
},
salesforcedmp: {
url: 'https://cdn.krxd.net/userdata/v2/amp/ORGANIZATION_ID?segments_key=SEGMENTS_KEY&kuid_key=USER_KEY',
macros: ['ORGANIZATION_ID', 'SEGMENTS_KEY', 'USER_KEY'],
disableKeyAppend: true,
},
sonobi: {
url: 'https://apex.go.sonobi.com/trinity.json?key_maker=%7B%22_DIVIDER_ATTR(data-slot)%7C1%22%3A%22PLACEMENT_ID_DIVIDER_ATTR(width)xATTR(height)%2CATTR(data-multi-size)%22%7D&ref=CANONICAL_URL&lib_name=amp&lib_v=0.1&pv=PAGEVIEWID&=1',
disableKeyAppend: true,
macros: ['PLACEMENT_ID', '_DIVIDER_'],
},
t13: {
url: 'https://s2s.t13.io/openrtb2/amp?tag_id=TAG_ID&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&slot=ATTR(data-slot)&targeting=TGT&curl=CANONICAL_URL&timeout=TIMEOUT&adc=ADCID&purl=HREF&gdpr_consent=CONSENT_STRING&account=ACCOUNT_ID',
macros: ['TAG_ID', 'CONSENT_STRING', 'ACCOUNT_ID'],
disableKeyAppend: true,
},
tail: {
url: 'https://ACCOUNT_ID.seg.t.tailtarget.com/amp',
macros: ['ACCOUNT_ID'],
disableKeyAppend: true,
},
yieldbot: {
url: 'https://i.yldbt.com/m/YB_PSN/v1/amp/init?curl=CANONICAL_URL&sn=YB_SLOT&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&aup=ATTR(data-slot)&pvi=PAGEVIEWID&tgt=TGT&adcid=ADCID&href=HREF',
macros: ['YB_PSN', 'YB_SLOT'],
disableKeyAppend: true,
},
yieldlab: {
url: 'https://ad.yieldlab.net/yp/ADSLOT_ID?content=amp&consent=CONSENT_STRING&t=amp%3D1',
macros: ['ADSLOT_ID', 'CONSENT_STRING'],
disableKeyAppend: true,
},
snigel: {
url: 'https://adserv.snigelweb.com/bp/v1/openrtb2/amp?tag_id=PLACEMENT_ID&w=ATTR(width)&h=ATTR(height)&ow=ATTR(data-override-width)&oh=ATTR(data-override-height)&ms=ATTR(data-multi-size)&slot=ATTR(data-slot)&targeting=TGT&curl=CANONICAL_URL&timeout=TIMEOUT&adcid=ADCID&purl=HREF&consent_string=CONSENT_STRING&account=ACCOUNT_ID&gdpr_applies=CONSENT_METADATA(gdprApplies)&addtl_consent=CONSENT_METADATA(additionalConsent)&consent_type=CONSENT_METADATA(consentStringType)',
macros: ['PLACEMENT_ID', 'CONSENT_STRING', 'ACCOUNT_ID'],
disableKeyAppend: true,
},
});
// DO NOT MODIFY: Setup for tests
if (getMode().localDev || getMode().test) {
RTC_VENDORS['fakevendor'] = /** @type {RtcVendorDef} */ ({
url: 'https://localhost:8000/examples/rtcE1.json?slot_id=SLOT_ID&page_id=PAGE_ID&foo_id=FOO_ID',
macros: ['SLOT_ID', 'PAGE_ID', 'FOO_ID'],
});
RTC_VENDORS['fakevendor2'] = /** @type {RtcVendorDef} */ ({
url: 'https://localhost:8000/examples/rtcE1.json?slot_id=SLOT_ID&page_id=PAGE_ID&foo_id=FOO_ID',
errorReportingUrl: 'https://localhost:8000/examples/ERROR_TYPE',
disableKeyAppend: true,
});
}
export {RTC_VENDORS};