Skip to content
Can Soykarafakılı edited this page Mar 11, 2021 · 104 revisions

Migration from the PubNativeLite SDK to the HyBid SDK

As you might have noticed, we changed our product name from PubNativeLite to HyBid. What that means is that if your project uses the old PubNativeLite SDK, we encourage you to check out the Migration to HyBid.framework document here for a smooth migration.

Install HyBid SDK

There are 2 ways that you can install HyBid into your application;

1. Drag & Drop HyBid.xcframework

  • Download HyBid.xcframework and simply drag and drop the HyBid.xcframework file into your project's target.
  • IMPORTANT NOTE: Make sure it is set for Embed & Sign in General, under "Frameworks, Libraries and Embedded Content"

2. Cocoapods

  • If you're using CocoaPods, you can add the following line to your Podfile. This will get you the full featured HyBid iOS SDK.
pod 'HyBid', '2.4.2'
  • However, if you want a specific feature / some features from the HyBid iOS SDK, now you can get them by installing the desired module(s). Down below you'll find a list to the available modules. You can install as little as one module, or multiple modules based on your application's need by adding them to your Podfile.

For Banner Ads

pod `HyBid/Banner`, '2.4.2'

For Fullscreen / Interstitial Ads

pod `HyBid/FullScreen`, '2.4.2'

For Rewarded Video Ads

pod `HyBid/RewardedVideo`, '2.4.2'

For Native Ads

pod `HyBid/Native`, '2.4.2'

NOTE: If you already have the previous versions of HyBid iOS SDK in your project and you are updating to the HyBid.xcframework, you need to remove the Run Script under Build Phases. You don't need that anymore.

Integrate The Adapters

To use the Adapters in your project, simply import PubnativeLite/PubnativeLiteDemo/Adapters folder and all of its content to your project.

Swift Integration

To use the Adapters in your Swift project, ensure that you've imported PubnativeLite/PubnativeLiteDemo/Adapters/HyBid-Bridging-Header.h to your project and the Objective-C Bridging Header build setting under Swift Compiler - Code Generation has a path to the header

Initialise SDK

Add the HyBid.framework to your code.

Swift:

import HyBid

Objective-C:

#import <HyBid/HyBid.h>

In order to initialize a request, you must call init() before requesting for ads.

Swift:

HyBid.initWithAppToken("<YOUR_APP_TOKEN_HERE>") { (success) in
            if (success) {
                print("HyBid Successfully Initialized")
            }
        }

Objective-C:

 [HyBid initWithAppToken:@"<YOUR_APP_TOKEN_HERE>" completion:^(BOOL success) {
        if (success) {
            NSLog(@"HyBid initialisation completed");
        }
    }];

Advanced Configurations

There are certain parameters that should be configured in the SDK before doing any type of interaction with it. Ensure to configure these parameters only 1 per session.

If your app is COPPA compliant:

Swift:

HyBid.setCoppa(Bool)

Objective-C:

[HyBid setCoppa:BOOL];

Test Mode

In development, you should set Test Mode as true for our SDK and disable it in the release. It allows not to track impressions and tracks on the server side of development application:

Swift:

HyBid.setTestMode(Bool)

Objective-C:

[HyBid setTestMode:BOOL];

Location tracking

If the user has given location permissions, HyBid SDK will use the available user location to provide better targeted ads. This feature is enabled by default, but can be disabled by setting the ** HyBid.setLocationTracking** on the HyBid class:

Swift:

HyBid.setLocationTracking(Bool)

Objective-C:

[HyBid setLocationTracking:BOOL];

Location updates

The SDK refreshes the user location after every ad request if the user has given permission for location tracking. This is done to keep the best accuracy possible. However if the app will do many requests in a short time it might display location updates very often which can be intrusive for some users.

You can disable this behaviour by setting the setLocationUpdatesEnabled on the HyBid class:

Swift:

HyBid.setLocationUpdates(Bool)

Objective-C:

[HyBid setLocationUpdates:BOOL];

Keep in mind that if location tracking is disabled, anything you set in here will have no effect since location tracking will be disabled globally for HyBid SDK

Skip Offset

You can define manually a global minimum amount of seconds until the ad can be skipped for HTML and Video Interstitials. If the time defined by the advertiser is higher that the one defined by the developer, then the advertiser one will be used to respect the measurement criteria.

Swift:

HyBid. setInterstitialSkipOffset:(10) //10 seconds

Objective-C:

[HyBid setInterstitialSkipOffset:10]; //10 seconds

Targeting

If you want to improve targeting, first configure the HyBidTargetingModel object that you want to pass on and then invoke the following method:

Swift:

var targeting = HyBidTargetingModel()
targeting.age = <AGE>
targeting.interests = <ARRAY_OF_THE_INTERESTS>
targeting.gender = "<GENDER>"     // "f" for female, "m" for male
HyBid.setTargeting(targeting)

Objective-C:

HyBidTargetingModel *targeting = [[HyBidTargetingModel alloc] init];
targeting.age = <AGE>;
targeting.interests = <ARRAY_OF_THE_INTERESTS>;
targeting.gender = "<GENDER>";     // "f" for female, "m" for male
[HyBid setTargeting:targeting];

Logging

You can control the level of log that you want to see in your console. As default HyBidLogger is set to HyBidLogLevelDebug. There are 5 HyBidLogLevels;

  • HyBidLogLevelNone
  • HyBidLogLevelError
  • HyBidLogLevelWarning
  • HyBidLogLevelInfo
  • HyBidLogLevelDebug

If you want to set a different HyBidLogLevel in your app, the best place is to do it in the HyBid initialization part.

Swift:

HyBid.initWithAppToken("<YOUR_APP_TOKEN_HERE>") { (success) in
            if (success) {
                HyBidLogger.setLogLevel(HyBidLogLevelDebug)
                print("HyBid Successfully Initialized")
            }
        }

Objective-C:

 [HyBid initWithAppToken:@"<YOUR_APP_TOKEN_HERE>" completion:^(BOOL success) {
        if (success) {
            [HyBidLogger setLogLevel:HyBidLogLevelDebug];
            NSLog(@"HyBid initialisation completed");
        }
    }];

SKAdNetwork

SKAdNetwork is an attribution solution introduced by Apple. It validates advertiser-driven app installations without disclosing user-level data. With the iOS 14 update, the utilization of SKAdNetwork framework will become more important since IDFA (Apple’s Identifier for Advertiser) is going to be opted-out by default.

The 'opted-out by default' setup was originally planned to happen with the release of iOS 14, but has been delayed to early next year. To prepare the change in time, we suggest you to already start adding support for SKAdNetwork.

  1. To comply with SKAdNetwork standards, add PubNative’s network ID and the additional IDs from this list with the key SKAdNetworkIdentifier as a list to your App's Info.plist under the key SKAdNetworkItems.

PubNative's SKAdNetwork ID is: tl55sbb4fm.skadnetwork

<key>SKAdNetworkItems</key>
<array>
	<dict>
		<key>SKAdNetworkIdentifier</key>
		<string>tl55sbb4fm.skadnetwork</string>
	</dict>
</array>
  1. Set your AppStore ID

Swift:

HyBid.setAppStoreAppID("NUMERIC_APPSTORE_ID_HERE")

Objective-C:

[HyBid setAppStoreAppID:@"NUMERIC_APPSTORE_ID_HERE"];

<- Home            -> Setup MoPub

Home

Installations & Configurations

Displaying Ads with HyBid

Displaying Ads with Header Bidding with GAM

Mediation

Advanced Setup

Integration Checklists for Publishers

Misc

Clone this wiki locally