Skip to content

Configuration Reference

Complete reference for all Sellwild SDK configuration options. These fields apply across all platforms (iOS, Android, React Native, Flutter) unless noted otherwise.


Table of Contents

  1. SellwildConfig
  2. PrebidServerConfig
  3. Ad Size Reference
  4. Ad Refresh Configuration
  5. Debug Mode

SellwildConfig

The primary configuration object passed to all SDK components. Every ad view, widget, and API client reads from this object.

Required Fields

FieldTypeDescription
partnerCodeStringYour Sellwild partner identifier. Used as ortb2.app.publisher.id in bid requests.
listingsUrlStringFull URL to the Sellwild listings API endpoint for your partner account.

App Identity

These fields ensure bid requests are classified as in-app traffic. Without them, DSPs treat impressions as anonymous web traffic and most will not bid.

FieldTypeDefaultDescription
appBundleIdString?nullApp bundle identifier (e.g., "com.aws.android"). Sent as ortb2.app.bundle.
appStoreUrlString?nullApp store listing URL. Sent as ortb2.app.storeurl. Required for app-ads.txt verification.
apiBaseUrlString"https://api.sellwild.com"Base URL for Sellwild API calls. Override for staging environments.

Prebid Server

FieldTypeDefaultDescription
prebidServerPrebidServerConfig?nullServer-side header bidding configuration. See PrebidServerConfig. When null, Prebid.js runs client-side adapters in the WebView.
prebidSrcString?nullCustom Prebid.js bundle URL. When null, the SDK uses the default CDN-hosted build.

Display Customization

These fields control the appearance of the listing widget and listing cards.

FieldTypeDefaultDescription
titleString?nullWidget header title text.
titleColorString"#000000"Widget title color (CSS hex).
titleSizeInt16Widget title font size in pixels.
linkTextString?"View all"Text for the "view all" link in the widget header.
linkColorString"#0066cc"Link text color (CSS hex).
buyNowTextString?"Buy now"Call-to-action button text.
fontSizeInt13Listing title font size in pixels.
fontFamilyString""CSS font family for listing text. Empty string uses the system default.
fontColorString"#ffffff"Listing title font color (CSS hex).
priceColorString"#333333"Price badge background color (CSS hex).
priceFontColorString"#ffffff"Price badge text color (CSS hex).
marginBottomInt10Bottom margin in pixels.
colorsList<String>["#333333"]Theme accent colors (CSS hex values).
overlayTitleBoolfalseOverlay listing title on top of the listing image.
cardWidthString""Listing card width (CSS value). Empty string uses the default.
cardHeightString""Listing card height (CSS value). Empty string uses the default.

Watermark

FieldTypeDefaultDescription
watermarkBoolfalseShow a watermark on the widget.
watermarkTitleString"Powered by Sellwild"Watermark text content.

Ad Zone IDs

FieldTypeDefaultDescription
bannerZidString?nullZone ID for the top banner placement.
bottomBannerZidString?nullZone ID for the bottom banner placement.
mobileBannerZidString?nullMobile-specific banner zone ID (overrides bannerZid on mobile).
mobileZidsList<String>[]Additional mobile zone IDs for multi-slot layouts.

Ad Display Control

FieldTypeDefaultDescription
gamTagString?nullGoogle Ad Manager ad unit path (e.g., "/12345678/weatherbug_mrec"). Enables GAM as the primary ad server with Prebid as header bidding.
gptProxyUrlString?nullProxy URL for the GPT (Google Publisher Tag) script. Use when direct GPT loading is blocked.
disableGptBoolfalseDisable Google Publisher Tag entirely.
adDisableDisplayBoolfalseDisable all display ad rendering. Listings still load.
hideBannerTopBoolfalseHide the top banner ad placement in the widget.
hideBannerBottomBoolfalseHide the bottom banner ad placement in the widget.
adTypeString?nullAd system selection. Defaults to "PrebidOnly" when null.
floorMultiplierDouble1.0Multiplier applied to bid floor prices. Values above 1.0 raise floors.

Ad Refresh

See Ad Refresh Configuration for detailed behavior.

FieldTypeDefaultDescription
adRefreshMaxInt0Maximum ad refresh cycles (all platforms). 0 = disabled.
adRefreshMaxMobileInt0Maximum ad refresh cycles on mobile. Overrides adRefreshMax when nonzero.
adRefreshIntervalDuration/Number30 secondsTime between refresh cycles. iOS uses TimeInterval (seconds), Android uses Long (milliseconds), RN/Flutter use seconds.
maxFailedAuctionsInt3Stop refreshing after N consecutive no-fill auctions.

See Privacy & Consent for detailed usage.

