Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
b01d668
docs: add page for updates in v3.0 in iOS
OlenaPostindustria Apr 2, 2025
7a0bfd7
docs: small enhancement
OlenaPostindustria Apr 2, 2025
22b20c7
docs: add formatting to table
OlenaPostindustria Apr 2, 2025
0d75691
docs: minor changes
OlenaPostindustria Apr 2, 2025
8b01a19
docs: android doc
ValentinPostindustria Apr 2, 2025
1add664
docs: lint fix
ValentinPostindustria Apr 2, 2025
c6aa31f
docs: remove TOC
ValentinPostindustria Apr 2, 2025
da510e7
docs: add ext data
ValentinPostindustria Apr 2, 2025
090a082
docs: fix subgroup
ValentinPostindustria Apr 2, 2025
f3689e2
docs: try to add style for table in ios doc
OlenaPostindustria Apr 3, 2025
c09ce23
docs: fix linting issue
OlenaPostindustria Apr 3, 2025
c57d495
docs: add style to table in android doc
OlenaPostindustria Apr 3, 2025
5260c08
docs: change sidebar titles for 3.0 page
OlenaPostindustria Apr 3, 2025
000636b
docs: add 3.0 key features page
OlenaPostindustria Apr 3, 2025
1633cce
docs: fix linting error
OlenaPostindustria Apr 3, 2025
a8c0a68
docs: small change in key features article
OlenaPostindustria Apr 3, 2025
1ea3647
docs: ios - add links to api doc
OlenaPostindustria Apr 3, 2025
6239766
docs: small improvement
OlenaPostindustria Apr 3, 2025
09fabbe
docs: add links to Javadoc
ValentinPostindustria Apr 3, 2025
a7760b5
docs: android changes.
mdanylov-sigma Apr 3, 2025
4033617
docs: ios changes.
mdanylov-sigma Apr 3, 2025
bd72f6c
doc: mobile 3.0 - change the order of features
YuriyVelichkoPI Apr 4, 2025
fd23daa
doc: 3.0 doc update
YuriyVelichkoPI Apr 4, 2025
f360a5c
doc: improvements
YuriyVelichkoPI Apr 4, 2025
8040ab4
doc: corrections for the Rewarded Ad Unit
YuriyVelichkoPI Apr 4, 2025
e2bdb31
doc: format docs for the 3.0 page
YuriyVelichkoPI Apr 4, 2025
4c425ea
doc: add some info for the 3.0 changelog
YuriyVelichkoPI Apr 4, 2025
1f6d755
docs: ios initialization with non-tracking endpoints.
mdanylov-sigma Apr 4, 2025
10d666b
doc: add some more items to the list of introduced features
YuriyVelichkoPI Apr 5, 2025
7ac6894
doc: various corrections
YuriyVelichkoPI Apr 5, 2025
31a4cee
doc: greeting message on the main SDK page
YuriyVelichkoPI Apr 5, 2025
c65bdee
doc: format text on the intro page
YuriyVelichkoPI Apr 5, 2025
8f3ecd1
docs: fix lint errors
YuriyVelichkoPI Apr 7, 2025
360578c
docs: fix lint errors
YuriyVelichkoPI Apr 7, 2025
37c3a46
docs: fix lint errors
YuriyVelichkoPI Apr 7, 2025
c38e91f
docs: fix lint errors
YuriyVelichkoPI Apr 7, 2025
fad2a05
docs: resolves PR comments
mdanylov-sigma Apr 7, 2025
3d7a700
docs: fix lint
mdanylov-sigma Apr 7, 2025
ae81bba
docs: fix lint errors
mdanylov-sigma Apr 7, 2025
ae5b40d
docs: resolves PR issues with global ORTB config
mdanylov-sigma Apr 9, 2025
c96801a
docs: returns info and code snippets for 2.5.0
mdanylov-sigma Apr 9, 2025
ecc9eaa
docs: fix lint errors
mdanylov-sigma Apr 9, 2025
97eee29
docs: modifies info about Host.Appnexus and Host.Rubicon constants.
mdanylov-sigma Apr 10, 2025
a7b1565
wordsmithing
bretg Apr 10, 2025
ce026d6
wordsmithing
bretg Apr 10, 2025
89fc402
wordsmithing
bretg Apr 10, 2025
0ae3c95
wordsmithing
bretg Apr 10, 2025
08b51f5
wordsmithing
bretg Apr 10, 2025
cd89477
removed reference to rubicon
bretg Apr 10, 2025
f8fad00
docs: resolves some alternatives in the api changes list
mdanylov-sigma Apr 10, 2025
6267f6f
fixed tyop
bretg Apr 10, 2025
e60aff6
docs: resolves PR issues with platforms inconsistency
mdanylov-sigma Apr 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions _data/sidebar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -675,6 +675,14 @@
sectionTitle:
subgroup: 0

