Contextual App Targeting for the Post-IDFA Era

Note

This is a dynamic document that is updated periodically with new content.

Introduction

At WWDC 2020, Apple announced major changes to the IDFA on iOS 14. Fyber expects that Apple's changes to IDFA will make this persistent user identifier obsolete and no longer usable for user-level ad targeting. Fyber also expects that Google will follow suit and remove the GAID, although we expect this change to be in early 2021 or later. The time is ripe for industry innovation and we're adapting quickly to help our marketing partners adjust to the post-IDFA/GAID era.

Fyber's role as an ad monetization SDK and supply-side partner is to provide our buyers with high quality, in-app inventory. We believe the app economy is shifting towards new types of non-personalized targeting signals, ranging from session-level data to on-device aggregated data. Fyber's goal is to establish standardized OpenRTB custom extensions that can be seamlessly adopted and used for targeting by the programmatic app industry.

Data Purpose 

Fyber's SDK enables the collection of the following data objects that Fyber shares with its buyers via the bid request for the purposes described in the table below. This data is to be used for contextual ads only and not to create alternative user profiles or for any other purpose.

Fyber requires that all buyers on our Marketplace abide by Apple's User Privacy and Data Use Policy.

"The ID for Vendors (IDFV), may be used for analytics across apps from the same content provider. The IDFV may not be combined with other data to track a user across apps and websites owned by other companies unless you have been granted permission to track by the user."

OpenRTB Bid Request Parameters for Contextual App Targeting

  • These bid request parameters are structured to fit into the existing OpenRTB 2.5 and 3.0 specifications
  • Bid request parameters will be available on both iOS and Android, unless they are operating system specific, like IDFV
  • Fyber will not pass a data signal, if it is not present in the request
Object Attribute Name Definition Value Example
Value
Release Purpose Description
App ext.
devuserid
Developer User ID A developer's own persistent unique user identifier String "abcd12399"

iOS 7.6.3
Android 7.7.0
Fairbid iOS 3.6.0
Fairbid Android 3.6.0

Third-Party Advertising

Frequency capping

App ver App Version The version of the application String "14.16.0"

iOS 7.6.3
Android 7.7.0
Fairbid iOS 3.6.0
Fairbid Android 3.6.0

Third-Party Advertising

App categorization

App ext.
storecat
App Store Category Google Play and Apple App Store category definitions. For example, "games" String "games"

iOS 7.6.3
Android 7.7.0
Fairbid iOS 3.6.0
Fairbid Android 3.6.0

Third-Party Advertising

App categorization

App ext.
storesubcat
App Store Subcategory Google Play and Apple App Store Sub-game category definitions. The array is always capped at 3 strings. String Array

["entertainment", "trivia",
"simulation"]

iOS 7.6.3
Android 7.7.0
Fairbid iOS 3.6.0
Fairbid Android 3.6.0

Third-Party Advertising

App categorization

App ext.fmwname Framework Name A string value describing if the app is using the unity or native framework, listed as "unity" or "native" String "native"

iOS 7.6.3
Android 7.7.0
Fairbid iOS 3.6.0
Fairbid Android 3.6.0

Third-Party Advertising

App categorization

App ext.
apilevel
API Level (Android only) An integer value that specifies the API level supported Integer "10"

iOS 7.8
Android 7.8

Third-Party Advertising

App categorization

Publisher Domain Developer Domain The developer domain used for app-ads.txt String "developer.com" iOS 7.8
Android 7.8
Third-Party Advertising Publisher categorization
User ext.
impdepth
Impression Depth The count of impressions for a specific placement type in a given app session. The impression depth is reset once the session ends Integer "4"

Fairbid iOS 3.5.0
Fairbid Android 3.5.0

Third-Party Advertising

Ad relevance

User ext.
sessionduration
Session Duration The total duration of time a user has spent so far in a specific app session expressed in seconds. For example, a user has been playing Word Game for 45 seconds Integer "45"

Fairbid iOS 3.5.0
Fairbid Android 3.5.0

Third-Party Advertising

User engagement 

User ext.
lastbundle
Prior App Bundle (iOS Only) The last app bundle the user saw on the previous impression in a given session per placement type String "123456789"

iOS 7.6.3
Android 7.7.0
Fairbid iOS 3.6.0
Fairbid Android 3.6.0

Third-Party Advertising

Ad relevance 

User ext.
lastadomain
Prior Adomain The last advertiser domain the user saw on the previous impression in a given session per placement type String "advertiser.com"

iOS 7.6.3
Android 7.7.0
Fairbid iOS 3.6.0
Fairbid Android 3.6.0

Third-Party Advertising

Ad relevance 

User ext.
clickrate
Click Rate The percentage of clicks/impressions per user per placement type over a given number of impressions, where 5 represents a 5% CTR Integer "5" iOS 7.8
Android 7.8
Third-Party Advertising User engagement 
User ext.
lastclick
Prior Click A boolean value indicating if the user clicked on the last impression in a given session per placement type, where "1" = user clicked Boolean "1" iOS 7.8
Android 7.8
Third-Party Advertising User engagement
User ext.
lastskip
Prior Skip VAST specific. A boolean value indicating if the user skipped the video on the last impression in a given session, where "1" = user skipped Boolean "1" iOS 7.8
Android 7.8
Third-Party Advertising User engagement 
User ext.
lastclicktype
Prior Video Click Type VAST specific. A integer value indicating what part of the video the user clicked on, where "0" = no click, "1" = ClickThrough, and "2" = CompanionClickThrough Integer "1" iOS 7.8
Android 7.8
Third-Party Advertising User engagement 
User ext.
completionrate
Completion Rate The percentage of completions/impressions per user per placement type for a given number of impressions, where 70 represents a 70% completion rate. This only applies to Rewarded and Video placement types Integer "70" iOS 7.8
Android 7.8
Third-Party Advertising User engagement 
Device ext.
ifv
IDFV (iOS Only) A persistent unique identifier for each app on a device that identifies the device to the app's vendor. The value of this property is the same for apps that come from the same vendor running on the same device. A different value is returned for apps on the same device that come from different vendors, and for apps on different devices regardless of vendor. String "60A06FF5-3755-4077-AXXX
-4520CCC9CFXX"

