How to filter POP from PUSH
Hello, Friends,
today I want to talk about really crucial issues that all companies that deal with Push ad format are facing.
Push ad format blew up a market in 2019 and is still holding positions as well as advertising budget share. Unlike other formats, it is very unpredictable and easy to manipulate at the same time.
How does the advertiser see it?
This format will allow me to reach new users with my offer. I can target them across mobile and desktop and they will see my logo and attractive call to action images so they will definitely click and convert. It is better than pop and banner because it is a new format and because the user can decide to click or not.
How does the publisher see it?
Well, I just need to add the script to gather subscribers from my site, so my site will not be affected, I don’t really care what will happen next because I am paid, can do other ad formats and not risk to be flagged. I am in.
How does pop publishers feel about push?
This format looks like a native ad technically, can be manipulated as pop, cost per click is much higher than pop and banner, there are not many restrictions and regulations, just to keep CTR low.
How do adservers see it?
We will use the same filters as we use for pop and will look at CTR. There is no need to change infrastructure because it can be canceled by main browser updates soon.
Botton line: As you can see push is not regulated by publisher or advertiser. Targeted? Yes. Protected from fraud to get pop instead of push? No.
Why it is so hard to filter push?
It is not hard but it is different. IP and UA mismatch, click frequency limits, proxy, fake crawlers, bot IPs database - are a must-have for all formats. The main idea for developing an antipop filter for push is that click should not be validated by adserver if icon or image or both (depending on the campaign setup) were not called before the click.
Low CTR is not an indicator that you receiving push subscribers click, in fact, Everyone in this process chain knows that this is the main argument in a refund claim.
Push can have higher than 5% CTR, and push with 3% CTR can be 50% pop as well.
Bottom line: CTR is not a trustworthy indicator to understand whether you are buying/selling push or pop clicks.
Why CTR is not an indicator?
Let’s see how real push is served. Standard push offer contains the following elements
Title+description (A)
Icon URL (B)
Image URL (C)
Click URL (D)
When an ad is served two URLs B and C are called from the user browser if a user clicks on the ad - D URL is called.
In the report, these events will be presented as:
Icon impression - validated - counted as 1
Image impression - validated - counted as 1
Click - validated - counted as 1
CTR 100%
The main issue is that most of adservers store clicks and impressions data on separate servers and don’t do cross-check. Thus, CTR is calculated on separately aggregated data as the total value where the indicator is source id. For example, source 123 and source 456 each served 1000 impressions and different amounts of clicks.
Source 123:
1000 impressions - > 35 clicks -> CTR 3.5%
Cross checked clicks 28
Source 456:
1000 impressions -> 30 clicks -> CTR 3%
Cross checked clicks 15
With cross-check impressions you can see that % of pop traffic per source will be:
Source 123 -> 20%
Source 456 - > 50%
So even with low CTR, the source 456 will still have more pop traffic than real push traffic.
How to cross-check impressions and clicks?
To cross-check impressions and clicks you should develop a real-time filter that takes into consideration that every ad result has a unique identifier and can be stored in hash impressions and clicks, when impression URL is called you store this identifier in Database and when click appears you compare click identifier with impression identifier if they matched click is validated.
It is very important to be able to set TTL (Time to live for an impression) and TBIC Time between impression served and click served and click URL TTL as well.
If impression TTL is expired then clicks that come after this time are no longer validated as well.
If the impression is not served but click with the matched identifier is called - this click should not be validated.
Why adservers are not developing this filter?
The only reason why adserver is not applying this filter is the cost of operations. On huge volumes, this filter can badly affect QPS costs.
There is also a way to run filter at certain volumes and time, taking samples of data and cross-check to indicate sources with a critical level of mixed traffic.
I personally think that most of adservers don’t invest in filters because they think Push will be banned and it is better to balance with rev-share and refunds.
Another practice is to wait for blacklists from advertisers. It is the same as a policeman is waiting for civilians to catch a criminal.
Thoughts? How do you filter? How do you deal with pop in push?