Nothing Will Destroy the Church

God is both righteous to judge the wicked and sufficiently powerful enough to equip the believer. In Psalm 7 David makes a promise to God. David lifts up both hands towards heaven in prayer and…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




Rendering Pipeline for Native Ads

Native advertisements are advertisements which resemble the UI/UX of the platform on which they are being displayed. On Facebook, native ads are seamlessly included in your news feed. A native ad in a game would be one which fits seamlessly with the user experience of the game. Different games vary considerably in their UI/UX.

Rendering machine

Our challenge is to generate native advertisement units given the images and text resources we get for an advertisement, and to do this in a way that works across a wide inventory of games. The resources we get are images of the brand, and the text would be a description of the same, or a “Call To Action” such as “Play now”. All this must be done in realtime(pseudo).

A problem we faced was how to generate these ads across a wide range of games. We get ~15000 unique requests for creatives in a day, and the creatives need to be generated as fast as possible in order to keep the leakage rate low.

We use a simple abstraction in the form of layers when generating the units. Each layer is simply a resource that can be “drawn” onto the final unit.

Rendering machine

Different types of layers

The concept of layers is similar to what you would expect in a graphics editor. Every layer supports certain operations, which morphs the content of the layer. The layers we support are:

Assembling Different Layers

Some of the layers are fixed. This includes the base frame, or other overlays/decals that are to be applied to the image. Other layers are not known until we have the actual advertisement, so those layers serve as placeholders until the actual content is obtained.

1-obTdl0BJvact1bzRzXq2Xg

The final unit is assembled in real time

1-obTdl0BJvact1bzRzXq2Xg

Since our affiliate partners(who provide us programmatic ads) conform to OpenRTB, we can always expect a number of resources, such as the icon and the CTA.

The rendering engine makes sure the ad image fits as best in the available space as it can. This is done by either trying to match the width or the height of the available space, and scaling the image up or down while maintaining the aspect ratio. In addition to this, it can perform other operations such as filling unused space with a blur fill. It supports UI operations including padding and alignment, so that designers have basic functionality to play with when creating units in the native format.

This allows us to create a lot of interesting ad placements:

In-game advertising
native advertising

In order to create the ad units, we have a JSON configuration file that is provided for each unit. This JSON file specifies where the advertisement image should be place, what other frames should be placed, and text units.

native advertising

Add a comment

Related posts:

Kids of the Week!

Hello everyone! On this fine day (or night, wherever you’re reading from), I’d like to introduce to you two more kids from the Mama Bari family! Born on the 20th of January in the year 2003, this…

Upcoming Plan

Hope that our informative details about Player’s Status in the “Guide to RIFI United Metaverse” gave you a fuller understanding about the importance of the NFTs’ status. We are now so exhilarated to…

My Most Recent Challenging Learning Experience

My most recent challenging learning experience was during the second week of the Andela pre-boot camp workshop. We were supposed to write endpoints for our SendIT product. We were required to use…