NAV
Sample Code

iOS SDK Intro (v4.2)

The Sharethrough SDK allows you to monetize native in-app inventory for both programmatic demand and direct sell campaigns.

This document contains instructions configuring native ads in your native iOS app.

Native ads should fit the form and function of your application. Below are two examples of in-feed native ads. On the left is the native in feed unit, and on the right is the interaction after the user has tapped on the ad.

Example 1. News Feed Style

Example 2. Card Style Feed

Get Started

Here are 2 basic steps to setup your app with Sharethrough SDK.

Option 1 - Install via Cocoapods

pod 'SharethroughSDK'

Option 2 - Manual Install

  1. Download the SDK. The latest version can always be found on the public GitHub Repo

  2. Untar and Drag the Framework to your Project in Xcode

  3. Choose Create groups for any added folders and Check Copy items into destination group’s folder

  4. Add the -objective_c build flag to your linker flags More information about this flag can be found in the Apple documentation

  5. Make sure to link against the following frameworks

    • SharethroughSDK.framework
    • MediaPlayer.framework
    • AdSupport.framework
    • CoreGraphics.framework
    • UIKit.framework
    • Foundation.framework
    • AVKit.framework
    • AVFoundation.framework
    • CoreMedia.framework
    • SafariServices.framework

Import the Header

Import Sharethrough SDK Header

#import <SharethroughSDK/SharethroughSDK.h>

To use the Sharethrough SDK, import the header

Integrate Sharethrough Ads

Implement the protocol

STRAdView Protocol

//required
- (UILabel *)adTitle;
- (UIImageView *)adThumbnail;
- (UILabel *)adSponsoredBy;
- (UIButton *)disclosureButton;

//optional
- (UILabel *)adDescription;
- (UIImageView *)adBrandLogo;

In order to show ads, you will need to create a view that conforms to the STRAdView Protocol

Choose your API

Please read the following description to choose the API that works best for your iOS app.

Basic API UITableView UICollectionView
This gives you the most control and flexibility. It can be used in any view or viewController Automatically render ads within vertical news feed Automatically render ads within vertical & horizontal news feed

Basic API

The ideal choice for a combination of control and flexibility. The basic API allows you to place ads in any view that conform to the STRAdView Protocol. These views can be placed in a table view, collection view, or any other view controller. It is your responsibility to track whether ads are available through the delegate and to display them accordingly.

Prefetch Ads

Prefetch Ads

- (void)prefetchAdForPlacementKey:(NSString *)placementKey customProperties:(NSDictionary *)customProperties delegate:(id<STRAdViewDelegate>)delegate;

When using the Basic API it is best practice to prefetch Ads using the following method. The delegate will be informed when ads are available.

Check if Ad is Available

- (BOOL)isAdAvailableForPlacement:(NSString *)placementKey atIndex:(NSInteger)index;

It is best practice to ensure that an ad is available before attempting to place it in a view. The prefetch methods in the delegate will inform you at the start of the app lifecycle, but this call is useful for later in the app’s lifecycle.

Place Ads In View

Place Ads In View

- (void)placeAdInView:(UIView<STRAdView> *)view placementKey:(NSString *)placementKey presentingViewController:(UIViewController *)presentingViewController index:(NSInteger)index customProperties:(NSDictionary *)customProperties delegate:(id<STRAdViewDelegate>)delegate;

Use STRAdViewDelegate

Use STRAdViewDelegate

- (void)adView:(id<STRAdView>)adView didFetchAdForPlacementKey:(NSString *)placementKey atIndex:(NSInteger)adIndex;

All of the methods for the basic API make calls back to the STRAdViewDelegate to inform you of changes of state within the SDK.

The didPrefetchAdvertisement and didFaileToPrefetchForPlacementKey methods are useful for determining if the prefetch is successful

- (void)didPrefetchAdvertisement:(STRAdvertisement *)strAd;
- (void)didFailToPrefetchForPlacementKey:(NSString *)placementKey;

