Typically, your ad consists of several, interacting layers.
Your ad will be loaded onto a computer/mobile web page, where it is loaded into a container like an iFrame, <div>, or another similar HTML tag. The container secures the position of the ad relative to the rest of the page content.
If the container is an iFrame, it could be either friendly or unfriendly.
UnFriendly: JS running inside the iFrame cannot access JS running outside the iFrame. In this type of iFrame, the ad is effectively sandboxed from the rest of the page. Unfriendly iFrames are also called cross-domain iFrame.
In the case of mobile in-app, there may not be a container element; the webview on the mobile device acts as the container.
A JS object called EBG is loaded inside the container. This is the Sizmek main ad management code that handles things like reporting, panel expansion, and viewability.
To the page, EBG represents the ad as a whole. EBG creates an unfriendly iFrame to contain the creative. All of the creative code and other assets, the JS object EB, and AdKit (optionally) will be inside this iFrame.
EB and EBG communicate using postmessage. AdKit uses EB to communicate with EBG.
Another method of transferring information between EBG and EB is by using the Custom Variables feature. The custom variables are accessible in both the EBG and EB contexts because EBG sends them to EB as part of the initialization sequence.
Note: After they are transferred, there is no more connection between the EB and EBG variables. If you modify a custom variable in the EB context, the same variable in the EBG context will not be updated.