Android SDK Release Notes¶
Version 12.0.3 - 11/4/2019¶
- Minor bug fix.
Version 12.0.2 - 11/1/2019¶
- Bug fixes.
Version 12.0.1 - 10/15/2019¶
- Fixed excess logging.
Version 12.0.0 - 10/02/2019¶
- Completely redesigned SDK with modular analytics session.
- Improved SDK cold start time, battery performance and memory performance.
- Better event and error logging.
- Resolved all strict mode violation in the SDK.
- Session is instantly initialized after the init call. No wait for session to start.
- Now supporting performance metrics.
- FlurryAgent.onStartSession(final Context context, final String apiKey)
Version 11.6.0 - 03/12/2019¶
- Updated criteria information to comply with Play Store requirements
Version 11.5.0 - 01/15/2019¶
- address GDPR consent collection approach; reach out to Flurry legal to inquire about providing consent
Version 11.4.0 - 10/31/2018¶
- Blocked ability to capture screen recording
- Fixed intermittent crash when changing orientation
- Fixed flurrySessionListener not firing
Version 11.2.0 - 08/14/2018¶
- Fix for FlurryAgent.addOrigin() not working in Flurry SDK version 11.1.1
- Fixed crash on AdRenderPolicy.getBackgroundColor()
- Fixed intermittent crash when loading a video ad
Version 11.1.1 - 07/02/2018¶
- Fix for opening Privacy Dashboard on lower end devices
- Fixed intermittent crash when fetching native ads
Version 11.1.0 - 06/18/2018¶
- Introduced support for Android Native crash
- Fix for crash on SDK 11.0.0 if initialized within an activity context
Version 11.0.0 - 05/23/2018¶
- Flurry Pulse API is no-op as service is End of Life as of 5/15. API to be removed in future release.
- Update Ad cache flush logic when GDPR related user consent changes
Version 10.1.0 - 05/02/2018¶
- Added support for App Links and Deep Links.
Android 10.0.0 - 04/12/2018¶
- Added APIs for publishers to pass GDPR scope/ user consent
- Added API for developers to take end users to Oath’s Privacy Dashboard for access/ download GDPR Data Subject Rights
- Deprecated Flurry Pulse API (note: Product will End of Life on 5/15)
Version 9.0.0 - 02/19/2018¶
- Major version release as SDK added support for Google Play Billing Library (com.android.billingclient:billing:1.0)
- Added support for Crash Tags and Breadcrumbs in preparation for UI release in 2Q’18
- Fix for dynamic ‘sponsored’ label text
- Asset cache refactor (no API change)
- Minor bug fix
Version 8.1.0 - 11/16/2017¶
- bug fixes
Version 8.0.2 - 10/31/2017¶
- Minor bug fix
Version 8.0.1 - 10/17/2017¶
- Fix for a proguard issue
Version 8.0.0 - 10/12/2017¶
- Support for Android O
- Minimum supported Android API level is 16 for analytics and ads
- Removed Tumblr in-app sharing
Version 7.2.3 - 07/26/2017¶
- Fix for static ad viewability
Version 7.2.1 - 07/18/2017¶
- Minor bug fix
Version 7.2.0 - 07/06/2017¶
- Minor bug fix
Version 7.1.1 - 05/30/2017¶
- Fix for proguard configuration
Version 7.1.0 - 05/24/2017¶
- Support for re-engagement ads
- Support for 3P viewability criteria for static ads
- Added new 3P beacon for partially viewable ads
Version 7.0.1 - 04/19/2017¶
- Fix for missing IAP receipts in case app goes to background
Version 7.0.0 - 04/05/2017¶
- AAR packaging support to simplify SDK integration
- Removed Flurry static Ads APIs
- Deprecated Tumblr in-app sharing APIs
Version 6.9.2 - 03/03/2017¶
- Fix for crash when opening advertiser’s landing url in custom chrome tabs
Version 6.9.1 - 02/28/2017¶
- Fix for WebView issue causing ad to be shown blank in case app transitions from background to foreground
Version 6.9.0 - 02/24/2017¶
- Switch to Chrome Tabs to open ad landing URLs if Google’s custom tabs dependency exists in the app. Without this dependency, ad landing URLs will continue to open in WebView.
- Reintroduced (previously deprecated) API to report error log using class name for Crash Analytics
- Fix for memory leaks
- Improvements on analytics and ads to reduce battery drain
Version 6.8.0 - 01/12/2017¶
- Improvements to reduce battery drain
Version 6.7.0 - 11/01/2016¶
- Support for new image ad asset called Thumbnail (180x180)
- Advertising beacon format improvement for Moat viewability support
Version 6.4.2 - 07/26/2016¶
- Minor bug fixes
Version 6.4.0 06/17/2016¶
- Portrait video support on interstitial ad spaces
- Fix to play audio at mute/ device volume setting during video ads
- Fix to continue video play during device orientation changes for infeed ads
Version 6.3.1 04/29/2016¶
- Fixed ProGuard issue that could cause errors with debug app builds, although release builds are fine with 6.3.0.
Version 6.3.0 03/22/2016¶
- Support for VAST video demand from RTB Marketplace in native ad unit. Publishers with native video ads enabled should see an increase in fill
- Support for Moat 3rd party video viewability, which allows demand side to attract additional brand advertisers who have Moat viewability as a table stakes requirement.
- Removed collection of IMEI per Google Play Content Developer Policy
- Introduced builder pattern to initialize Flurry SDK
Version 6.2.0 11/09/2015¶
- Support for expandable ad views for Gemini native ads. Publishers can construct an ad unit that is viewable in both collapsed and expanded format utilizing more detailed assets in the larger view.
Version 6.1.0 09/28/2015¶
- Support for Pulse 2.0, providing more flexibility to share app data to mobile partners without integrating their SDKs. Learn more on Pulse here
- Support for Android Marshmallow release
- Fixes for conversion attribution in webviews
Version 6.0.0 - 08/25/2015¶
-Introducing Tumblr inapp sharing functionality that allows publishers to share content and deeplinks on Tumblr to drive installs and reengagement
Version 5.6.0 - 07/24/2015¶
- Added support for Gemini native in-feed video ads
- Added call to action text, app categories, and app star ratings for native ads
- Improved handling of URL redirects
- Deprecated keyword targeting
Version 5.5.0 - 04/29/2015¶
- Session metrics are sent in one report instead of multiple overlapping fragments
- Fixed ad caching issue where SDK makes a call to server for each fetch
- Resolved race condition when getSessionID() and onSessionStarted() are used in conjunction
- Removed callback onSessionFinished() for session end
- Fixed couple of corner scenarios related to Pulse
Version 5.4.0 - 03/26/2015¶
- Support for new product, Pulse (currently in developer preview), which allows applications to send app usage data to comScore through Flurry SDK.
- Ads SDK jar size is < 500KB
- Provided an API to check if native ad has expired
- Provided an API to get current session ID and added callback at session start/end
- Fixed NPE issue on Gingerbread devices
- Fixed issue with setUserCookies()
- Updated SDK support for display ads mediation- Admob, Millennial and inMobi
Version 5.3.0 02/17/2015¶
- Introduced Yahoo Gemini Native ads support. Flexible ads that can be tailored to fit the design of any app
- Support for Brightroll demand in video adspaces
- Fix for duplicate firing of redirect URLs
- Minor fixes for MRAID ads and Video timer display
Version 5.1.0 01/15/2015¶
Fixed issue with incorrect timestamps in session reports
Version 5.0.0 12/08/2014¶
- New object-oriented APIs to make integration easier. It is recommended to use these APIs.
- Sessions are automatically tracked on Ice Cream Sandwich (API level 14) and above
- Ads SDK size is considerably reduced from 1.1MB to 590KB
- Improved location tracking to avoid battery usage
- Use of HTTPS is now mandatory due to Google Play! Store restrictions
- Fixed issues with VAST wrapper and multiple click tracking URLs
Version 4.2.0 10/01/2014¶
- Improved caching for videos served through VAST
- Fixed rendering issues with MRAID ads
- Removed SSL test code
Version 4.1.0 07/11/2014¶
- Improved handling of Client side RTB auction
- Introduced timeout if GPS location report cannot be read
- Support for mediating banner and interstitial ads via Facebook Audience network
- Improved reporting of events for postview in video ads
- Google Mobile Ads is mediated through Google play services and support for standalone admob SDK is deprecated
Version 4.0.0 05/19/2014¶
- Flurry Advertising SDK now uses the Android Advertising ID provided by Google Play Services and will check for and respect the user’s ad tracking preference. For more information, please visit https://developer.android.com/google/playservices/id.html
- Back button is disabled for non-skippable video ads
- Better user experience for videos and full screen ads on KitKat devices (4.0.0.rc.2 04/08/2014)
- Support for VAST videos over RTB (Version 4.0.0.rc.1 03/24/2014)
- Video ads can be user initiated or auto-play (4.0.0.rc.1 03/24/2014)
- Pre-caching feature available for video ads (4.0.0.rc.1 03/24/2014)
- Support for non-skippable video ads through portal setting (4.0.0.rc.1 03/24/2014)
Version 3.4.0 03/03/2014¶
- Fixed a potential security vulnerability
Version 3.3.4 02/11/2014¶
- Fix for missing uncaught exceptions in crash reports
Version 3.3.3 01/17/2014¶
- Fix for occasional crash when installed on non-supported devices with Android API level < 10
Version 3.3.2 12/12/2013¶
- Fixed issue with events missing in the session reports
Version 3.3.1 11/15/2013¶
- Added support for MoPub adapter
- Fixed some corner scenarios with ads redirecting to Android Market
Version 3.3.0 10/25/2013¶
- Separate jars are provided for analytics and ads in this release. Please go through the upgrade document to see how to utilize them.
- Minimum supported API level is 10 for analytics and ads
- Invalidate ads cache when values for keyword targeting are changed
- Added support to honor frequency cap of 1
- Appcircle & Appspot takeover ads will be locked to the screen orientation in which they were fetched
- Introduced listener method onRendered() to inform when an ad is rendered. It is required to implement this method in the application
- Fix for RTB issue where auction may be held twice for same ad request
- Fix for blank banner and takeover ads in some corner scenarios
- Fix for offerwall issue where first adunit is not shown
Version 3.2.2 08/26/2013¶
- SDK size reduced from 1.7MB to 1MB
- Fixed crash related to asyncTask
- Introduced getReleaseVersion() to return current version of Flurry SDK
- getPhoneId() is now a private method
- shouldDisplayAd() return value needs to be honored
- Optimized network performance
- Fixed 404 error page when displaying takeover ad
- Improved handling of ad requests and rendering
- Fixed behavior of back button on takeover screens
Version 3.2.1 - 06/21/2013¶
- Changed the jar file name from FlurryAgent.jar to Flurry_<ReleaseVersion>.jar
- Introduced isAdReady() to check if ad has been fetched and is prepared for display
- Support for Millenial Media SDK 5.0.1
- Support for InMobi SDK 3.7.0. Please make sure to read InMobi’s documentation as they have changed the behavior from their previous SDKs
- Handle network connectivity loss during banner refresh. Removes the ad on connection loss. Please make sure that your app has permission to access network state. android.permission.ACCESS_NETWORK_STATE
- Fix for interstitial ads and images creatives for low end Gingerbread devices
- Bug fixes related to CPI/CPC ads, nonstandard size ads and fill rate events
- Fix for offerwall issue
- Fix for admob banner issue in landscape mode
- Support redirection of click through for RTB app installs
- Resume/pause CLIPS ad when screen goes to sleep
Version 3.2.0 - 04/04/2013¶
- Moved advertising API from FlurryAgent to FlurryAds. Please check the migration notes for more details and build instructions
- Improved support for frequency capped campaigns, frequency caps are now honored more accurately.
- Added onVideoCompleted callback to FlurryAdListener
- Improvements and bug fixes related to mediation and network waterfall campaigns
- Bug fixes for layout of image creatives
- Support for re-engagement campaigns
- Support for crash analytics
- Extended stack trace reporting for handled exceptions
- Addition of crash reporting for unhandled exceptions
- Known Issues
- If an application supports both orientations and a device changes from one orientation to another, the first few banner ads in new orientation may not display correctly. After the first few ads, ads will display properly. To avoid this issue, a developer can set up different ad spaces for each orientation and do a fetch on that ad space upon change of orientation.
Version 3.1.0 - 12/21/2012¶
- added mraid 1.0 capability
- fixed offerwall bug where a extra ad unit is added
- fixed mediation display issues where it doesnt’ render properly on high-density devices
- updated mediation libraries of Millennial to 4.6.0 and AdMob to 6.2.1
Version 3.0.9- 12/05/2012¶
- added new methods fetch and display while deprecating getAd, isAdAvailable
- fixed race condition between onStartSession and initAds or isAdAvailable
- fixed AdSpaceLayoutParams For ViewGroup not called
- fixed clips issue when Activity is in Background
- fixed issue with mediated Ads not rotating correctly
- fixed issue where urlVerified is added to list of events
- fixed AppSpot initialization code and user cookie map
- fixed issue where ad logs is sent on endSession
- fixed CastClassException on AdSpaceLayout
- fixed background processing causing high impression counts
Version 3.0.6- 11/20/2012¶
- added fix to prevent ad rotation when device is locked
Version 3.0.5- 10/26/2012¶
- added fix to prevent crashing of bad phone ids in AndroidSDK 2.2
Version 3.0.4- 10/15/2012¶
- added additional delegate methods for spaceDidReceiveAd and spaceDidFailToReceiveAd when ads are/aren’t received
- deleted unused delegate listener onReward
- renamed IListener to FlurryAdListener
- fixed offerwall bug where after app is installed and opened from the playstore, returning to app causes crash
- fixed bug where banners are loaded faster than expected when device is rotated
- fixed bug where onStartSession/initializeAds crashed due to race condition and phoneId.
- added method for sending ad event logs for mediated networks to server on endSession
- prevent mediated takeovers from auto-refreshing
Version 3.0.3- 09/26/2012¶
- fixed rotation of network ads
- allow users to opt out of viewing clips ads if they have not loaded
- verified support for clips in AdUnity
- verified support for re-engagement in AdUnity
- fixed concurrent modification exception race condition when trying to send logs
- fixed offerwall bug where min, max offers not being honored
- added support for network mediation of millenial 4.6.0
- fixed auto-rotation of offerwall templates
- fixed bug where non-supported clips video would attempt to be played
Version 3.0.2- 07/30/2012¶
- Added a public method “enableTestAds” to fetch all ads in test mode
- fixed impression tracking bug that resulted in impressions=clicks in reporting
- fixed offerwall bug where closing one fullscreen offerwall opened another
- fixed offerwall bug where low number of offers shown
- fixed templating bug caused by ads with an apostrophe in title or description
- fixed a bug that prevented install_referrer from working with the google play store
Version 3.0.1- 07/12/2012¶
- Fixes potential race conditions on startSession and initializeAds
- Fixes clearing of user cookies.
- Fixes visibility of user logs and warnings in case of incorrect integration
- Fixes potential clashes of libraries if developers are using the same.
Version 3.0.rc.128 - 06/14/2012¶
- Adds method to check if an ad is available
- Adds method initialize to allow precaching of ads at startup.
- Adds methods setKeywordsForTargeting:(NSDictionary *)keywords to allow campaign targeting based on developer supplied key-value pairs.
- Updates FlurryAgent.getAd to include a default ad size parameter.
- Updates FlurryAgent.getAd to display ad completely asynchronously (without blocking) when timeout is set to 0. This is useful for the display of banners where interaction with the app can continue unimpeded by the ad display (in contrast to an interstital view).
- Implementation of Rewarded Catalogs
- Updates ad tracking to specify unique key for every distinct frame.
- Added method to enable setting up individual ad spaces to receive test ads.
Version 3.0.a.124 - 05/09/2012¶
- Allows finer control of ad display with new method FlurryAgent.removeAd(Context context, String myAdSpaceName, ViewGroup viewSpace);. This method allows a publisher to decide exactly when to remove an ad from a view.
- Adds checks for failed requests to receive ads from third party networks.
- Prevents code paths that can result in infinte loops
- Updates location to send ad logs
Version 3.0.a.123 - 05/02/2012¶
- Initial Release of Alpha SDK
Version 2.2.5 - 02/22/2012¶
- Unique Ids for event logs, error logs, and ad logs
- Reports IMEI unique identifier given user granted permission
- Checksum for validating data integrity of session reports
Version 2.2.4 - 12/08/2011¶
- Fix to event timing
- Records prior session getOffer ads if they’ve been reactivated in the current session
Version 2.2.3 - 11/23/2011¶
- Update Session timeOffset logic to avoid possible ad id collisions within a session.
- Properly reset all AppCircleModule session-related data on each valid session start.
- Refactors generating of urls from BannerView
Version 2.2.2 - 11/18/2011¶
- Fixes a timing parameter for buy click links for getOffer.
- Increases the image cache.
- Adds more debug logging for logEvent methods.
Version 2.2.1 - 10/04/2011¶
- Fixes NullPointerException when event for failed Android Market launch does not have an AppCircleCallback set.
Version 2.2 - 08/15/2011¶
- Add API to optionally set session reporting request to HTTPS.
- Detect and report devices with non-unique device IDs.
- Fixed NullPointerException, ArrayOutOfBoundsException, ConcurrentModificationException on resume of session.
Version 2.1 - 03/24/2011¶
- Offer API
- The process of accepting an Offer is significantly easier. Instead of processing a raw URL, the developer merely has to pass an offer ID to the SDK which automatically handles the process of communicating with Flurry servers and launching the Android Market page for the recommended application.
- In addition to the Offer ID, the price and description of the app are also available.
- Rather than retrieving one random Offer, developers will have access to all the Offers that is available in the SDK at that time.
- The SDK now backfills banners if they are displayed while ads are in the process of downloading. The ads will automatically be placed in the banner when they are available.
- The showCatalog() previously would not launch if there are no ads available (e.g. if there was a lack of network connectivity) without feedback to the user. It will now launch with the message “No recommendations available”.
- There is support for customizing the Intent name for launching the catalog. Previously a user opening a catalog would be forced to choose from a list of applications integrated with Flurry AppCircle due to these applications sharing the same Intent name for launching the catalog.
Availability of Ads
- There is now a simple method, hasAds(), to determine whether the SDK can supply any ads to be displayed. The new AppCircleCallback interface also allows the developer to determine the moment when new ads have been downloaded and are available.
New Callback Interface
- The developer can implement the new AppCircleCallback interface to receive AppCircle-type events.
- These events are - ads have been downloaded from the network - ads have been loaded from cache - there is an error when launching the Android Market app
- Google introduced a set of tests to check for conditions detrimental to user experience. Previous versions of the SDK violated one of these tests – writing and reading from the file system using the UI thread. This version passes all the tests.
- the logEvent(String eventId, boolean timed) for timed events no longer ignores the “timed” parameter
- the gender constants are now of byte type to match the setGender(byte gender) method
Version 2.01 - 03/01/2011¶
- Fixed potential race condition.
Version 2.0 - 02/01/2011¶
- Initial release with AppCircle
Version 1.24 - 03/25/2010¶
- Page View tracking added
Version 1.23 - 10/02/2009¶
- disable location update after timeout
Version 1.22 - 08/18/2009¶
- allow specification of Location Criteria
Version 1.21 - 06/12/2009¶
- Collect uncaught exceptions, configurable agent logging, use only android ID instead of IMEI
Version 1.20 - 04/14/2009¶
- Improved session handling across Activities
Version 1.12 - 03/26/2009¶
- Bug fixes
Version 1.11 - 03/13/2009¶
- Try ANDROID_ID for phone id
- Log error on calls to onEvent or onError outside of a session
- Report whether a session event log is complete
Version 1.10 - 03/03/2009¶
- Events 2.0 (logs, params, sequences)
Version 1.0 - 03/03/2009¶
- Better device identification, more careful synchronization
- Send old sessions on start up
- Ability to disable report location
- Report error counts
- Initial Android Agent