Skip to content

Commit

Permalink
33Across Analytics Adapter: initial release (#10635)
Browse files Browse the repository at this point in the history
* initial 33across Analytics Adapter commit

* refactoring + additional unit test coverage

* Additional refactoring of 33x analytics unit tests

* Apply CR feedback
- Single responsibility for transaction manager
- Send one report per auction
- Clear pending events that were causing conflicts in specs

* refactoring of "incomplete state" unit test

* unit test coverage for duplicate transaction id

* Add additional spec about non found transaction

* obtain user ids via bid request, not via global fn.

* Populate bid response fields for BID WON events

* Prepare the cache for the bidresponse field population

* populate bidResponse field

* fix some typedef + remove unnecessary switch event cases

* Populate bids based on BID_RESPONSE and not on the bidsReceived field of AUCTION_END

* Populate floor CMP field

* fix eslint errors

* keep track of bids when bid_response event is received

* Additional fn documentation

* change jsdoc naming + spec refactoring

* remote siteId, make endpoint specification optional (provide default), refactoring, fix tests

* remove extraneous logs

* simplify GAM logging

* remove hardcoded version

* general improvements to documentation with fixes to jsdoc types

* update tests for style conformance

* IDG-677/remove code related to GAM slotRenderEnded

* IDG-677/remove typegen hint, and replace with jsdoc ref

* IDG-677/replace bidsWon with hasWon field, add sendReport trigger on auctionEnd (in the case that auction ends AND not all bids have resolved), and general refactoring

* IDG-677/update tests to ensure reports always match new spec, and general refactoring

* IDG-677/add fallback to use adUnitCode as slotId if "ortb2Imp.ext.{gpid,data.pbadslot}" values are both missing

* remove accidental file commits

Ticket: IDG-677

* test that report is being sent as soon as all transactions for auction are completed

Ticket: IDG-677

* remove extraneous transaction manager counting & status mechanism and track transactionIds directly

Ticket: IDG-677

* set default transaction timeout to 10s to better accommodate slower auctions, reverse auctionEnd and bidWon as the default sequence in test event emission, test for wider range of auction scenarios, improvements to clarity/specificity (naming)

Ticket: IDG-677

* fix invalid timeout test

Ticket: IDG-677

* add support for usp

Ticket: IDG-677

* pre-clear event emitter in case state not cleared by other test suites

Ticket: IDG-677

* tests: switch pre-clearing of "events" state with initiating our own stub of "events" emitter

Ticket: IDG-677

* adopt default endpoint without logging when endpoint value is unspecified

Ticket: IDG-677

* update docs to better reflect analytics adapter standard use-case and behavior

Ticket: IDG-677

* refactoring: renaming and reducing mocks to only event data used

Ticket: IDG-677

* remove usp consent string invalid test

Ticket: IDG-677

* log values as copy

Ticket: IDG-829

* fix early send issue by removing auto-send on auctionEnd and using "all GAM slots rendered" as an indicator for "complete enough" report after short delay

Ticket: IDG-829

* add gdpr, gpp, and coppa support

Ticket: IDG-803

* send gdprConsent string even if gdprApplies is false. Use array instead of comma string for gpp applicableSections.

Ticket: IDG-803

* fix tests to reflect updated bid.status => hasWon logic

Ticket: IDG-829

* remove errant log

Ticket: IDG-829

* remove extraneous call to isGptPubadsDefined

Ticket: IDG-829

* alter scope of subscribeToGamSlots

Ticket: IDG-829

* combine bidStatus / getCachedBid functions, add our own BidStatus enum to track possible choices

Ticket: IDG-829

* refactoring: renaming, fix reversion, better cloning for logs

Ticket: IDG-829

* test label revision

Ticket: IDG-829

* fix logic for test, "when an AUCTION_END event is received before BID_WON events: sends a report with the bids that have won after timeout"

Ticket: IDG-829

* reorganization of functions, fix to BIDDER_ERROR issue

Ticket: IDG-829

* remove try/catch convenience

Ticket: IDG-829

* test slotRenderEnded timeout

Ticket: IDG-829

* enable remainder of tests

Ticket: IDG-829

* added additional GAM tests

Ticket: IDG-829

* remove conditional language from GAM tests

Ticket: IDG-829

* Use floorValue instead of cpmAfterAdjustments as the price floor. Resolves IDG-1093.

* Mark bid as won on impression only. Resolves IDG-1107.

* Obtain rejected bid ID from requestId instead of bidId. Include rejected bid information in the report. Resolves IDG-1112.

* 33Across Analytics: Update DEFAULT_ENDPOINT to match production endpoint

* 33Across Analytics: Update docs - change pid type to string, plus other minor tweaks.

* 33Across Analytics docs: Add UIM reference

* Log a warning on ad slot ID mismatch instead of throwing an unhandled exception

* 33Across Analytics: Allow slots to be by configured by element ID instead of GAM ad unit code. Resolves IDG-1163.

* 33Across Analytics: Update contact e-mail; add instructions on enabling existing customers forAnalytics.

* 33Across Analytics spec: Ensure that mock GPT remains enabled after the tests finish

---------

Co-authored-by: Michael Scott-Nelson <[email protected]>
Co-authored-by: Carlos Felix <[email protected]>
Co-authored-by: Joshua Poritz <[email protected]>
  • Loading branch information
4 people authored Nov 13, 2023
1 parent 01654d0 commit af4936a
Show file tree
Hide file tree
Showing 3 changed files with 1,895 additions and 0 deletions.
Loading

0 comments on commit af4936a

Please sign in to comment.