The adView:didFetchAd:ForPlacementKey:atIndex: should be used to signal that an ad was available for the the given adView and the view can be displayed

- (void)adView:(id<STRAdView>)adView didFetchAd:(STRAdvertisement *)ad ForPlacementKey:(NSString *)placementKey atIndex:(NSInteger)adIndex;

The adView:didFailToFetchAdForPlacementKey:atIndex: should be used to signal that no ad was available for the the given adView and the blank view should not be displayed

- (void)adView:(id<STRAdView>)adView didFetchArticlesBeforeFirstAd:(NSInteger)articlesBeforeFirstAd andArticlesBetweenAds:(NSInteger)articlesBetweenAds forPlacementKey:(NSString *)placementKey;

The adView:didFetchArticlesBeforeFirstAd:andArticlesBetweenAds:forPlacementKey: can be used to receive updated fields from the server for determining where ads should be placed in a feed.

When No Ads Are Available

It’s important to handle the case when no ads are available. This can be done by using the delegate and implementing the method adView:didFailToFetchAdForPlacementKey:atIndex:. This method will be called when no ad is available, and you should be sure not to show the blank ad view in this case.

By default your placement will always return an ad, for testing purposes. Please reach out to your account representative to turn on integration mode to simulate real ad fill.

UITableView API

The UITableView API allows you to integrate ads directly into your stream without any extra work on your part. It keeps track of your view’s delegate and datasource, and intelligently ensures that you change only your content, without inadvertently affecting any advertisements. The API handles all the work of fetching ads and displaying when available.

Register Ad Cell

Register Ad Cell objective_c [self.tableView registerClass:[STSNewsFeedCell class] forCellReuseIdentifier:kCellIdentifier]; [self.tableView registerClass:[STSAdNewsFeedCell class] forCellReuseIdentifier:kTableViewAdCellReuseIdentifier];

In your viewDidLoad method, register a cell reuse identifier specifically for advertisement cells. This reuse identifier can register the same class as the rest of your content cells, or it can register a class that will only be used for ad cells. Whichever method you choose, the class must conform to the STRAdView protocol. For example, in our sample app, we have the following 2 lines of code:

kCellIdentifier and kTableViewAdCellReuseIdentifier are unique NSStrings defined at the beginning of our controller, but they can be defined wherever makes sense for your application. We chose to register 2 classes - the STSAdNewsFeedCell is just a subclass of STSNewsFeedCell, with additional accessors to make it compatible with the STRAdView protocol.

Place Ads in Table View

Place Ads in Table View

- (void)placeAdInTableView:(UITableView *)tableView adCellReuseIdentifier:(NSString *)adCellReuseIdentifier placementKey:(NSString *)placementKey presentingViewController:(UIViewController *)presentingViewController adHeight:(CGFloat)adHeight adSection:(NSInteger)adSection customProperties:(NSDictionary *)customProperties;

Call to Protocol

The SDK provides category methods on UITableView which replace UITableView’s default methods. These category methods are prefixed with str_, and can be used instead of the UITableView default methods. Some of the category methods are required to ensure that your content’s behavior is not affected by the advertisement; other optional methods are convenient accessors that allow you to manipulate index paths without having to account for ads. The required category methods are below:

The complete list of category methods, required and optional, is in the documentation.

UICollectionView API

The UICollectionView API allows you to integrate ads directly into your stream without any extra work on your part. It keeps track of your view’s delegate and datasource, and intelligently ensures that you change only your content, without inadvertently affecting any advertisements. The API handles all the work of fetching ads and displaying when available.

Register Ad Cell

Register Ad Cell

UINib *cellNib = [UINib nibWithNibName:NSStringFromClass([STSCardStyleCell class]) bundle:[NSBundle mainBundle]];

[self.collectionView registerNib:cellNib forCellWithReuseIdentifier:kCollectionViewCellReuseIdentifier];

[self.collectionView registerNib:cellNib forCellWithReuseIdentifier:kCollectionViewAdCellReuseIdentifier];

