> For the complete documentation index, see [llms.txt](https://docs.bidapp.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bidapp.io/integration/ios/serverless-settings.md).

# Serverless Settings

Bidapp SDK gives you the ability to manage ad network waterfall using your own server or manually by providing initialization keys and adTags identifiers for different ad formats through our API's.

## Network SDK key

Different networks have different naming conventions for their identification credentials that need to be passed to the network SDK when it starts. For example:\
\- **Applovin Max** uses **SDK key;**\
\- **Liftoff** uses **AppId;**\
**- Unity** uses **gameId;**\
**- Chartboost** uses **AppID** and **AppSignature;**

We have created a unified interface to simplify networks configuration.

To specify the initialization key for a desired ad network you can use the following code snippet:

{% tabs %}
{% tab title="Objective-C" %}

```objectivec
BIDConfiguration *bidConfig = [BIDConfiguration new];
NSError* error = nil;
[bidConfig setSDKKey:@"network_SDK_Key" networkId:networkId error:&error];
```

{% endtab %}

{% tab title="Swift" %}

```swift
let bidConfig = BIDConfiguration()
try? bidConfig.setSDKKey("network_SDK_Key", networkId: networkId)
```

{% endtab %}
{% endtabs %}

## Network adTag for a desired ad format

To specify **adTag** for a desired ad network and ad format you may use the following code:

{% hint style="info" %}
The naming conventions for "adTag" can vary across different networks, and it might alternatively be referred to as "zone" or "placement."
{% endhint %}

{% tabs %}
{% tab title="Objective-C" %}

```objectivec
BIDConfiguration *bidConfig = [BIDConfiguration new];
NSError* error = nil;
[bidConfig setAdTag:@"network_ad_tag"
          networkId:networkId
           adFormat:[BIDAdFormat interstitial]/* or any other ad format */ 
               ecpm:5.1
              error:&error];
```

{% endtab %}

{% tab title="Swift" %}

```swift
let bidConfig = BIDConfiguration()
try? bidConfig.setAdTag("network_ad_tag",
                        networkId: adNetworkId,
                        adFormat: BIDAdFormat.interstitial/* or any other ad format */ as! BIDAdFormat,
                        ecpm: 2.1)
```

{% endtab %}
{% endtabs %}

The **eCPM** values that you pass to the functions above will be used to **determine the position** of the ad network in the specified adForamt Waterfall.
