Impressions are low compared to Facebook's C # populated audience

In our application, we have a feed of images loaded into a ListView. These images are returned from our server. When the user scrolls to the bottom of the page, the more loading logic is triggered, where we send another request to our server to ask to display more content (images). This is also the time that we are requesting one FAN ad using the Facebook SDK. If the ad does return from Facebook, we will insert it into the list of content just returned by our server. Finally, when this cell (containing the FAN declaration) is in view, we will start loading the content (images and text) of that cell.

Given that we are not pre-caching the FAN ad, we would expect the value # from Impression to fill ratio to be close to 100%. However, we see a ratio of about 67%.

FYI - All FAN ads referenced here are NativeAd.

Q: what happened to 33% of completed requests? How do they turn out, but are not considered impressions?

+3


source to share


3 answers


I am an engineer working in the Audience Network. An impression for a NativeAd is registered only when the view registered for that NativeAd is viewable on screen. If the view is in a part of the list that is not yet visible on screen, it will not count as a show. (It will be counted when it becomes visible.) This should explain the difference between completed requests and impressions.



+4


source


Disclaimer I was working on the ad SDK.

Viewing ads is a WebView and there are several ways to know when an ad has been loaded.

1) Wait for the Javascript from the ad to return to the SDK, which will then fire the pixel / tracking request to ensure the ad is indeed VISIBLE (vs HIDDEN / INVISIBLE) before counting

and / or



2) Call pixel / tracking request from WebView.

In any case, since this is a WebView, even though the image is loaded, this does not necessarily mean that the completed loading state has been passed, especially if the ad is in a fast scroll ListView where the image for the ad might be visible, but the rest of the code Javascript hasn't quite reached the "Ad done loading" state. Basically Ad is a small package of HTML5 / CSS / Javascript and depends on its delays - it can be on the order of seconds.

One way to check is to monitor traffic through an HTTP proxy and it is best to guess when it fires and adjust expectations.

Alternatively it is possible to move the ad to the footer / header where it is not affected by the visible / loadable issue if it is in the scroll part of the ListView.

0


source


Note that if you want to track the actual impression, you can implement ImpressionListener

that launches onLoggingImpression(Ad)

, called just before the log is written. See docs.

There is a full implementation of facebook native ads in its own native MoPub native event here :

which clearly shows you how to implement it correctly.

0


source







All Articles