In your viewDidLoad method, register a cell reuse identifier specifically for advertisement cells. This reuse identifier can register the same class as the rest of your content cells, or it can register a class that will only be used for ad cells. Whichever method you choose, the class must conform to the STRAdView protocol. For example, in our sample app, we have the following 2 lines of code:

kCollectionViewCellReuseIdentifier and kCollectionViewAdCellReuseIdentifier are unique NSStrings defined at the beginning of our controller, but they can be defined wherever makes sense for your application. We registered the same class loaded from a nib, STSCardStyleCell, to be used for both normal cells and advertisement cells. We made minimal changes to STSCardStyleCell to become compatible with the STRAdView protocol.

Place Ads in Collection View

Place Ads in Collection View

- (void)placeAdInCollectionView:(UICollectionView *)collectionView adCellReuseIdentifier:(NSString *)adCellReuseIdentifier placementKey:(NSString *)placementKey presentingViewController:(UIViewController *)presentingViewController adSize:(CGSize)adSize adSection:(NSInteger)adSection customProperties:(NSDictionary *)customProperties;

Call to Protocol

The SDK provides category methods on UICollectionView which replace UICollectionView’s default methods. These category methods are prefixed with str_, and can be used instead of the UICollectionView default methods. Some of the category methods are required to ensure that your content’s behavior is not affected by the advertisement; other optional methods are convenient accessors that allow you to manipulate index paths without having to account for ads. The required category methods are below:

The complete list of category methods, required and optional, is in the documentation.

Ad Server Integration

DFP

Create a DFP Ad Unit

Save your work, then retrieve the Ad unit ID by clicking Generate tags. Send the Ad Unit ID to Sharethrough to be associated with the chosen Sharethrough placement.

Adding a Direct Sell Creative

  1. In the line item where you want the creative to serve, select Add Creative.
  2. Select SDK Mediation.
  3. Check the override box and put in 320x50 size override.
  4. For Ad Network select Custom Event.
  5. For Parameter enter creative_key=YOUR_CREATIVE_KEY or campaign_key=YOUR_CAMPAIGN_KEY.
  6. For Label enter Sharethrough.
  7. For Class Name enter STRDFPMediator.
  8. Enter the name and any other fields.
  9. The creative dimensions should match the smart banner ad unit dimensions, 320x50.
  10. Make sure to target to the desired SFP SDK ad unit(s) you have set up in DFP.

Important: Set the label to Sharethrough and set the Class Name to com.sharethrough.sdk.STRDFPMediator.

Adding a STX Monetize Creative

  1. In the line item where you want the creative to serve, select Add Creative.
  2. Select SDK Mediation.
  3. Select the override box and enter size override of 320x50.
  4. For Ad Network, select Custom Event.
  5. For Parameter, enter STX_MONETIZE.
  6. For Label, enter Sharethrough.
  7. For Class Name, enter STRDFPMediator.
  8. Fill in the Name and any other fields as necessary.
  9. The creative dimensions should match the smart banner ad unit dimensions, 320x50.
  10. Make sure to target to the desired SFP SDK ad unit(s) you have set up in DFP.

Important: Set the label to Sharethrough and set the Class Name to STRDFPMediator.

Bypassing Ad Server Calls

Should you desire to speak directly with your adserver and pass along the data to us directly, that can be accomplished using the following parameters.

Direct Sold Creative

In the customProperties dictionary parameter set the key to sharethrough_creative_key and the value to the direct sold creative you would like to have returned.

Direct Sold Campaign

In the customProperties dictionary parameter set the key to sharethrough_campaign_key and the value to the direct sold campaign you would like to have returned.

Source Code

The source code is open source and available on Github.

Sample App

The sample app shows several ways of integrating the Sharethrough SDK to display ads. The sample app emulates a few different news reader styles, while including ads and test cases to help give suggestions of how the SDK can be unit tested within your application.

License Agreement

SDK END USER LICENSE AGREEMENT