- sbSecId: 2
title: Prebid Mobile 3.0
link: /prebid-mobile/updates-3.0/sdk-key-features.html
isHeader: 0
isSectionHeader: 0
sectionTitle:
subgroup: 0

- sbSecId: 2
title: Prebid AMP
link: /dev-docs/show-prebid-ads-on-amp-pages.html
Expand Down Expand Up @@ -831,6 +839,14 @@
sectionTitle:
subgroup: 2

- sbSecId: 2
title: Prebid Mobile 3.0 API Changes
link: /prebid-mobile/updates-3.0/ios/api-changes.html
isHeader: 0
isSectionHeader: 0
sectionTitle:
subgroup: 2

- sbSecId: 2
title: API Reference
link: /prebid-mobile-ios/index.html
Expand Down Expand Up @@ -928,6 +944,14 @@
sectionTitle:
subgroup: 3

- sbSecId: 2
title: Prebid Mobile 3.0 API Changes
link: /prebid-mobile/updates-3.0/android/api-changes.html
isHeader: 0
isSectionHeader: 0
sectionTitle:
subgroup: 3

- sbSecId: 2
title: API Reference
link: /prebid-mobile-android/index.html
Expand Down
12 changes: 12 additions & 0 deletions _includes/mobile/adunit-config-android.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,24 @@ adUnit.setImpOrtbConfig("")
#### setAutoRefreshPeriodMillis
{:.no_toc}

{: .alert.alert-warning :}
Starting from PrebidMobile `3.0.0` the `setAutoRefreshPeriodMillis` method is removed. Use the `setAutoRefreshInterval` method instead.

If set on a given Prebid Mobile ad unit, the `fetchDemand` function will be called every `periodMillis` until `stopAutoRefresh` is called. Each call to `fetchDemand` will invoke the `onComplete` function. This refresh only pertains to Prebid Mobile and not to any ad server refresh processes. It is suggested that the adServers refresh be turned off.

**Parameters**

- `periodMillis`: Integer defining the refresh time in milliseconds.

#### setAutoRefreshInterval
{:.no_toc}

If set on a given Prebid Mobile ad unit, the `fetchDemand` function will be called every `periodMillis` until `stopAutoRefresh` is called. Each call to `fetchDemand` will invoke the `onComplete` function. This refresh only pertains to Prebid Mobile and not to any ad server refresh processes. It is suggested that the adServers refresh be turned off.

**Parameters**

- `seconds`: Integer defining the refresh time in seconds.

#### startAutoRefresh
{:.no_toc}