iOS 7.6.3
Fairbid iOS 2.1.0

Third-Party Advertising

Frequency capping

Device ext.
atts
ATTrackingManager AuthorizationStatus (iOS Only) An integer passed to represent the app's app tracking authorization status, where
0 = not determined
1 = restricted
2 = denied
3 = authorized
Integer 4

iOS 7.7.0
Fairbid iOS 3.6.0

Third-Party Advertising

User tracking consent

Device ext.
inputlanguage
Device Keyboard Languages A string array containing the languages setup on the user's device keyboard. Country codes are passed in the string array, where "en", "he" = English and Hebrew languages are enabled on the user's device keyboard String array ["en","he"]

iOS 7.3.3
Android 7.3.3
Fairbid 2.2.0

Third-Party Advertising

Language preferences

Device ext.
diskspace
Device Available Disk Space An integer value describing the available disk space on the device in megabytes, where "18201" = device has 18201 MB of available disk space. MB will be rounded up and passed as a whole number to align with Apple's data use and user privacy Integer "18201"

iOS 7.6.3
Android 7.7.0
Fairbid iOS 3.6.0
Fairbid Android 3.6.0

Third-Party Advertising

Capacity to download a new app

Device ext.
totaldisk
Device Total Disk Space An integer value describing the total disk space on the device in megabytes, where "63989" = the device has 63989 MB of total disk space. MB will be rounded up and passed as a whole number to align with Apple's data use and user privacy Integer "63989"

iOS 7.6.3
Android 7.7.0
Fairbid iOS 3.6.0
Fairbid Android 3.6.0

Third-Party Advertising

Capacity to download a new app

Device ext.
ringmute
Ring Sound Settings (Android only) An integer value describing the device sound setting during time of ad request describing if sound is set to ring or mute, where "0" = mute, "1" = ring Boolean "1" Android 7.8 Third-Party Advertising User engagement
Device ext.
charging
Battery Charging An integer value describing if the device is connected to a charger, where, "0" unplugged, "1" plugged into power outlet Boolean "1"

iOS 7.6.3
Android 7.7.0
Fairbid iOS 3.6.0
Fairbid Android 3.6.0

Third-Party Advertising

User engagement

Device ext.
bluetooth
Bluetooth Connected A boolean value indicating if the device is connected to bluetooth, where "1" = connected to bluetooth Boolean "1"

iOS 7.6.3
Android 7.7.0
Fairbid iOS 3.6.0
Fairbid Android 3.6.0

Third-Party Advertising

User engagement

Device ext.
headset
Wired Headset A boolean value indicating if the device is connected to a wired headset, where "1" device is connected to any wired headset, "0" no wired headset connected Boolean "1"

iOS 7.6.3
Android 7.7.0
Fairbid iOS 3.6.0
Fairbid Android 3.6.0

Third-Party Advertising

User engagement

Device ext.
batterylevel
Battery Level An integer describing percent battery remaining on the user's device, segmented into buckets, where
100-85% = "8"
84-70% = "7"
69-55% = "6"
54-40% = "5"
39-25% = "4"
24-10% = "3"
9-5% = "2"
less than 5% = "1"
Integer "4"

iOS 7.6.3
Android 7.7.0
Fairbid iOS 3.6.0
Fairbid Android 3.6.0

Third-Party Advertising

Capacity to download a new app

Device ext.
batterysaver
Battery Saver Status A boolean value indicating if battery saver ('Low Power Mode' on iOS) has been enabled, where "1" = battery saver,
"0" not enabled
Boolean "1" iOS 7.6.3
Android 7.7.0
Fairbid iOS 3.6.0
Fairbid Android 3.6.0
Third-Party Advertising Capacity to download a new app
Device hwv Device Hardware Version The hardware version of the device passed as a string. For example, "iPhone X" String "iPhone X"

iOS 7.3.3
Android 7.3.3
Fairbid 2.2.0

Third-Party Advertising

Device categorization

Device ipv6 Internet Protocol version 6. The most recent IP version on the internet IP address with a 128-bit value String "2001:0db8:85a3:
0000:0000:8a2e:
0370:7334"
Supported on all SDKs Third-Party Advertising General location
Device utcoffset Time difference from UTC Local time as the number +/- of minutes from UTC Integer "60"

iOS 7.6.3
Android 7.7.0
Fairbid iOS 3.6.0
Fairbid Android 3.6.0

Third-Party Advertising

Timezone

Device ext.
darkmode
Dark Mode Setting A boolean value indicating if dark mode is enabled on the device, where "1" = dark mode enabled,
"0" not enabled
Boolean "1"

iOS 7.7.0
Android 7.7.0

Third-Party Advertising

Creative preferences

Device ext.
airplane
Airplane Mode Setting (Android only) A boolean value indicating if airplane mode is enabled, where "1" = airplane mode enabled,
"0" not enabled
Boolean "1" iOS 7.8
Android 7.8
Third-Party Advertising Capacity to download a new app
Device ext.
dnd
Do Not Disturb Setting (Android only) A boolean value indicating if do not disturb setting is enabled, where "1" = do not disturb enabled, "0" not enabled Boolean "1" iOS 7.8
Android 7.8
Third-Party Advertising Capacity to download a new app