Skip to content

Commit

Permalink
Enable Criteo in Australia and New Zealand (#1649)
Browse files Browse the repository at this point in the history
* Enable Criteo in Australia and New Zealand

* Changeset
  • Loading branch information
emma-imber authored Nov 7, 2024
1 parent 0cd37f5 commit 1efa8ca
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 33 deletions.
5 changes: 5 additions & 0 deletions .changeset/cyan-boats-joke.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@guardian/commercial': minor
---

Re-enable Criteo in Australia and New Zealand
55 changes: 29 additions & 26 deletions src/lib/header-bidding/prebid/bid-config.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import {
containsMpuOrDmpu as containsMpuOrDmpu_,
getBreakpointKey as getBreakpointKey_,
shouldIncludeAppNexus as shouldIncludeAppNexus_,
shouldIncludeCriteo as shouldIncludeCriteo_,
shouldIncludeImproveDigital as shouldIncludeImproveDigital_,
shouldIncludeOpenx as shouldIncludeOpenx_,
shouldIncludeSonobi as shouldIncludeSonobi_,
Expand Down Expand Up @@ -70,7 +69,6 @@ const shouldIncludeTrustX = shouldIncludeTrustX_ as jest.Mock;
const shouldIncludeXaxis = shouldIncludeXaxis_ as jest.Mock;
const shouldIncludeSonobi = shouldIncludeSonobi_ as jest.Mock;
const shouldIncludeTripleLift = shouldIncludeTripleLift_ as jest.Mock;
const shouldIncludeCriteo = shouldIncludeCriteo_ as jest.Mock;
const stripMobileSuffix = stripMobileSuffix_ as jest.Mock;
const getBreakpointKey = getBreakpointKey_ as jest.Mock;
const isUserInVariant = isUserInVariant_ as jest.Mock;
Expand Down Expand Up @@ -259,37 +257,37 @@ describe('bids', () => {
test('should only include bidders that are switched on if no bidders being tested', () => {
window.guardian.config.switches.prebidXaxis = false;
shouldIncludeImproveDigital.mockReturnValueOnce(true);
expect(getBidders()).toEqual(['ix', 'improvedigital', 'adyoulike']);
expect(getBidders()).toEqual([
'ix',
'criteo',
'improvedigital',
'adyoulike',
]);
});

test('should not include ix bidders when switched off', () => {
window.guardian.config.switches.prebidIndexExchange = false;
expect(getBidders()).toEqual(['adyoulike']);
expect(getBidders()).toEqual(['criteo', 'adyoulike']);
});

test('should include Sonobi if in target geolocation', () => {
shouldIncludeSonobi.mockReturnValue(true);
expect(getBidders()).toEqual(['ix', 'sonobi', 'adyoulike']);
expect(getBidders()).toEqual(['ix', 'criteo', 'sonobi', 'adyoulike']);
});

test('should include AppNexus directly if in target geolocation', () => {
shouldIncludeAppNexus.mockReturnValue(true);
expect(getBidders()).toEqual(['ix', 'and', 'adyoulike']);
expect(getBidders()).toEqual(['ix', 'criteo', 'and', 'adyoulike']);
});

test('should include OpenX directly if in target geolocation', () => {
shouldIncludeOpenx.mockReturnValue(true);
expect(getBidders()).toEqual(['ix', 'adyoulike', 'oxd']);
expect(getBidders()).toEqual(['ix', 'criteo', 'adyoulike', 'oxd']);
});

test('should include TrustX if in target geolocation', () => {
shouldIncludeTrustX.mockReturnValue(true);
expect(getBidders()).toEqual(['ix', 'trustx', 'adyoulike']);
});

test('should include Criteo if in target geolocation', () => {
shouldIncludeCriteo.mockReturnValue(true);
expect(getBidders()).toEqual(['ix', 'criteo', 'adyoulike']);
expect(getBidders()).toEqual(['ix', 'criteo', 'trustx', 'adyoulike']);
});

test('should include ix bidder for each size that slot can take', () => {
Expand All @@ -299,7 +297,7 @@ describe('bids', () => {
[createAdSize(300, 600), createAdSize(300, 250)],
mockPageTargeting,
).map((bid) => bid.bidder);
expect(rightSlotBidders()).toEqual(['ix', 'ix', 'adyoulike']);
expect(rightSlotBidders()).toEqual(['ix', 'ix', 'criteo', 'adyoulike']);
});

test('should only include bidder being tested', () => {
Expand Down Expand Up @@ -341,7 +339,7 @@ describe('bids', () => {
'dfp-ad--top-above-nav',
[createAdSize(728, 90)],
mockPageTargeting,
)[2];
)[3];
expect(openXBid?.params).toEqual({
customParams: 'someAppNexusTargetingObject',
delDomain: 'guardian-d.openx.net',
Expand All @@ -356,7 +354,7 @@ describe('bids', () => {
'dfp-ad--top-above-nav',
[createAdSize(728, 90)],
mockPageTargeting,
)[2];
)[3];
expect(openXBid?.params).toEqual({
customParams: 'someAppNexusTargetingObject',
delDomain: 'guardian-us-d.openx.net',
Expand All @@ -371,7 +369,7 @@ describe('bids', () => {
'dfp-ad--top-above-nav',
[createAdSize(728, 90)],
mockPageTargeting,
)[2];
)[3];
expect(openXBid?.params).toEqual({
customParams: 'someAppNexusTargetingObject',
delDomain: 'guardian-aus-d.openx.net',
Expand All @@ -386,7 +384,7 @@ describe('bids', () => {
'dfp-ad--top-above-nav',
[createAdSize(728, 90)],
mockPageTargeting,
)[2];
)[3];
expect(openXBid?.params).toEqual({
customParams: 'someAppNexusTargetingObject',
delDomain: 'guardian-d.openx.net',
Expand All @@ -401,7 +399,7 @@ describe('bids', () => {
'dfp-ad--mobile-sticky',
[createAdSize(320, 50)],
mockPageTargeting,
)[2];
)[3];
expect(openXBid?.params).toEqual({
customParams: 'someAppNexusTargetingObject',
delDomain: 'guardian-d.openx.net',
Expand All @@ -422,7 +420,12 @@ describe('triplelift adapter', () => {
});

test('should include triplelift adapter if condition is true ', () => {
expect(getBidders()).toEqual(['ix', 'triplelift', 'adyoulike']);
expect(getBidders()).toEqual([
'ix',
'criteo',
'triplelift',
'adyoulike',
]);
});

test('should return correct triplelift adapter params for leaderboard, with requests from US or Canada', () => {
Expand All @@ -435,7 +438,7 @@ describe('triplelift adapter', () => {
'dfp-ad--top-above-nav',
[createAdSize(728, 90)],
mockPageTargeting,
)[1]?.params;
)[2]?.params;
expect(tripleLiftBids).toEqual({
inventoryCode: 'theguardian_topbanner_728x90_prebid',
});
Expand All @@ -451,7 +454,7 @@ describe('triplelift adapter', () => {
'dfp-ad--top-above-nav',
[createAdSize(728, 90)],
mockPageTargeting,
)[1]?.params;
)[2]?.params;
expect(tripleLiftBids).toEqual({
inventoryCode: 'theguardian_topbanner_728x90_prebid_AU',
});
Expand All @@ -468,7 +471,7 @@ describe('triplelift adapter', () => {
'dfp-ad--inline1',
[createAdSize(300, 250)],
mockPageTargeting,
)[1]?.params;
)[2]?.params;
expect(tripleLiftBids).toEqual({
inventoryCode: 'theguardian_sectionfront_300x250_prebid',
});
Expand All @@ -485,7 +488,7 @@ describe('triplelift adapter', () => {
'dfp-ad--inline1',
[createAdSize(300, 250)],
mockPageTargeting,
)[1]?.params;
)[2]?.params;
expect(tripleLiftBids).toEqual({
inventoryCode: 'theguardian_sectionfront_300x250_prebid_AU',
});
Expand All @@ -502,7 +505,7 @@ describe('triplelift adapter', () => {
'dfp-ad--top-above-nav',
[createAdSize(320, 50)],
mockPageTargeting,
)[1]?.params;
)[2]?.params;
expect(tripleLiftBids).toEqual({
inventoryCode: 'theguardian_320x50_HDX',
});
Expand All @@ -519,7 +522,7 @@ describe('triplelift adapter', () => {
'dfp-ad--top-above-nav',
[createAdSize(320, 50)],
mockPageTargeting,
)[1]?.params;
)[2]?.params;
expect(tripleLiftBids).toEqual({
inventoryCode: 'theguardian_320x50_HDX_AU',
});
Expand Down
3 changes: 1 addition & 2 deletions src/lib/header-bidding/prebid/bid-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ import {
containsWS,
getBreakpointKey,
shouldIncludeAppNexus,
shouldIncludeCriteo,
shouldIncludeImproveDigital,
shouldIncludeImproveDigitalSkin,
shouldIncludeKargo,
Expand Down Expand Up @@ -666,7 +665,7 @@ const currentBidders = (
pageTargeting: PageTargeting,
): PrebidBidder[] => {
const biddersToCheck: Array<[boolean, PrebidBidder]> = [
[shouldIncludeCriteo(), criteoBidder(slotSizes)],
[true, criteoBidder(slotSizes)],
[shouldIncludeSonobi(), sonobiBidder(pageTargeting)],
[shouldIncludeTrustX(), trustXBidder],
[shouldIncludeTripleLift(), tripleLiftBidder],
Expand Down
5 changes: 0 additions & 5 deletions src/lib/header-bidding/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -186,11 +186,6 @@ export const shouldIncludeImproveDigitalSkin = (): boolean =>
(isInUk() || isInRow()) &&
getBreakpointKey() === 'D'; // Desktop only

/**
* Determine whether to include Criteo as a bidder
*/
export const shouldIncludeCriteo = (): boolean => !isInAuOrNz();

export const shouldIncludeKargo = (): boolean => isInUsa();

export const shouldIncludeMagnite = (): boolean =>
Expand Down

0 comments on commit 1efa8ca

Please sign in to comment.