Android SDK Release Notes

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.6 - 07/26/2016

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 in­feed 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 in­app sharing functionality that allows publishers to share content and deeplinks on Tumblr to drive installs and re­engagement

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 post­view 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/play­services/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 ad­unit 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, non­standard 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.
  • Banner
  • 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.
  • Catalog
  • 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

STRICTMODE

  • 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.

Bug fixes

  • 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