v4.19.0 – January 19, 2023
- Internal – add query param to all ODB and MV requests `ref=https://app-sdk.outbrain.com/`
v4.18.0 – January 11, 2023
- Internal – add query param to all ODB and MV requests `ref=app.sdk`
v4.17.0 – December 20, 2022
- Internal – use `bridgeParams` to pass values between 2 Bridge widget on the same page (instead of `t` param)
- Feature – add support for platforms API in the SDK Bridge
v4.15.0 – October 31, 2022
- Internal – add `deviceType` and `dosv` params to Bridge and ODB requests to improve user-agent detection.
v4.14.0 – September 14, 2022
- Feature – Bridge support for “widget external events”, passed via
v4.12.0 – August 24, 2022
- Project – add a new target to OutbrainDemo.xcodeproj – SwiftUI-Bridge sample app
- Minor – add a new delegate method to SFWidget called
widgetRendered(_ articleUrl: String, widgetId: String, widgetIndex: Int)– to notify clients on this event
v4.10.0 – July 14, 2022
- Minor – add a new method
reportPageViewOnTheSameWidget()for specific publisher.
- Minor – SFWidget
loadMore()method should be public.
- Internal – add “oo” (opted out) param to widget Viewablity URL reporting.
- Internal – add new
errorMsgpost message method to the Bridge for errors coming from the HTML
v4.9.1 – May 30, 2022
- Internal – fix wrong param value for
urlfor error reporting
- Internal – change the logic of
isPaid()to be similar to the JS widget
- Bug fix – add 50.0 padding at the end of the WebView to fix last rec is cut error
- Improvement – SDK Bridge will take IDFA is available and app developer didnt pass it through
v4.9.0 – May 11, 2022
- Bug fix – fix crash when “pos” field is missing (AB test)
- Bug fix – if skNetworkVersion is 1.0 – the variable sourceAppId can be nil
- Bug fix – add check for cell type before calling
- Improvement – add @try\@catch wrappers around main SDK flows (classic, Smartfeed and Bridge)
- Improvement – add error reporting to Outbrain in case of SDK un-expected errors.
- Improvement – add new iPhone models to “dm” field.
v4.8.3 – April 07, 2022
- Feature -Bridge (WebView) viewability
v4.8.2 – March 02, 2022
- Bug fix – Avoid crashing the app when check if SKAdNetworks configured correctly
- Bug fix – Bridge WebView should be transparent
- Feature – Swift Package Manager support
v4.8.1 – December 15, 2021
- Bug fix – Smartfeed TableView horizontal cell missing outlet for
v4.8.0 – December 12, 2021
- Feature – support for
darkModein SFWidget (SDK-bridge).
- Infra – Migrate CircleCI to Xcode 13.1.0
v4.7.1 – October 27, 2021
- Feature – SDK Bridge – support “t” param and idx param in the SDK bridge (2 widgets on the same page).
- Improvement – add support for darkMode param for ODB (only for Smartfeed)
- Improvement – SDK Bridge – add GDPR and CCPA params
- Improvement –
webviewproperty in SFWidget should be public
- Improvement – new Smartfeed logo (new design)
- Improvement – support “t” param between SDK regular widget and SDK bridge.
v4.6.3 – August 23, 2021
UI Fix – fix UI design for Carousel item cell – remove border and fix text alignment.
Bug fix – very rare case, SFViewabilityService crashed on removeObjectsForKeys if “keys” are nil before completion block begin.
v4.6.2 – August 16, 2021
- Following request from a publisher – We added a new optional method to
v4.6.1 – August 16, 2021
- Following request from publisher – add support to manually set user id value via
+ (void) setUserId:(NSString * _Nullable)userId;
v4.6.0 – July 29, 2021
- SFWebView – SDK now contains solution for “Smartfeed on WKWebView” – see https://developeroprod.wpengine.com/ios-sfwidget-guideline/
- Improvement – Smartfeed default UI has changes significantly – now it is similar to Outbrain latest version on Mobile Web.
- Improvement – support for Viewablity per listing for regular widget.
- Internal – adjust current implementation for “widget viewability” in Smartfeed according to new VPL impl.
- Bug fix – ODB param
api_user_idwas sent with null value.
- Internal – verify that
minimumLineSpacingis implemented correctly by the publisher code
v4.5.0 – May 5, 2021
- Infra – build SDK with Xcode 12.5 (iOS 14.5)
- Fix – name conflict fix SFGradientView –> SMFradientView
v4.4.0 – April 29, 2021
- Feature – support for “Platform Endpoint”
- UI Fix – “sponsor label” position and color.
- Internal – Migrate CI artifact hosting from Bintray to GCP.
v4.3.0 – March 18, 2021
- Feature – add support for a new setting
dynamic:HeaderFontSizefrom ODB response.
- Bug fix – add support for dark-mode for app install card
- Bug fix – widget header should appear once per widget for grid types as well.
- Bug fix – in tableview the source sometimes disappeared with layout constraints issue
- Improvement – titleColor should be the same for both organic and paid rec
v4.2.1 – March 3, 2021
- Bug Fix – new method
openAppInstallRec:inViewController:together with implementing
SKStoreProductViewControllerDelegateinternally to solve some cases in which
SKStoreProductViewControllerdidn’t close correctly.
v4.2.0 – February 25, 2021
- Important – Migrating from Xcode dynamic framework to XCFramework – see Apple details here
- Internal – parse and use ODB settings
dynamic:IsShowButtonfrom odb response
- Internal – implement support for new ODB settings
- Bug fix – Walla crash on iOS12 devices
- Bug fix – Widget header should appear only once per widget
v4.1.0 – February 22, 2021
- Feature: “Read More” (see instructions here)
- Feauture: CTA button on paid rec
- Bug fix – Viewability on shown, fix rare crash if “req_id” is null
- Bug fix – smartfeed header for RTL in dark mode didnt change color
- UI fixes – Smartfeed on tablet (iPad) looks much better (font size, image ratio, etc)
- Internal: Built with Xcode 12.3.0
- Dev – add a new flag to simulate app install rec
v4.0.1 – October 29, 2020
- Feature: Weekly Highlights card
- Feature: iOS14 SKAdNetwork app install validation support.
- Feature: support for GIF images in Smartfeed.
- Bug fix – Smartfeed via UITableView on iPad crashed on orientation change after view controller was removed from screen.
- Internal: Built with Xcode 12.0.1, iOS14 SDK
- Internal: SDK and sample apps use
ATTrackingManagerfor IDFA logic (instead of deprecated
[[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled])
v3.9.2 – June 22, 2020
- Feature: Branded Carousel card
- Feature: App install card
- Bug fix: if “custom ui” is configured – font should stay “as is” (bypass optimizations)
- Internal: add
sdkVersionparam to video url
v3.9.0 – May 12, 2020
- Feature: support for optimizations (A\B tests) in Smartfeed
v3.8.7 – April 28, 2020
cnstv2was sent in odb all the time because of wrong default value
v3.8.6 – April 20, 2020
- Feature: Darkmode support (configure with
self.smartFeedManager.darkMode = true)
- Feature: GDPR v2 support
- Bug fix – for apps that support RTL locale, use the default xib and let ios auto-layout RTL support work.
- Improvement: Fade-in animation when loading an image in Smartfeed.
- Improvement: RTL now checks for arabic, farsi and hebrew languages.
- Internal: SDK is built with Xcode 11.3.1 on CircleCI
- Internal: Add defualt value for vidget url
v3.8.5 – January 22, 2020
- Feature: support CCPA according to the official iAB guidelines (last page)
- Feature: new Smartfeed card –
trending in category
- Internal – add
article urlto video url params
v3.8.4 – January 6, 2020
- Improvement: potential memory leak in Viewability on regualar widget in some cases (Barstool fix)
- Improvement: rename OBImage –> OBImageInfo due to conflict with Apple OnBoarding library
- Improvement: isSkySolutionActive will now be set manually by the app developer
v3.8.3 – October 31, 2019
- Infrastructure – update CircleCI to use Xcode 11.1
- Infrastructure – Xcode11 (iOS 13) support (clean warnings for new Xcode).
- Bug fix – Viewability per widget didn’t work for StackView solution.
v3.8.2 – September 26, 2019
- Bug fix – crash in “Sky solution” if
numberOfRowsInSectionvalue < total items in the feed.
v3.8.1 – August 26, 2019
- Bug fix – When
SFTypeStripVideois at the parent response, header text should have been ignored and moved to the Smartfeed header.
- Bug fix – Smartfeed “source label” was showing for organic rec if “publisher logo” image was missing.
- Bug fix – Smartfeed, rec title should be gray for organic recs on all 1 col templates.
v3.8.0 – August 19, 2019
- Feature: add
disableCellShadowsflag to SmartFeedManager
- Feature: add UIStackView implementation support, see UIStackView Integration Guide.
- Feature: StackView solution, added
setUseDefaultCollectionViewDelegateto set the SDK as the default delegate for the UICollectionView.
- Improvement: Sample apps should support portrait mode only
- Improvement: Add
skipRTLflag to improve performance (Sky optimization).
- Improvement: Smartfeed tableview will detect if “Sky Solution” is activated and if so, will act accordingly.
- Bug fix: Drop shadow on SF cells sometimes was drawn wrong.
- Bug fix: Smartfeed – on orientation change should reload the visible cells if on iPad.
- Bug fix: Mobile device on landscape should load the same cell sizes as portrait (used different width)
- Bug fix: Viewability per listing should work for UITableView as well
- Internal: Support “shake” gesture in sample app for GTO testing.
- Internal: Upgrade project to build with Xcode 10.2.1 (iOS 12.2)
v3.7.6 – July 20, 2019
- Bug fix –
smartFeedResponseReceived:forWidgetId:returned the parent widget id every time.
- Improvement: smartfeed in middle will fetch recs only on app developer explicit call
v3.7.5 – July 1, 2019
- Feature: Smartfeed in the middle of the screen support (possible to have additional custom content below the SF).
- Improvement: fix all nullability warnings in xcode 10.2.1
- Improvement: Smartfeed fetchMoreRecommendations() is now public.
- Improvement: add
testLocation()to Outbrain.h to simulate location, e.g. “us”
v3.7.0 – June 6, 2019
- Bug fix – Viewablity report served, if url didn’t include “tm” the SDK failed to report to server.
- Bug fix – Viewablity actions, if url is nil the SDK should ignore the report.
- Feature: App developer can now use
SFDefaultDelegate, in which case the SDK will handle the click events.
v3.6.0 – April 1, 2019
- Feature: New Smartfeed API (Multivac)
- Feature: Viewability per listing
- Feature: Served vs Requested
- Improvement: Sponsored label improve implementation logic for widget with mix of paid and organic recs. Make sure we remove the paid label every time we configure a new cell
- Improvement: isRTL implementation
- Improvement: Barstool suggested fix for
decodeHTMLEnocdedStringmethod (stop using NSDocumentTypeDocumentAttribute from background thread).
- Improvement: Video – support reload of additional videos in the same WebView
- Improvement: In
fetchMoreRecslogic, we want to trigger the reload on the last item as well.
v3.5.2 – February 10, 2019
- Bug fix: detecting RTL in string was implemented incorrectly.
- Bug fix: set a limit on the number of lines in rec title for Thumbnail cells.
- Add support for displaySourceOnOrganicRec in SmartFeedManager.
sfItem.isCustomUIis now supported in the horizontal view as well
sfIteminstead of recs array and OBSettings directly
- Make some order in the header file imports in the SDK.
- UI fix – If rec title is RTL we will set the source text alignment to be the same, otherwise it will look weird in the UI.
v3.5.1 – February 10, 2019
- Bug fix – Viewability for regular widgets didn’t work for index > 0
- Refactor viewability code
v3.5.0 – January 29, 2019
- Per Sky request – add “pauseVideo” method to
- Per Sky request – isVideoCurrentlyPlaying and isVideoEligible flag
- OBVideoWidget support in the SDK
- Smartfeed “chunk size” settings support
- ios-release.sh script update
- Remove the “Recommended by” label from the Smartfeed
- Bug fix: WKWebView for the video player should have scrolled disable
- Bug fix: default value for isVideoEligible should be YES
- UI improvement for the Smartfeed header cell
v3.4.9 – January 10, 2019
- Support for “source format”.
- Support for “audience campaign”.
- Bug fix – HTML encoding characters appeared in the UI.
- Per Sky request – implement
- Per Sky request – add
configureHorizontalItem:withRec:method to enable app developers to configure specific UI design on horizontal item.
- Per Sky request – improve the table view loading by calling
v3.4.8 – January 3rd, 2019
testRTBflag to Outbrain public class to seperate the RTB simulation from the
SFTypeBadTypeand also according to Sky request, add
-(SFItemType) sfItemTypeFor:(NSIndexPath *)indexPath;
- Bug fix – sponsored label was displayed on Smartfeed items when it should not appear.
- Bug fix – Smartfeed in table view – single rec tappable area was wrong.
- Bug fix – when trying to set custom ui for cell type SFTypeCarouselWithTitle the SDK reverted (by mistake) to default xib file.
Smartfeed custom UI for
SFTypeSmartfeedHeaderwill work only via:
self.smartFeedManager.register(headerCellNib, withReuseIdentifier: “AppSFTableViewHeaderCell”, for: SFTypeSmartfeedHeader)
cellTitleLeadingConstraintproperty for Horizontal cell (table view and collection view) per Sky request.
v3.4.7 – December 20th, 2018
- Update signature for method
self.smartFeedManager.register(singleCellNib, withReuseIdentifier: "AppSFSingleCell", for: SFTypeStripWithTitle)
- Bug fix – Sponsored label was added multiple times to the UI instead of once.
- Header files of the Smartfeed cell classes are now public.
- Add new SmartFeedDelegate method –
v3.4.6 – December 13th, 2018
- Support header for custom UI –
self.smartFeedManager.registerHeaderNib(headerCellNib, withReuseIdentifier: "AppSFTableViewHeaderCell")
- Support transparent color for horizontal container cell –
- Support set value for horizontal margin for horizontal container cell –
self.smartFeedManager.horizontalContainerMargin = 40.0
let itemType = self.smartFeedManager.sfItemType(for: indexPath)
func smartFeedResponseReceived(_ recommendations: [OBRecommendation], forWidgetId widgetId: String)
self.smartFeedManager.register(singleCellNib, withReuseIdentifier: "AppSFSingleCell", for: SFTypeStripWithTitle)
v3.4.5 – December 10th, 2018
- UI fix – clean yellow border when Video player is active
- Bug fix: crash in isRTL method, NSLinguisticTagger Range or index out of bounds
- Add protection in code for custom ui to make sure we will not crash due to a bad xib file
- Bug fix – edit constraints to solve a bug in iPad carousel item.
- Improvement – remove OBLabel from Smartfeed header cell
v3.4.4 – December 6th, 2018
- UX Optimization (derieved from Sky). 1) First reloadData() will be called for parent + children response (was called only for parent) 2) If Smartfeed is TableView (UX performance not so good) and we are about to update UI for relatively small number of items and feedCycleLimit is set and we’re not at the limit yet – let’s postpone the reloadUI and loadMoreAccordingToFeedContent instead.
- 2 fixes in Smartfeed tableview logic which solve crashes for Sky demo app in which they use UIPageViewController with ArticleVC in carousel. The quick loading cause those crashes. now it is much more stable
v3.4.3 – December 5th, 2018
- Smartfeed Paid Label support
- Smartfeed batch size = 1
- Add update_version.sh
v3.4.2 – Novemeber 28th, 2018
- Viewability support for Smartfeed sub-widgets (children) – UICollectiovView and UITableView
- Bug fix: Tablets image size should be about 3:2 and not 3:1
v3.4.1 – Novemeber 26th, 2018
- Sponsored Label – create the label dynamically in the UI according to ODB response
- External ID param
v3.3.1 – Novemeber 12th, 2018
- RTL support
- Publisher logo width and height in the UI will be set according to ODB settings
- Bug fix – Smartfeed header size adjustment to tablets (iPad)
- Add important unit tests to the iOS SDK which allow us to verify all UI templates (xib files) of the Smartfeed have their Outlets ready and connected
- Bug fix: publisher logo was missing from basic single xib files
v3.3.0 – Novemeber 1, 2018
- GDPR support
- Bug fix – custom ui didnt change color of rec title, fix for tableview
- Bug fix – custom ui didnt change color of rec title
- Bug fix – infinite feed didnt work because condition was wrong
v3.2.0 – October 21, 2018
- Video player in Smartfeed
- Support for Smartfeed with only a parent with single recommendation (no children)
- Designating Nullability in Objective-C APIs – https://developer.apple.com/documentation/swift/objective-c_and_c_code_customization/designating_nullability_in_objective-c_apis