FieldTypeDefaultDescription
gppEnabledBoolfalseEnable IAB Global Privacy Platform support.
tcfVersionInt0TCF version. 0 = disabled, 2 = TCF v2.x.
gdprAppliesBool?nullWhether GDPR applies. null = determined by Prebid Server. RN/Flutter only.
tcStringString?nullTCF v2 consent string. RN/Flutter only.
iabCatsList<String>[]IAB content category codes for brand safety (e.g., ["IAB15", "IAB15-10"]).

Third-Party Integrations

FieldTypeDefaultDescription
boltiveBoolfalseEnable Boltive ad quality monitoring.
boltiveClientIdString""Your Boltive client identifier.
lotameBoolfalseEnable Lotame data enrichment.

Debug

FieldTypeDefaultDescription
debugBoolfalseEnable verbose debug logging. See Debug Mode.

PrebidServerConfig

Controls server-side header bidding through Prebid Server. Set this on SellwildConfig.prebidServer to route all bid requests through the managed Prebid Server instance.

FieldTypeRequiredDefaultDescription
accountIdStringYes--Your Prebid Server account ID. Typically matches your partner code.
endpointStringYes--Full URL to the OpenRTB 2.6 auction endpoint. Use "https://prebid.sellwild.com/openrtb2/auction".
biddersList<String>Yes--SSP bidder adapter codes to include in the server-side auction. Must match adapters configured on the Prebid Server instance.
timeoutIntNo1500Maximum time in milliseconds the server waits for SSP responses before closing the auction.
syncEndpointString?NonullCookie sync endpoint URL. Derived from endpoint if omitted (replaces /openrtb2/auction with /cookie_sync).

Example

swift
// iOS
config.prebidServer = PrebidServerConfig(
    accountId: "weatherbug-prod",
    endpoint: "https://prebid.sellwild.com/openrtb2/auction",
    bidders: ["appnexus", "rubicon", "ix", "openx"],
    timeout: 1500
)
kotlin
// Android
prebidServer = PrebidServerConfig(
    accountId = "sellwild",
    endpoint = "https://prebid.sellwild.com/openrtb2/auction",
    bidders = listOf("appnexus", "pubmatic", "ix", "rubicon", "openx"),
    timeout = 1500
)
ts
// React Native / Flutter
prebidServer: {
  accountId: 'weatherbug',
  endpoint: 'https://prebid.sellwild.com/openrtb2/auction',
  bidders: ['appnexus', 'rubicon', 'ix', 'openx'],
  timeout: 1500,
}

What Gets Injected

When prebidServer is set, the SDK injects the following into the WebView before Prebid.js loads:

js
pbjs.setConfig({
    ortb2: {
        app: {
            bundle: "com.aws.android",
            storeurl: "https://apps.apple.com/app/id123456789",
            publisher: { id: "weatherbug" }
        }
    },
    userSync: {
        filterSettings: {
            iframe: { bidders: "*", filter: "exclude" }
        },
        syncDelay: 5000
    },
    s2sConfig: {
        accountId: "weatherbug-prod",
        bidders: ["appnexus", "rubicon", "ix", "openx"],
        timeout: 1500,
        adapter: "prebidServer",
        endpoint: {
            p1Consent: "https://prebid.sellwild.com/openrtb2/auction",
            noP1Consent: "https://prebid.sellwild.com/openrtb2/auction"
        }
    }
});

Available Bidders

The following SSPs are configured on prebid.sellwild.com. Use the bidder code in your bidders list.

SSPBidder Code
AppNexus / Xandrappnexus
PubMaticpubmatic
Index Exchangeix
Rubicon / Magniterubicon
OpenXopenx
TripleLifttriplelift
Sharethroughsharethrough
InMobiinmobi
Smaatosmaato
Yieldmoyieldmo
33Across33across
Sovrnsovrn
GumGumgumgum
Unrulyunruly
Criteocriteo
Media.netmedianet
Amazon TAMamazontam

Contact sdk@sellwild.com to enable additional bidders for your account.


Ad Size Reference

Predefined ad dimensions for banner ad units. Use these values when constructing SellwildAdView or SellwildBanner.

Enum / StringWidthHeightIAB NameRecommended Placement
.banner320x50 / "320x50"32050Mobile BannerTop or bottom of screen
.mrec300x250 / "300x250"300250Medium Rectangle (MREC)In-feed, between content sections
.leaderboard728x90 / "728x90"72890LeaderboardTablet top or bottom
.halfPage300x600 / "300x600"300600Half PageSidebar (tablet landscape)
.wideSkyscraper160x600 / "160x600"160600Wide SkyscraperSidebar (tablet landscape)

Platform-Specific Names

