InteractiveAdvertisingBureau / SIMID

Secure Interactive Media Interface Definition (SIMID)
https://interactiveadvertisingbureau.github.io/SIMID/
Apache License 2.0
45 stars 24 forks source link

Various SIMID questions/clarifications #436

Open jakraskin opened 1 year ago

jakraskin commented 1 year ago

Hi IAB,

Thank you again for providing detailed guidance and sample code for SIMID. The comprehensive spec has been a huge help for our team as we implement a SIMID Renderer.

As we have been progressing through this implementation, we've noted a few items that we'd appreciate your clarification/thoughts on - we believe that addressing the below will be help teams more efficiently adopt the SIMID protocol.

  1. CreativeRequestPause - AdPaused Event
    • In section 6.8.1., the document specifies that "the player must respond to SIMID:Creative:requestPause with the AdPaused event." In this context, does the "AdPaused event" mean "SIMID:Media:pause"? If not, can you please clarify what the AdPaused event is? There is no other reference to "AdPaused event" in the document.
  2. Missing Player Error Codes for rejecting creative requests
    • According to the SIMID documentation, reject() requires an error object containing an error code and error message to be passed. However, the docs appear to be missing the corresponding error codes for when the player rejects the following creative messages: requestFullScreen, requestExistFullScreen, requestResize, requestVolumeChange, and requestSkip.
    • Should specific error codes be added to the SIMID docs for the above reject scenarios? Alternatively, should one of the existing error codes that are more "general" be fired (e.g., 1200 Unspecified error, 1203 Unsupported Functionality Request)? If the latter, perhaps the reject sections for each of the above creative messages should be updated to specify that the general error codes should be used with a more specific error message.
  3. Approach for sending Creative Errors that are not part of a reject
    • While there are 12 creative error codes, there are only two Player messages that are eligible for the creative to reject (i.e., init and startCreative). In situations where the creative is reporting a creative error that is not related to rejecting init or startCreative, presumably the creative should be using simidprotocol.sendMessage() instead of simidprotocol.reject(), since nothing is being rejected.
    • If so, it would be helpful if the documentation more clearly stated that the creative should be using sendMessage for non-reject creative errors. If the player is listening to for creative errors for logging purposes or has logic based on creative errors, it would be beneficial to know that the player should expect to find creative errors in both sendMessages and rejects.
  4. Spec vs sample code questions/comments
    • In section 9, the spec indicates that "SIMID allocates the range 1100-1199 to the errors that the creative reports." However, in the sample code (simid_player.js), it appears that the player is firing three Creative Errors: CreativeErrorCode. PLAYBACK_AREA_UNUSABLE, CreativeErrorCode.PLAYBACK_AREA_UNUSABLE and CreativeErrorCode.EXPAND_NOT_POSSIBLE. Should the player be allowed to fire Creative Errors? If so, perhaps the spec should be updated to clarify that the player can fire certain Creative Errros?
    • In section 4.3.10, the spec indicates that "The player waits for a § 4.3.10.1 resolve response to display the SIMID iframe." However, in the sample code (simidplayer.js), it appears that startCreativePlayback() does not wait for the creative to respond to START_CREATIVE with a resolve before displaying the iframe. Should this be updated?

Thank you! Josh