This SDK End User License Agreement and the license granted below governs Your installation and use of the SDK (as defined below). These terms constitute a legal agreement between You and Sharethrough Inc. and its affiliates (collectively, “Sharethrough”). Please read this SDK End User License Agreement, the Terms of Service available at http://www.sharethrough.com/publishers/terms-and-conditions.html, and the privacy policy available at http://native.sharethrough.com/privacy-policy.html, (collectively, this “Agreement”) carefully before pressing the “I Agree” button or using the SDK. By pressing “I Agree” or downloading, installing, copying or using any portion of the SDK, You are agreeing to be bound by the terms of this Agreement. If You represent a legal entity, You acknowledge that You have the legal authority to bind such entity. If You do not agree to the terms of this Agreement, do not download or use the SDK. Sharethrough provides this Software Developer Kit, which includes, without limitation, several components (the “Components”), APIs, associated documentation (the “Associated Documentation”), code and API usage examples, and any error corrections, updates or new releases thereto, all of which may include object code and source code, as provided by Sharethrough (collectively, the “SDK”) for the intended purpose of allowing publishers and developers (also referred to as “You” and “Your”) to integrate into and utilize the SDK with Your applications in order to better integrate and configure native advertisements in Your applications (“Your Products”). There may be additional terms and conditions applicable to certain Components of the SDK, all of which are incorporated herein by reference. You agree to abide by such other terms and conditions. To the extent that a conflict exists between the terms provided below and those posted for or applicable to certain Components of the SDK, the latter are controlling.

  1. Intellectual Property Rights. a. You understand and agree that Sharethrough and its licensors own and retain all right, title and interest in and to the SDK and all Intellectual Property Rights (as defined below) therein (collectively, the “Sharethrough Property”). All rights to the Sharethrough Property not expressly granted herein are reserved by Sharethrough and its suppliers. b. You are expressly prohibited from using the Sharethrough trademark and trade name and Sharethrough product names in any way and anywhere (including without limitation, use in Your business’s trade names or business names, domain names, or product names) without prior written authorization from Sharethrough. c. Sharethrough may, at its sole discretion and without restriction, use any feedback, suggestions and ideas (“Feedback”) You provide in future modifications of the SDK or any of Sharethrough’s products or offerings. You hereby grant Sharethrough a perpetual, worldwide, fully transferable, irrevocable, royalty free license to use, reproduce, modify, create derivative works from, distribute and display the Feedback in any manner and for any purpose. d. You shall own any data, information or material submitted to Sharethrough in the course of using the SDK (collectively, “Your Data”). You hereby grant Sharethrough a worldwide license to use, access, store, and reproduce Your Data for the limited purpose of operating, and improving the SDK and Sharethrough’s products and offerings, and to develop updates and newer versions of the SDK and Sharethrough’s products and offerings (and Sharethrough will have no continuing obligation to You with respect to such improvements or developments); provided, however, Sharethrough shall not disclose Your Data to any third party, except to the extent such data has been aggregated and anonymized. e. For purposes of this Agreement, “Intellectual Property Rights” means any patent rights, copyrights, trade secrets, trade names, service marks, moral rights, know-how and any other similar rights or intangible assets recognized under any laws or international conventions, and in any country or jurisdiction in the world, as intellectual creations to which rights of ownership accrue, and all registrations, applications, disclosures, renewals, extensions, continuations or reissues of the foregoing now or hereafter in force.

  2. License to Use SDK; Restrictions; Representations and Warranties. a. Subject to the terms and conditions of this Agreement, Sharethrough grants You a limited, non-exclusive, non-transferable, nonassignable, royalty free, revocable and terminable license to use the SDK solely in accordance with the Associated Documentation and for the intended purpose stated herein. b. You may make a reasonable number of copies of the SDK (i) so as to use the SDK for the intended purpose stated herein; and (ii) for archival purposes for use as back-ups when the SDK is not operational, which copies shall be subject to the provisions of this Agreement and all proprietary notices shall be reproduced in such copies. c. You may not distribute, rent, sell, lease, lend, grant rights in or sublicense the SDK or any Component or derivative work thereof as an independent product. You also agree not to remove any Sharethrough (or any of its suppliers’) copyright notices, trademarks, restricted rights legend or any other noticed from the SDK. d. You may not modify, publicly display, distribute, transfer, create derivative works, reverse engineer, reverse compile, adapt or disassemble the SDK, including without limitation any Component, in any way other than for the intended purpose stated herein, except as and only to the extent that such foregoing restriction is prohibited by applicable law. You also agree not to add or delete any program files that would modify the functionality and/or appearance of the SDK other than for the intended purposes stated herein. e. You will not use the SDK with or to (i) develop any application or program containing viruses, worms, time bombs, Trojan horses, back doors or other computer programming routines that are intended to damage or detrimentally interfere with or surreptitiously intercept or expropriate any system, data or information; (ii) violate any law or regulation; or (iii) interfere with the operation of the SDK or any of Sharethrough’s product or offering. f. You may not modify, distribute or convey the SDK or Sharethrough’s APIs or any code contained therein so that such APIs, code or any application to which it links, or which it is a part of, becomes subject to an Excluded License. An “Excluded License” is defined as one that requires, as a condition of license, use, modification, distribution or conveyance, that (i) the code be disclosed or distributed in source code form; (ii) others have the right to modify or create derivative works of it; or (iii) it becomes redistributable at no charge. g. You understand that portions of the SDK, including the third party software provided therein, may have their own licenses or terms of use, which may or may not be made available, but which You are subject to should You use the SDK. h. You agree that any direct or indirect distribution of any of Your Products shall be under the terms of an end user license agreement containing terms that (i) prohibit any modifications to Your Products or any part thereof; (ii) prohibit any reverse engineering, disassembly or recompilation of Your Products or any part thereof; (iii) disclaim any and all warranties on behalf of Sharethrough and each of its suppliers; (iv) disclaim, to the extent permitted by applicable law, liability of Sharethrough and its suppliers for any damages, whether direct, indirect, special, incidental or consequential, arising from the use of Your Products; (v) require the end user to comply fully with all relevant export laws and regulations of the United States to assure that Your Products or any part thereof is not exported, directly or indirectly, in violation of United States law; and (vi) include the appropriate copyright notice (collectively, the “Minimum EULA Terms”). For avoidance of doubt, You may comply with the requirements of this Section by using the terms “supplier” and/or “licensor” as applicable, instead of the Sharethrough name.

  3. Representations and Warranties By using the SDK, You expressly represent and warrant that (i) You have reviewed this Agreement; (ii) You have the right, authority and capacity to enter this Agreement and abide by its terms; (iii) You are not located in a country that is subject to a U.S. government embargo, or that has been designated by the U.S. Government as a “terrorist supporting” country; (iv) You are not listed on any U.S. Government list of prohibited or restricted parties; and (vi) You are at least 18 years of age. If You reside in a jurisdiction which restricts the use of the SDK because of age, or restricts the ability to enter into agreements such as this one due to age, You must abide by such age limits and You must not use the SDK. You may not authorize others to use Your account, and You may not assign or otherwise transfer Your account to any other person or entity. When using the SDK You agree to comply with all applicable laws from Your home nation, and the country, state and city in which You are present while using the SDK.

  4. Confidentiality. “Confidential Information” means all information, data and material obtained by You as part of the Your activities associated with this Agreement, including without limitation, the SDK. Confidential Information does not include information (i) that is or becomes public knowledge or is received by either party without any breach of any confidentiality obligation; (ii) that the receiving party can document was independently developed without use or access to the Confidential Information; or (iii) that the receiving party can document was previously known prior to receipt of the Confidential Information. You agree to (i) use the Confidential Information only in connection with fulfilling Your rights and obligations under this Agreement; (ii) hold the Confidential Information in strict confidence and exercise due care with respect to its handling and protection, consistent with Your protection of Your own confidential information but not less than reasonable care; (iii) not publish or disclose the Confidential Information except for disclosures to employees and subcontractors who have a bona fide need to know the Confidential Information and are subject to an obligation of confidentiality at least as protective as set forth herein. You agree that any unauthorized disclosure of the Confidential Information would cause irreparable harm and that in the event of any breach or threatened breach of the above confidentiality obligations, Sharethrough shall be entitled to obtain equitable relief in addition to any other remedy.

  5. No Sharethrough Support or Maintenance; Risk of Use. Sharethrough may, but is under no obligation to, provide updates, fix bugs or errors or to address any other issues You may raise with the quality or performance of any component of the SDK. If Sharethrough does decide to provide one or more of the above, such shall be considered part of the SDK for purposes of this Agreement. You acknowledge and agree that Your use, modification and/or implementation of the SDK or any portion thereof will be at Your own risk and account.

  6. Third Party Services.
    The SDK may display, include or make available content, data, information, applications or materials from third parties or provide links to certain third party web sites, products, or services (collectively, “Third Party Materials”). By using the SDK, You acknowledge and agree that Sharethrough is not responsible for examining or evaluating the content, accuracy, completeness, timeliness, validity, copyright compliance, legality, decency, quality or any other aspect of such Third Party Materials. Sharethrough does not warrant or endorse and does not assume and will not have any liability or responsibility to You or any other person for any Third Party Materials. You must comply with all applicable third party terms of agreement when using Third Party Materials.

  7. Term and Termination. a. This Agreement will commence on the date You download or otherwise access any portion of the SDK, and will continue until terminated by You or Sharethrough. Your rights under this Agreement may be terminated by Sharethrough immediately and without notice if You fail to comply with any term or condition of this Agreement. Upon such termination, Your license to the SDK will terminate immediately and You must immediately cease using the SDK, and destroy all complete and partial copies of the SDK within Your possession or control. b. The Intellectual Property Rights, Confidential Information, Warranty Disclaimer, Limitation of Liability and Indemnification sections set out in this Agreement shall survive any termination or expiration of this Agreement.

  8. Warranty Disclaimer. YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT USE OF THE SDK IS AT YOUR SOLE RISK. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE SDK IS PROVIDED “AS IS” AND “AS AVAILABLE”, WITH ALL FAULTS AND WITHOUT WARRANTY OF ANY KIND, AND SHARETHROUGH HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS WITH RESPECT TO THE SDK, EITHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NON-INFRINGEMENT OF THIRD PARTY RIGHTS. SHARETHROUGH DOES NOT WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE SDK, THAT THE FUNCTIONS CONTAINED IN, OR SERVICES PERFORMED OR PROVIDED BY, THE SDK WILL MEET YOUR REQUIREMENTS, THAT THE OPERATION OF THE SDK WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT DEFECTS IN THE SDK WILL BE CORRECTED. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY SHARETHROUGH OR ITS AUTHORIZED REPRESENTATIVE SHALL CREATE A WARRANTY. SHOULD THE SDK PROVE DEFECTIVE, YOU ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES OR LIMITATIONS ON APPLICABLE STATUTORY RIGHTS OF A CONSUMER, SO THE ABOVE EXCLUSION AND LIMITATIONS MAY NOT APPLY TO YOU.

  9. Limitation of Liability. YOU ACKNOWLEDGE AND AGREE THAT ANY USE OR DISSEMINATION BY YOU OF THE SDK IS YOUR SOLE RESPONSIBILITY AND AT YOUR OWN RISK. YOU ACKNOWLEDGE AND AGREE THAT SHARETHROUGH BEARS NO LIABILITY OR RESPONSIBILITY FOR SUCH USE OR DISSEMINATION. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT SHALL SHARETHROUGH BE LIABLE FOR PERSONAL INJURY, OR ANY INCIDENTAL, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES WHATSOEVER, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, LOSS OF DATA, BUSINESS INTERRUPTION OR ANY OTHER COMMERCIAL DAMAGES OR LOSSES, ARISING OUT OF OR RELATED TO YOUR USE OR INABILITY TO USE THE SDK, OR ARISING OUT OF ANY RELATIONSHIP OR TRANSACTION BETWEEN YOU AND ANY THIRD PARTY SERVICE PROVIDER, HOWEVER CAUSED, REGARDLESS OF THE THEORY OF LIABILITY (CONTRACT, TORT OR OTHERWISE) AND EVEN IF SHARETHROUGH HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY FOR PERSONAL INJURY, OR OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU. YOU EXPRESSLY WAIVE AND RELEASE ANY AND ALL RIGHTS AND BENEFITS UNDER SECTION 1542 OF THE CIVIL CODE OF THE STATE OF CALIFORNIA (OR ANY ANALOGOUS LAW OF ANY OTHER JURISDICTION), WHICH READS AS FOLLOWS: “A GENERAL RELEASE DOES NOT EXTEND TO CLAIMS WHICH THE CREDITOR DOES NOT KNOW OR SUSPECT TO EXIST IN HIS FAVOR AT THE TIME OF EXECUTING THE RELEASE, WHICH, IF KNOWN BY HIM, MUST HAVE MATERIALLY AFFECTED HIS SETTLEMENT WITH THE DEBTOR.”

  10. Indemnification. You agree to fully indemnify and hold harmless Sharethrough, its directors, officers and employees, against any and all claims, liabilities, losses, actions, damages, or lawsuits including attorney’s fees, that arise from or are in connection to (i) Your use or distribution of the SDK or any portion thereof; (ii) any application or product You develop therefrom or that incorporates or uses the SDK, including without limitation Your Products; (iii) any Intellectual Property Rights infringement claim that arises from Your use of the SDK or Your Products developed therefrom; and/or (iv) Your breach of this Agreement.

  11. Export Law. You may not use or otherwise export or re-export the SDK except as authorized by United States law and the laws of the jurisdiction in which the SDK was obtained. In particular, but without limitation, the SDK may not be exported or re-exported (i) into any U.S. embargoed countries; or (ii) to anyone on the U.S. Treasury Department’s list of Specially Designated Nationals or the U.S. Department of Commerce Denied Person’s List or Entity List. By using the SDK, You represent and warrant that You are not located in any such country or on any such list. You also agree that You will not use the SDK for any purposes prohibited by United States law.

  12. Notices. Sharethrough may send You notice with respect to this Agreement by sending an email message to the email address listed in Your account or by sending a letter via postal mail to the contact address listed in Your account. Notices shall become effective immediately upon Sharethrough providing them. You may send Sharethrough notice with respect to this Agreement by sending the notice to 394 Pacific Avenue, 5th Floor, San Francisco, CA 94111 by overnight delivery service, or by certified mail, and notice will be deemed given upon receipt.

  13. Changes to this Agreement. Sharethrough shall have the right to unilaterally change or add to the terms of this Agreement at any time upon notice by any means Sharethrough determines in its discretion to be reasonable, including sending You an email notification or by simply posting a newly revised version of the Agreement on its website. It is Your responsibility to review the most updated version thereof. By continuing to use the SDK following such modifications, You agree to be bound by such modifications.

  14. General Provisions.
    This Agreement will be governed by and construed in accordance with the laws of the State of California, without regard to or application of conflicts of law rules or principles. You may not assign or transfer this Agreement or any rights granted hereunder, by operation of law or otherwise, without Sharethrough’s prior written consent, and any attempt by You to do so, without such consent, will be void and of no effect. Except as expressly set forth in this Agreement, the exercise by either party of any of its remedies under this Agreement will be without prejudice to its other remedies under this Agreement or otherwise. The failure by either party to enforce any provision of this Agreement will not constitute a waiver of future enforcement of that or any other provision. If any provision of this Agreement is held to be unenforceable or invalid, that provision will be enforced to the maximum extent possible and the other provisions will remain in full force and effect. This Agreement is the complete and exclusive understanding and agreement between the parties regarding its subject matter, and supersedes all proposals, understandings or communications between the parties, oral or written, regarding its subject matter, unless You and Sharethrough have executed a separate agreement.
    Effective Date: November 1st, 2014

4840-7393-7697, v. 2