Expand Down
6 changes: 6 additions & 0 deletions _includes/mobile/video-params.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ The [OpenRTB 2.6](https://iabtechlab.com/wp-content/uploads/2022/04/OpenRTB-2-6_
Notes:
- `PrebidAdUnit`, `VideoInterstitialAdUnit` and `RewardedVideoAdUnit` will default to placement=5 if no placement value is supplied.

{: .alert.alert-warning :}
Starting from PrebidMobile `3.0.0` the class `VideoInterstitialAdUnit` is removed.

#### plcmnt
{:.no_toc}

Expand All @@ -30,6 +33,9 @@ The [OpenRTB v2.6-202303](https://github.com/InteractiveAdvertisingBureau/AdCOM/
Notes:
- `PrebidAdUnit`, `VideoInterstitialAdUnit` and `RewardedVideoAdUnit` will default to plcmnt=3 if no placement value is supplied.

{: .alert.alert-warning :}
Starting from PrebidMobile `3.0.0` the class `VideoInterstitialAdUnit` is removed.

#### api
{:.no_toc}

Expand Down
3 changes: 2 additions & 1 deletion faq/prebid-mobile-faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,8 @@ However, here is the list of items that the app developer can add to the applica
- `NSPrivacyTracking` - true. Because Prebid SDK collects IDFA.
- `NSPrivacyTrackingDomains` - the tracking domain for the PBS.

Pay attention - if `NSPrivacyTracking` is true, the tracking domain is provided, and the user doesn't allow the app to track him or her, iOS will block the bid requests. Prebid SDK doesn't support tracking and non-tracking endpoints yet. Follow the [issue](https://github.com/prebid/prebid-mobile-ios/issues/954) for the details.
Pay attention - if `NSPrivacyTracking` is true, the tracking domain is provided, and the user doesn't allow the app to track him or her, iOS will block the bid requests.
Prebid SDK supports tracking and non-tracking endpoints. See [SDK initialization](/prebid-mobile/pbm-api/ios/code-integration-ios.html#handling-tracking-domains) for more details details.

- `NSPrivacyCollectedDataTypes` array should contain the following `NSPrivacyCollectedDataType` items: `NSPrivacyCollectedDataTypePreciseLocation`, `NSPrivacyCollectedDataTypeCoarseLocation`,`NSPrivacyCollectedDataTypeDeviceID`, `NSPrivacyCollectedDataTypeProductInteraction`, `NSPrivacyCollectedDataTypeAdvertisingData`.

Expand Down
10 changes: 3 additions & 7 deletions prebid-mobile/modules/rendering/android-sdk-integration-admob.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ The `AdMobInterstitialMediationUtils` is a helper class, which performs certain

The `MediationInterstitialAdUnit` is part of the prebid mediation API. This class is responsible for making a bid request and providing the winning bid and targeting keywords to mediating SDKs.

The **default** ad format for interstitial is **DISPLAY**. In order to make a `multiformat bid request`, set the respective values into the `adUnitFormats` parameter.
In order to make a `multiformat bid request`, set the respective values into the `adUnitFormats` parameter.

```kotlin
adUnit = MediationInterstitialAdUnit(
Expand Down Expand Up @@ -338,17 +338,13 @@ private fun configureNativeAdUnit(nativeAdUnit: NativeAdUnit) {
title.isRequired = true
nativeAdUnit.addAsset(title)

val icon = NativeImageAsset()
val icon = NativeImageAsset(20, 20, 20, 20)
icon.imageType = NativeImageAsset.IMAGE_TYPE.ICON
icon.wMin = 20
icon.hMin = 20
icon.isRequired = true
nativeAdUnit.addAsset(icon)

val image = NativeImageAsset()
val image = NativeImageAsset(200, 200, 200, 200)
image.imageType = NativeImageAsset.IMAGE_TYPE.MAIN
image.hMin = 200
image.wMin = 200
image.isRequired = true
nativeAdUnit.addAsset(image)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ Pay attention that the `loadAd()` should be called on the main thread.
{% endcapture %}
{% include /alerts/alert_warning.html content=warning_note %}

The **default** ad format for an interstitial ad is **DISPLAY**. In order to make a `multiformat bid request`, set the respective values into the `adUnitFormats` parameter.
In order to make a `multiformat bid request`, set the respective values into the `adUnitFormats` parameter.

```kotlin
interstitialAdUnit = InterstitialAdUnit(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ adUnit?.fetchDemand {

```

The **default** ad format for interstitial is **DISPLAY**. In order to make a `multiformat bid request`, set the respective values into the `adUnitFormats` parameter.
In order to make a `multiformat bid request`, set the respective values into the `adUnitFormats` parameter.

```kotlin
adUnit = MediationInterstitialAdUnit(
Expand Down
8 changes: 4 additions & 4 deletions prebid-mobile/modules/rendering/android-sdk-integration-pb.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ While the default ad server for Prebid's Mobile SDK is GAM, it can be expanded t

In this mode, the developer is responsible for the following actions:

- Call `fetchDemand()` with extended targetingDict callback
- Call `fetchDemand()` with extended targetingDict callback (The method has been removed in the PrebidMobile `3.0.0`. Use the `fetchDemand()` with extended BidInfo callback instead)
- Retrieve targeting keys from the extended fetchDemand function
- Convert targeting keys into the format for your ad server
- Pass converted keys to your ad server
Expand All @@ -37,9 +37,9 @@ In this mode, the developer is responsible for the following actions:
This approach is available for the following ad formats:

- Display Banner via `BannerAdUnit`
- Video Banner and Instream Video via `VideoAdUnit`
- Video Banner and Instream Video via `VideoAdUnit` (The class has been removed in the PrebidMobile `3.0.0`. Use the `InStreamVideoAdUnit` instead)
- Display Interstitial via `InterstitialAdUnit`
- Video Interstitial via `VideoInterstitialAdUnit`
- Video Interstitial via `VideoInterstitialAdUnit` (The class has been removed in the PrebidMobile `3.0.0`. Use the `InterstitialAdUnit` with video ad format instead)
- Rewarded Video via `RewardedVideoAdUnit`
- Native Styles via `NativeRequest`

Expand Down Expand Up @@ -155,7 +155,7 @@ Pay attention that the `loadAd()` should be called on the main thread.
{% endcapture %}
{% include /alerts/alert_warning.html content=warning_note %}

The **default** ad format for interstitial is **DISPLAY**. In order to make a `multiformat bid request`, set the respective values into the `adUnitFormats` parameter.
In order to make a `multiformat bid request`, set the respective values into the `adUnitFormats` parameter.

``` kotlin
interstitialAdUnit = InterstitialAdUnit(
Expand Down
4 changes: 2 additions & 2 deletions prebid-mobile/modules/rendering/ios-sdk-integration-pb.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ In this mode, the developer is responsible for the following actions:
This approach is available for the following ad formats:

- Display Banner via `BannerAdUnit`
- Video Banner and Instream Video via `VideoAdUnit`
- Video Banner and Instream Video via `VideoAdUnit` (The class has been removed in the PrebidMobile `3.0.0`. Use the `InStreamVideoAdUnit` instead)
- Display Interstitial via `InterstitialAdUnit`
- Video Interstitial via `VideoInterstitialAdUnit`
- Video Interstitial via `VideoInterstitialAdUnit` (The class has been removed in the PrebidMobile `3.0.0`. Use the `InterstitialAdUnit` with video ad format instead)
- Rewarded Video via `RewardedVideoAdUnit`
- Native Styles via `NativeRequest`
- Multiformat ad unit via `PrebidAdUnit`
Expand Down
31 changes: 24 additions & 7 deletions prebid-mobile/pbm-api/android/code-integration-android.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ If you see errors while building the Prebid Mobile SDK or Demo Applications, mak

## Add the Prebid SDK

### Point to a Prebid Server
### Prebid Server Account ID

{% capture warning_note %}
All integration examples for Android are written in `Kotlin`.
Expand All @@ -74,14 +74,24 @@ The corresponding Java code can be found in the [Demo Java](https://github.com/p
{% endcapture %}
{% include /alerts/alert_warning.html content=warning_note %}

Once you have a [Prebid Server](/prebid-mobile/prebid-mobile-getting-started.html), you will add the 'account' info to Prebid Mobile. For example, if you're using the AppNexus Prebid Server:
Once you have a [Prebid Server](/prebid-mobile/prebid-mobile-getting-started.html), you will add the 'account' info to Prebid Mobile.

```kotlin
PrebidMobile.setPrebidServerAccountId(YOUR_ACCOUNT_ID)
```

### Point to a Prebid Server

{: .alert.alert-warning :}
Starting from PrebidMobile `3.0.0` the setPrebidServerHost() method and the `Host.APPNEXUS` and `Host.RUBICON` enums have been removed. Please check the server URL in [API changes](/prebid-mobile/updates-3.0/android/api-changes#host) and use `PrebidMobile.initializeSdk` (below) to set the Prebid Server URL.

In SDK 2.5 and before, if you're using the AppNexus Prebid Server you would do this:

```kotlin
PrebidMobile.setPrebidServerHost(Host.APPNEXUS)
```

If you have opted to host your own Prebid Server solution you will need to store the url to the server in your app. Make sure that your URL points to the [/openrtb2/auction](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html) endpoint.
In SDK 2.5 and before, if you have opted to host your own Prebid Server solution you will need to store the url to the server in your app. Make sure that your URL points to the [/openrtb2/auction](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html) endpoint.

```kotlin
PrebidMobile.setPrebidServerHost(Host.createCustomHost("https://prebidserver.example.com/openrtb2/auction"))
Expand All @@ -96,15 +106,19 @@ If you want to define a different Account Settings ID as determined in conjuncti
your Prebid Server team, use the [arbitrary OpenRTB](/prebid-mobile/pbm-api/android/pbm-targeting-android.html#arbitrary-openrtb) method like this:

```kotlin
adUnitConfiguration?.ortbConfig = "{\"ext\":{\"prebid\":{\"storedrequest\": {\"id\":\"account-settings-id\"}}}}"
TargetingParams.setGlobalOrtbConfig("{\"ext\":{\"prebid\":{\"storedrequest\": {\"id\":\"account-settings-id\"}}}})"
```

### Initialize SDK

Once you set the account ID and the Prebid Server host, you should initialize the Prebid SDK. Use the following initialization for Prebid SDK:
Once you set the account ID, you should initialize the Prebid SDK.

In SDK 3.0 and later, you need to enter a URL to your Prebid Server's auction endpoint in your app. Get this URL from your Prebid Server provider. e.g. `https://prebid-server.example.com/openrtb2/auction`.

Use the following initialization for Prebid SDK:

```kotlin
PrebidMobile.initializeSdk(applicationContext) { status ->
PrebidMobile.initializeSdk(applicationContext, PREBID_SERVER_URL) { status ->
if (status == InitializationStatus.SUCCEEDED) {
Log.d(TAG, "SDK initialized successfully!")
} else if (status == InitializationStatus.SERVER_STATUS_WARNING) {
Expand All @@ -121,7 +135,7 @@ Pay attention that SDK should be initialized on the main thread.
{% endcapture %}
{% include /alerts/alert_warning.html content=warning_note %}

During the initialization, SDK creates internal classes and performs the health check request to the [/status](https://docs.prebid.org/prebid-server/endpoints/pbs-endpoint-status.html) endpoint. If you use a custom PBS host you should provide a custom status endpoint as well:
During the initialization, SDK creates internal classes and performs the health check request to the [/status](/prebid-server/endpoints/pbs-endpoint-status.html) endpoint. If your Prebid Server provider has a non-standard path (anything other than `/status`), you should provide a the alternate status endpoint:

```kotlin
PrebidMobile.setCustomStatusEndpoint(PREBID_SERVER_STATUS_ENDPOINT)
Expand Down Expand Up @@ -223,6 +237,9 @@ var pbsAccountId = PrebidMobile.getPrebidServerAccountId()
### Host
{:.no_toc}

{: .alert.alert-warning :}
Starting from PrebidMobile `3.0.0` the `Host` class is removed. Use the `PrebidMobile.initializeSdk` method to provide the your Prebid Server host instead.

Object containing configuration for your Prebid Server host with which the Prebid SDK will communicate. Choose from the system-defined Prebid Server hosts or define your own custom Prebid Server host.

```kotlin
Expand Down
61 changes: 17 additions & 44 deletions prebid-mobile/pbm-api/android/pbm-targeting-android.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ The `Prebid` class is a singleton that enables you to apply certain global setti

### Prebid Class Global Properties

{: .alert.alert-warning :}
The global properties exist only for PrebidMobile `2.5.0`. Starting from PrebidMobile `3.0.0` the global properties below are removed.

All of these properties of the Prebid class can be set on the `shared` object like this:

```kotlin
Expand All @@ -44,9 +47,9 @@ Prebid.shared.sendMraidSupportParams=true
{: .table .table-bordered .table-striped }
| Parameter | Scope | Type | Purpose | Description | Example |
| --- | --- | --- | --- | --- |
| isCoppaEnabled | optional | boolean | ORTB | Set this to true if this app is aimed at children. It sets the ORTB `regs.coppa` flag. Default is false. | `true` |
| useExternalBrowser | optional | boolean | behavior | If true, clicking on the ad will open your default browser instead of showing within the app's webview. Defaults to `false`. | `true` |
| sendMraidSupportParams | optional | boolean | ORTB | If `true`, the SDK sends imp[].banner.api=[3,5], indicating support for MRAID. Defaults to `true`. | `false` |
| isCoppaEnabled | optional | boolean | ORTB | Starting from PrebidMobile `3.0.0` the property is removed. Can be replaces with `TargetingParams.setSubjectToCOPPA()`<wbr>Set this to true if this app is aimed at children. It sets the ORTB `regs.coppa` flag. Default is false. | `true` |
| useExternalBrowser | optional | boolean | behavior | Starting from PrebidMobile `3.0.0` the property is removed<wbr>If true, clicking on the ad will open your default browser instead of showing within the app's webview. Defaults to `false`. | `true` |
| sendMraidSupportParams | optional | boolean | ORTB | Starting from PrebidMobile `3.0.0` the property is removed<wbr>If `true`, the SDK sends imp[].banner.api=[3,5], indicating support for MRAID. Defaults to `true`. | `false` |

### Prebid Class Global Methods

Expand All @@ -58,6 +61,9 @@ Your Prebid Server team will tell you whether this is required or not and if so,

This is where the Prebid SDK will send the auction information.

{: .alert.alert-warning :}
Starting from PrebidMobile `3.0.0` the `setPrebidServerHost` method is removed. Use the `initializeSdk` method instead.

Signature:

```kotlin
Expand All @@ -74,8 +80,6 @@ Parameters:
Examples:

```kotlin
PrebidMobile.setPrebidServerHost(Host.APPNEXUS)
PrebidMobile.setPrebidServerHost(Host.RUBICON)
PrebidMobile.setPrebidServerHost(Host.createCustomHost("https://prebidserver.example.com/openrtb2/auction"))
```

Expand Down Expand Up @@ -470,36 +474,27 @@ Prebid SDK provides a number of properties in the [Targeting class](/prebid-mobi
methods) for setting user-oriented First Party Data.
```kotlin
void addUserData(String key, String value)
void updateUserData( String key, Set<String> value)
void addUserKeyword(String keyword)
void removeUserData(String key)
void addUserKeywords(Set<String> keywords)
void clearUserData()
void removeUserKeyword(String keyword)
Map<String, Set<String>> getUserDataDictionary() {
void clearUserKeywords()
void addUserKeywords(Set<String> keywords) {
String getUserKeywords()
void removeUserKeyword(String keyword) {
void clearUserKeywords() {
String getUserKeywords() {
Set<String> getUserKeywordsSet() {
Set<String> getUserKeywordsSet()
```
Example:
```kotlin
TargetingParams.addUserData("globalUserDataKey1", "globalUserDataValue1")
TargetingParams.addUserKeyword("globalUserKeyword")
```
{: .alert.alert-info :}
Note: The 'UserData' functions end up putting data into the OpenRTB user.ext.data object while the 'UserKeywords' functions
put data into user.keywords.
Note: The 'UserKeywords' functions put data into user.keywords.
### Inventory FPD
Expand All @@ -513,16 +508,6 @@ void updateExtData(String key, Set<String> value)
void removeExtData(String key)
Map<String, Set<String>> getExtDataDictionary()
void addExtKeyword(String keyword)
void addExtKeywords(Set<String> keywords)
void removeExtKeyword(String keyword)
void clearExtKeywords()
Set<String> getExtKeywordsSet()
```
Example:
Expand Down Expand Up @@ -807,18 +792,6 @@ Pay attention that there are certain protected fields such as `regs`, `device`,
- App and User first party data should use the [functions defined for those purposes](/prebid-mobile/pbm-api/ios/pbm-targeting-ios.html#first-party-data)
- See the [Prebid Server auction endpoint](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#prebid-server-ortb2-extension-summary) reference for more information about how it will process incoming fields.

### Deprecated
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Android and iOS docs differ; is it expected? Check out pbm-targeting-ios.md

{:.no_toc}

The Prebid Mobile SDK v2.2.1 contains the deprecated method to set the impression level RTB config:

``` swift
//ad unit / impression-level
adUnit.setOrtbConfig("{\"ext\":{\"gpid\":\"abc123"}}\")
```
This method has implementation issues and was deprecated in v2.4.0. If you use this method, we strongly recommend migrating to the new `setImpORTBConfig()` method since this one will be removed entirely in SDK version 3.0.
## Further Reading

- [Prebid Mobile Overview](/prebid-mobile/prebid-mobile.html)
Expand Down
Loading