PlatformType NameValues
iOS (Swift)AdSize enum.banner320x50, .mrec300x250, .leaderboard728x90, .halfPage300x600, .wideSkyscraper160x600
Android (Kotlin)AdSize enumBANNER_320x50, MREC_300x250, LEADERBOARD_728x90, HALF_PAGE_300x600, WIDE_SKYSCRAPER_160x600
React Native (TS)AdSize string literal"320x50", "300x250", "728x90", "160x600", "300x600", "1x1"
Flutter (Dart)SellwildAdSize enumbanner320x50, mrec300x250, leaderboard728x90, halfPage300x600, wideSkyscraper160x600

Choosing Ad Sizes

DeviceRecommended Sizes
Phone (portrait)320x50 (banner), 300x250 (MREC)
Phone (landscape)320x50 (banner), 300x250 (MREC)
Tablet (portrait)728x90 (leaderboard), 300x250 (MREC)
Tablet (landscape)728x90 (leaderboard), 300x600 (half page)

Ad Refresh Configuration

The SDK supports automatic ad refresh -- after a successful impression, the ad slot re-auctions after a configurable interval.

Fields

FieldTypeDefaultDescription
adRefreshMaxMobileInt0 (disabled)Maximum number of refresh cycles per ad view instance on mobile. Set to 0 to disable ad refresh.
adRefreshMaxInt0Maximum refresh cycles for desktop/tablet widget layouts. adRefreshMaxMobile takes precedence on mobile when nonzero.
adRefreshIntervalDuration30 secondsTime between refresh cycles. IAB guidelines recommend a minimum of 30 seconds.
maxFailedAuctionsInt3Number of consecutive no-fill auctions before the SDK stops refreshing that ad slot.

Platform-Specific Types

PlatformadRefreshInterval TypeExample
iOSTimeInterval (seconds, Double)config.adRefreshInterval = 30.0
AndroidLong (milliseconds)adRefreshIntervalMs = 30_000L
React Nativenumber (seconds)adRefreshInterval: 30
FlutterDurationadRefreshInterval: Duration(seconds: 30)

Behavior

  1. The refresh timer starts after the first onAdImpression callback fires.
  2. Each cycle triggers a new Prebid Server auction for the same ad slot.
  3. Calling pause() cancels the pending refresh timer. Calling resume() does not restart it -- the next impression triggers a new cycle.
  4. Calling load() resets the internal refresh counter to zero.
  5. When maxFailedAuctions consecutive auctions return no fill, refresh stops for that ad slot.
  6. Each SellwildAdView / SellwildBanner instance has its own independent refresh counter.

Example

swift
// iOS -- refresh every 45 seconds, up to 8 times
config.adRefreshMaxMobile = 8
config.adRefreshInterval = 45.0
config.maxFailedAuctions = 5
kotlin
// Android -- refresh every 30 seconds, up to 10 times
config = SellwildConfig(
    partnerCode = "weatherbug",
    listingsUrl = "...",
    adRefreshMaxMobile = 10,
    adRefreshIntervalMs = 30_000L,
    maxFailedAuctions = 3,
    // ...
)

Debug Mode

Enable verbose logging to diagnose integration issues.

swift
config.debug = true   // iOS
kotlin
SellwildConfig(debug = true, ...)   // Android
ts
buildConfig({ debug: true, ... })   // React Native
dart
SellwildConfig(debug: true, ...)    // Flutter

What Debug Mode Enables

FeatureDescription
Prebid.js debug outputEnables pbjs.setConfig({ debug: true }) in the WebView. All auction events, bid values, and errors are logged to the WebView console.
SDK lifecycle loggingPrints ad load, impression, click, error, and refresh events to the platform logger (print on iOS, Log.d on Android, console.log on RN, debugPrint on Flutter).
Response telemetryLogs per-bidder response times from ext.responsetimemillis after each auction.

Inspecting WebView Console Output

iOS (Simulator or Device):

  1. On your iOS device or simulator, enable Settings > Safari > Advanced > Web Inspector.
  2. In Safari on your Mac, select Develop > [Device Name] > [Your App].
  3. The Prebid.js auction output appears in the Safari Web Inspector console.

Android:

  1. Open Chrome on your development machine.
  2. Navigate to chrome://inspect/#devices.
  3. Your app's WebView appears under the device. Click Inspect to open DevTools.

React Native:

  1. Enable remote debugging in the RN developer menu.
  2. Use Chrome DevTools or Flipper to view console output from react-native-webview.

Flutter:

  1. On Android, use chrome://inspect/#devices.
  2. On iOS, use Safari Web Inspector as described above.

Production Warning

Do not ship with debug: true. Debug mode increases CPU usage, network logging, and exposes auction CPM values in the console. Always set debug: false (or omit the field) for production builds.

Sellwild SDK Documentation