Understanding Funnel Drops
This document outlines the reasoning behind every filter stage in the Funnel Report. Use this guide to diagnose the traffic dropping at each stages, from the initial Ad Request down to the final win.
Stage 1: Drop Reasons (Ad Request Level)
Global Validation & Traffic Quality
This stage represents the initial entry gate. Before any campaigns are evaluated, the platform validates the incoming ad request from the supply source. If a request is dropped here, it is considered ineligible for any campaign on the platform.
| 102 | VFR_APP_ID_MISSING_VALUE | The request failed because it did not contain a Bundle ID or App ID. |
|---|---|---|
| 103 | VFR_INVALID_APP_ID_VALUE | The provided App ID is malformed or does not exist in the Google Play or Apple App Store. |
| 104 | MANDATORY_PARAM_MISSING | A required OpenRTB parameter (e.g., Device ID, User Agent) was missing from the request. |
| 106 | INVALID_SCREEN_ID | The specific ad slot or placement ID is blocked by the POKKT system. |
| 109 | RTB_REQUEST_PARSING_ERROR | The request JSON/Protobuf was malformed and could not be read by the server. |
| 110 | INVALID_BID_REQUEST | The request structure is technically invalid or violates the platform's API specifications. |
| 112 | INVALID_IP | The source IP address is invalid, malformed, or belongs to a non-human data center. |
| 113 | MISSING_IDFA | The IFA Parameter in Device RTB Object is either missing or misformatted |
| 114 | INVALID_COUNTRY | The country code provided in the request is either blank or not a valid ISO code. |
| 115 | GEO_BLACKLIST_GLOBAL | The traffic originated from a country that is restricted across the POKKT platform. |
| 116 | GEO_BLACKLIST_PUB | The publisher has manually restricted traffic from this specific country for their account. |
| 118 | GLOBAL_BLACKLIST_GROUP_ID_FILTER | The request belongs to a specific group ID that is blacklisted globally for quality issues across the POKKT platform. |
| 119 | MISSING_APP_STORE_URL | The publisher has not provided a valid store link for the app, failing transparency checks. |
| 120 | CCPA_FILTER | The request was dropped due to missing or non-compliant California consumer privacy signals. |
| 122 | BANNED_KEYWORD_FILTER | The app name or metadata contains keywords that are prohibited by safety guidelines. |
| 125 | PUBLISHER_BOT_REQUEST | The request was identified as non-human traffic or an automated crawler. |
| 126 | DESKTOP_TRAFFIC_FILTER | The request was identified as Desktop/Web traffic, which is excluded by the platform. |
| 129 | CONTENT_NOT_ALLOWED | The specific content type or genre of the app is restricted by the platform. |
| 130 | MISSING_TEMPLATE | No creative or auction template was found that matches the request's requirements. |
| 131 | MISSING_APPSTORE_URL_FILTER | A specific filter that drops requests where the App Store URL is absent to ensure brand safety. |
| 132 | INVALID_AD_ID | The Advertising ID (GAID/IDFA) is either missing, zeroed out, or malformed. |
| 133 | INVALID_INTERSTITIAL_CREATIVE | The request for an interstitial unit could not be matched with a valid creative size or type. |
| 134 | FIRST_PRICE_AUCTION | The request was dropped because it requires a First-Price auction model not supported for this unit. |
| 136 | TRAFFIC_FILTER | The request was dropped due to a manual, temporary custom exclusion rule. |
| 137 | OFFER_FILTERS | A high-level filter that dropped the request before it could be processed by specific campaign logic. |
| 138 | UNKNOWN_ERROR | An unexpected system error occurred during the initial request validation. |
| 141 | MAX_BID_PRICE_CPM | Dropped because the publisher's bid floor exceeds the platform's maximum allowable limit ($20). |
| 142 | VFR_SUPPLY_CHAIN_NODE_NOT_COMPLETED | The schain (SupplyChain) object is incomplete, failing IAB transparency standards. |
| 202 | IVT_IP | The request was filtered because the source IP address is associated with known Invalid Traffic (IVT). |
| 204 | BLACKLISTED_APP | The request originated from an application that has been blocked across the POKKT network. |
| 205 | REPEAT_USER_FILTER | The request was dropped to prevent spamming from a single user ID sending excessive requests. |
| 206 | NO_OFFER_FOUND | No active campaign or offer in the system currently matches the basic profile of this traffic. |
| 208 | WO_LOOKUP_FAILED | The fraud verification lookup was initiated by HUMAN but failed to return a valid result for this request. |
| 209 | WO_IVT | HUMAN explicitly flagged this request as sophisticated or general invalid traffic. |
| 210 | IVT_TRAFFIC_GDPR | The traffic was filtered because it failed to provide valid GDPR consent strings required for EU users. |
| 211 | TRAFFIC_FILTER | A general bucket for traffic discarded due to high-level system-wide throttling or quality rules. |
| 213 | UNAUTHORIZED_SELLER | The request failed ads.txt or app-ads.txt validation, indicating the seller is not authorized. |
| 377 | NO_BIDDERS_FOUND | No external bidders were eligible for this specific bidder. |
| 378 | NO_OFFERS_FOUND | No campaigns in the system were eligible for this specific ad request. |
| 381 | NO_AVAILABLE_BIDS_FOR_AUCTION | No bids were available in the POKKT auction for this specific request. |
| 525 | PRICE_MARGIN | The request was dropped because the margin between the campaign bid and the publisher floor was too narrow. |
| 619 | TAG_DCIP_FILTER | The bidder's response was associated with an IP address on a known blocklist provided by TAG. |
| 675 | TRAFFIC_FILTER | The request was discarded due to publisher-level traffic sampling. |
| 677 | UNKNOWN_FILTER | The ad was filtered due to an unclassified error after the bid response. |
Stage 2: Filter Reasons (Offer & Targeting Level)
Campaign Matching & Optimization
Once an ad request is validated, the system attempts to match it with eligible campaigns and offers. A "Filter" occurs when a specific campaign is excluded from the auction because the request does not meet the criteria defined in the campaign settings.
| 302 | OFR_SELLER_EXT_FILTER_VALUE | The request was filtered because it contained more than two seller nodes in the supply chain. | Contact the Publisher to verify their ads.txt chain, direct paths are preferred. |
|---|---|---|---|
| 303 | OFR_CAMPAIGN_DURATION_FILTER | The request time falls outside the campaign's active start and end date or dayparting schedule. | Extend the campaign end date from Delivery > Campaign > Edit Campaign > End Date |
| 304 | OFR_LINE_ITEM_STATUS_FILTER | The offer has already reached its daily impression or budget cap. | Increase the Daily Cap limit or wait for the counter to reset at midnight(UTC) Delivery > Offers > Edit Offers > Pricing & Capping > Daily Capping |
| 305 | OFR_CAMPAIGN_FORM_TYPE_FILTER | The ad format type in the request (e.g., Video) differs from the offer's configuration. | Ensure the Campaign Creative type (Video vs Banner) matches the Publisher's ad slot. Delivery > Offers/Bidders > Ad Format (Listing Page) |
| 306 | OFR_GEO_TARGETING_FILTER | There is a mismatch between the request's country/region and the campaign's targeted geography. | Add the requested City/Region to the list in Targeting Profile . Delivery > Offers/Bidders > Line Item Details > Targeting > Edit Targeting Profile > Geo Targeting |
| 307 | OFR_POSTAL_CODE_TARGETING_FILTER | The user's specific zip or postal code is not included in the offer's target list. | Add the missing Zip/Postal Code to the whitelist or broaden to City targeting. Delivery > Offers/Bidders > Line Item Details > Targeting > Edit Targeting Profile > Geo Targeting |
| 308 | OFR_API_FRAMEWORK_FILTER | The request requires an API framework (e.g., MRAID, OMID) that the offer does not support. | Update the creative to support the required API (enable MRAID/OMID). |
| 309 | OFR_IP_FILTER | The specific IP address of the request is excluded by the offer's IP targeting rules. | Remove the IP address from the Exclusion/Blocklist. Delivery > Offers/Bidders > Line Item Details > Targeting > Edit Targeting Profile > IP Filter |
| 311 | OFR_EXCLUSIVE_IDFA_FILTER | The offer is set to target specific Device IDs that do not match this request. | Verify the uploaded Device ID list is accurate and up-to-date. Delivery > Offers/Bidders > Line Item Details > Targeting > Edit Targeting Profile > Advertiser Targeting |
| 312 | OFR_ONLY_DEVICE_TRAFFIC_FILTER | The offer is configured to only accept traffic from specific mobile device models. | Broaden the Device Model targeting. Delivery > Offers/Bidders > Line Item Details > Targeting > Edit Targeting Profile > Device & Brand |
| 313 | OFR_FORCED_OFFER_FILTER | A manual override was applied to exclude this offer from the current auction. | |
| 314 | OFR_SDK_VERSION_FILTER | The publisher's SDK version is too old or incompatible with the offer's requirements. | Target newer SDK versions or ask Publisher to update their SDK. |
| 315 | OFR_SDK_TRAFFIC_FILTER | The offer is restricted to only serve on traffic originating from specific POKKT SDKs. | Remove the restriction to allow traffic from other exchanges/sources. |
| 316 | OFR_VIDEO_PLACEMENT_TYPE_FILTER | The placement type (e.g., In-stream vs Interstitial) does not match the offer's targeting. | Align the Offer placement setting with the Publisher's request type. |
| 317 | OFR_PROTOCOLS_FILTER | The VAST or RTB protocols requested are not supported by the campaign's creative. | Ensure the creative supports the requested protocol. |
| 318 | OFR_OFFER_BATTERY_LEVEL_FILTER | The request was filtered because the user's device battery level did not meet the offer's criteria. | |
| 319 | OFR_DSP_OFFER_CATEGORY_FILTER | The DSP's creative category is blacklisted by the publisher's request. | Change the IAB Category of the creative to one accepted by the Publisher. |
| 320 | OFR_OFFER_RATE_FILTER | The offer was throttled based on a pre-set sampling rate to control spend. | Adjust the pacing/sampling rate in campaign settings to allow more bids. |
| 321 | OFR_EXCHANGE_TARGETING_FILTER | The offer is restricted to specific supply exchanges that do not match the current request. | Add the current Exchange/SSP to the targeting whitelist. |
| 322 | OFR_CHILDREN_CENTRIC_FILTER | The offer was filtered to comply with COPPA/Children's privacy laws based on the app category. | |
| 323 | OFR_CAMPAIGN_STATUS_FILTER | The high-level campaign linked to this offer is currently inactive or paused. | Activate the parent Campaign. Delivery > Campaign > Action > Active |
| 324 | OFR_SCREEN_DENSITY_CATEGORY_FILTER | The user's device screen density (DPI) does not meet the offer's targeting requirements. | Remove high-DPI restrictions to accept lower-resolution screens. |
| 325 | OFR_CONNECTION_TYPE_FILTER | Mismatch between the user's connection (e.g., WiFi vs Cellular) and campaign targeting. | Enable both WiFi and Cellular targeting to capture all users. Delivery > Offers/Bidders > Line Item Details > Targeting > Edit Targeting Profile > Internet |
| 326 | OFR_SERVER_SIDE_PROCESSING_FILTER | The offer is not eligible for server-to-server (S2S) ad serving environments. | Delivery > Offers/Bidders > Line Item Details > Optimization > Server Side Processing |
| 327 | OFR_PUBLISHER_STATUS_FILTER | The offer is not in an "Active" state or is currently set to "Test Mode." | Check the Offer status and ensure it's Active. Delivery > Offer > Action > Active |
| 328 | OFR_VIEWABILITY_VENDOR_FILTER | The offer requires a specific viewability vendor (e.g., IAS) not present in the request. | Remove the Viewability vendor requirement or find compatible supply. Delivery > Offer > Edit > Viewability Tracking |
| 329 | OFR_OMSDK_FILTER | The request does not support the Open Measurement SDK required by the campaign. | Target only OM-enabled inventory or remove the requirement. Delivery > Offer > Edit > Viewability Tracking |
| 330 | OFR_GENERIC_DEVICE_FILTER | The device was identified as a generic or "unknown" model excluded by the campaign. | |
| 331 | OFR_EXCHANGE_PRICE_FILTER | The bid price offered by the DSP did not meet the exchange's minimum requirements. | Increase the Publisher CPM. Delivery > Offer > Edit > Pricing |
| 332 | OFR_OPERATOR_FILTER | The mobile carrier (e.g., AT&T, Verizon) does not match the campaign's targeting. | Add the missing Carrier/ISP to the target list. Delivery > Offers/Bidders > Line Item Details > Targeting > Edit Targeting Profile > Internet |
| 333 | OFR_OPERATING_SYSTEM_FILTER | The device operating system (iOS vs Android) does not match the offer's targeting. | Ensure both OS versions are targeted if cross-platform delivery is desired. Delivery > Offers/Bidders > Line Item Details > Targeting > Edit Targeting Profile > Device & Brand |
| 334 | OFR_DEVICE_TYPE_FILTER | The device type (Phone vs Tablet) does not match the offer's targeting. | Select both Phone and Tablet in Device Targeting. Delivery > Offers/Bidders > Line Item Details > Targeting > Edit Targeting Profile > Device & Brand |
| 335 | OFR_DEVICE_LANGUAGE_FILTER | The system language of the user's device is not targeted by this offer. | Add the missing language (or "All") to targeting. Delivery > Offers/Bidders > Line Item Details > Targeting > Edit Targeting Profile > Device & Brand |
| 336 | OFR_VIDEO_MIME_TYPE_FILTER | The video file formats (MIME types) available do not match what the publisher allows. | Upload additional video formats (MP4, WebM, 3GPP). |
| 337 | OFR_VIDEO_DURATION_FILTER | The length of the video ad is either too short or too long for the publisher's placement. | Match the video creative duration to the ad slot duration (e.g., 15s or 30s). |
| 338 | OFR_VIDEO_BITRATE_FILTER | The video quality/bitrate does not meet the technical requirements of the request. | Upload alternative video renditions with different bitrates (Low/Med/High). Delivery > Creatives > Manage Creatives > Action > Edit Creative > Asset |
| 339 | OFR_DEVICE_BRAND_MODEL_EXCLUDE_FILTER | The offer has explicitly excluded specific device attributes present in the request. | Remove the specific Device Brand/Model from the Exclusion list. Delivery > Offers/Bidders > Line Item Details > Targeting > Edit Targeting Profile > Device & Brand |
| 340 | OFR_DEVICE_BRAND_MODEL_FILTER | The offer requires specific device metadata that was missing from the request. | Broaden targeting to include "Unknown" models or generic brands. |
| 341 | OFR_APP_BUNDLE_GROUP_FILTER | The request was filtered due to App allowlist/blocklist rules within a Targeting Group. | Review and update the App Bundle List in the attached Target Group. Delivery > Targeting > Site Lists > Edit Site List |
| 342 | OFR_BANNER_TYPE_FILTER | The banner sub-type (e.g., Rich Media) is not allowed by this publisher request. | Use a Static Image banner for this inventory. |
| 343 | OFR_CONTENT_ATTRIBUTE_FILTER | The creative contains attributes (e.g., Audio on start) that are blacklisted in the request. | Update the Content Attributes Delivery > Offers/Bidders > Line Item Details > Content Attributes |
| 344 | OFR_CONTENT_CATEGORY_FILTER | The IAB category of the offer is blacklisted by the publisher. | Change the campaign's IAB Category to a neutral one (e.g., Technology). |
| 345 | OFR_BLOCKED_ADVERTISER_DOMAIN_FILTER | The advertiser's domain is specifically blocked by the publisher. | Contact Publisher to whitelist the domain or switch domain URLs. |
| 346 | OFR_MANDATORY_ATTRIBUTES_FILTER | The offer is missing mandatory creative attributes required by the exchange. | Fill in all creative attribute fields (e.g., Duration, Skippable, Audio). |
| 347 | OFR_WHITELIST_APP_FILTER | The request came from an app that is not on the offer's "Allow Only" list. | Add the current App Bundle ID to the Whitelist. Delivery > Targeting > Publisher Targeting Group > Edit |
| 348 | OFR_BLACKLIST_APP_FILTER | The request came from an app that is explicitly blocked by the offer. | Remove the App Bundle ID from the Blocklist. Delivery > Targeting > Publisher Targeting Group > Edit |
| 349 | OFR_OFFER_DEVICE_LIMIT_FILTER | The offer has reached its maximum unique device (user) limit for the period. | Increase the Unique User Reach limit. Delivery > Offers/Bidders > Line Item Details > Advanced Pacing & Capping Option |
| 350 | OFR_APPADS_FILTER | The offer was filtered due to a mismatch with the publisher's app-ads.txt file. | Contact Publisher to ensure your Seat ID is authorized in their app-ads.txt. |
| 351 | OFR_USER_PROFILE_FILTER | The user's demographic profile (age/gender) does not match the targeted criteria. | Broaden Age/Gender targeting ranges. Delivery > Offers/Bidders > Line Item Details > Targeting > Edit Targeting Profile > Demography |
| 352 | OFR_USER_PROFILE_TAG_FILTER | The user lacks specific interest tags required for targeting this offer. | Remove niche interest tags to scale delivery. Delivery > Offers/Bidders > Line Item Details > Targeting > Edit Targeting Profile > Demography |
| 353 | OFR_USER_PLACES_FILTER | The user is not in a specific physical location or POI targeted by the offer. | Expand the geo-fencing radius or add more POIs. |
| 354 | OFR_AUDIENCE_SEGMENT_FILTER | The user does not belong to the 1st or 3rd party audience segments targeted by the campaign. | Delivery > Targeting > Audiences > Edit |
| 355 | OFR_CREATIVE_DIMENSION_FILTER | No creative size in the offer matches the dimensions requested for the ad slot. | Add creatives with the requested dimensions. Delivery > Creatives > Manage Creative > Edit Creative > Asset > Dimensions |
| 356 | OFR_END_CARD_FILTER | The offer lacks the mandatory end-card required for this interactive ad request. | Upload a Companion Ad/End Card to the creative assets. Delivery > Creatives > Manage Creative > Edit Creative > Companion Creatives (Only for Video Creatives) |
| 357 | OFR_WEATHER_FILTER | The weather conditions at the user's location do not match the offer's weather targeting. | Remove weather restrictions or target more weather types. Delivery > Offers/Bidders > Line Item Details > Targeting > Edit Targeting Profile > Weather Targeting |
| 358 | OFR_UV_FILTER | The UV index at the user's location does not match the offer's targeting. | Remove UV Index targeting. |
| 359 | OFR_PLACE_FILTER | The user is not in the specific venue type (e.g., Airport, Mall) targeted by the offer. | |
| 360 | OFR_SEGMENT_FILTER | The user failed to match the specific data segment required for this offer. | Verify the segment ID is active and populated. |
| 361 | OFR_BLUEKAI_SEGMENT_FILTER | The user is not part of the targeted BlueKai (Oracle) data audience. | |
| 362 | OFR_CATEGORY_IAB_FILTER | The campaign's IAB category is restricted on this specific supply source. | Update the IAB Category to be more compliant with the Publisher's rules. Delivery > Offers/Bidders > Line Item Details > Targeting > Edit Targeting Profile > Contextual Targeting > IAB Categories |
| 363 | OFR_CITY_POLLUTION_FILTER | The offer is targeting specific air quality/pollution levels not present at the user's location. | |
| 364 | OFR_CITY_POLLUTION_PE_FILTER | Filtered based on a predictive pollution index (PE) for the user's city. | |
| 365 | OFR_BID_PRICE_FILTER | The bid price is null, uses a non-CPM structure, or is below the auction floor. | Set a valid CPM price above the floor. Delivery > Offers/Bidders > Pricing |
| 366 | OFR_DSP_REQUEST_PREDICTION_FILTER | The internal prediction engine decided not to send a request to the DSP for this auction. | |
| 367 | OFR_PREVIOUSLY_VISITED_APPS_FILTER | The user hasn't visited the prerequisite apps required by this offer's retargeting logic. | Wait for the user pool to grow or remove the retargeting rule. |
| 368 | OFR_CAMPAIGN_FREQUENCY_AND_RECENCY_FILTER | The user has hit the frequency or recency cap for the entire campaign. | Increase the Global Frequency Cap for the campaign. |
| 369 | OFR_FREQUENCY_AND_RECENCY_FILTER | The user has hit the frequency or recency cap specifically for this individual offer. | Increase the Offer-level Frequency Cap. Delivery > Offers/Bidders > Line Item Details > Advanced Pacing & Capping Option |
| 370 | OFR_NATIVE_COMMON_FILTER | Mismatch in mandatory native ad assets (e.g., missing icon or headline). | Ensure all Native assets (Icon, Title, Description, Image) are uploaded. |
| 371 | OFR_TOPK_USER_DAILY_LIMIT_FILTER | The user has reached the daily impression limit set for "Top-K" high-value audience rules. | Increase the Daily limit for High-Value users. |
| 372 | OFR_TOPK_USER_MONTHLY_LIMIT_FILTER | The user has reached the monthly impression limit for "Top-K" high-value audience rules. | Increase the Monthly limit for High-Value users. |
| 373 | OFR_PUBLISHER_APP_ENDPOINT_FILTER | The request was filtered due to a specific exclusion of a Publisher/App combination. | Remove the manual block on this specific Publisher App endpoint. Delivery > Targeting > Publisher Targeting Group > Edit Publisher Targeting Group |
| 374 | OFR_SERVER_END_POINT_FILTER | The offer is restricted from serving on this specific server endpoint/data center. | |
| 375 | OFR_BIDDER_MARGIN_FILTER | The resulting publisher CPM would be lower than the required bid floor after margin. | Increase the Gross Bid Price to cover the margin deduction. Delivery > Offers/Bidders > Pricing |
| 376 | OFR_BIDDER_SIZES_FILTER | The bidder's supported creative sizes do not match the publisher's request. | Add more creative sizes to the Bidder configuration. Delivery > Targeting > Targeting Profile > Properties > Bidder Ad Sizes |
| 377 | OFR_NO_BIDDERS_FOUND | No external bidders responded to the request for this specific offer. | Check status of external DSP connections. |
| 378 | OFR_NO_OFFERS_FOUND | No campaigns in the entire system were eligible for this specific ad request. | Review broad inventory targeting (Country, Device, Format). |
| 379 | OFR_SEGMENT_LIMITED_TRACKING | The user has "Limit Ad Tracking" enabled, but the offer requires a valid IDFA/GAID. | Enable targeting for LAT (Limit Ad Tracking) traffic. |
| 380 | OFR_SEGMENT_IFA_NOT_EXCLUDED | The user was not excluded from the audience segment as per the offer's negative targeting. | Verify the Negative Audience Segment logic. |
| 381 | OFR_NO_AVAILABLE_BIDS_FOR_AUCTION | No bids were available in the POKKT auction for this specific request. | Check active campaigns and bid floors. |
| 382 | OFR_NO_OFFERS_FOUND_IN_DSP_SERVICE | The connected DSP did not have any active offers for this specific request. | Contact the DSP to troubleshoot their campaign availability. |
| 383 | OFR_DAYTIME_TARGETING_FILTER | The offer was filtered based on specific hour-of-day or day-of-week targeting. | Add the current hour/day to the Dayparting schedule. Delivery > Targeting > Targeting Profile > Day and Time Parting |
| 384 | OFR_APP_CATEGORY_FILTER | The Offer was filtered due to App Category based Targeting | Add the Publisher's App Category to targeting. Delivery > Targeting > Targeting Profile > Contextual Targeting |
| 385 | OFR_ML_LOW_CTR_FILTER | Dropped because historical data indicates a very low probability of the user clicking on the ad on this specific inventory. | Update creative assets or increase bid to overcome filter. |
| 386 | OFR_ML_SMART_BID_THROTTLE_FILTER | Dropped because the Smart Bidding algorithm has predicted a low conversion probability. | |
| 387 | OFR_ML_LOW_VCR_FILTER | Dropped because historical data indicates a very low probability of the user completing the video view on this specific inventory. | Update creative assets or increase bid to overcome filter. |
| 388 | OFR_VIDEO_AD_POSITION_FILTER | The offer was filtered because its targeted position (e.g., Pre-roll or Mid-roll) does not match the publisher's ad slot. | Target "Any" position or match the specific slot type. |
| 389 | OFR_CTV_CONTENT_LIVE_STREAM_FILTER | Dropped because the request came from a Live Stream, which is excluded by the offer's current targeting settings. | Enable "Live Stream" targeting in CTV settings. |
| 390 | OFR_CTV_CONTENT_LANGUAGE_FILTER | Dropped because the language of the CTV program does not align with the language targeting of the offer. | Add the content language to the targeting list. Delivery > Targeting > Targeting Profile > Device & Brand > Device Language |
| 391 | OFR_CTV_CONTENT_TYPE_FILTER | Dropped because the CTV content type (e.g., Movie, News, or Sports) does not match the offer's content targeting. | Broaden content type targeting. |
| 392 | OFR_CTV_CONTENT_RATING_FILTER | The offer was filtered because the CTV content rating (e.g., PG, TV-MA) is not permitted by the campaign's safety settings. | |
| 393 | OFR_VIDEO_PLAYBACK_FILTER | Dropped because the requested playback method (e.g., Auto-play sound on) is restricted by the offer’s creative attributes. | Ensure creative supports the requested playback method. |
| 394 | OFR_VIDEO_REWARDED_TYPE_FILTER | Dropped because the offer's rewarded video status (e.g., Non-Rewarded) does not match the specific rewarded ad format requested by the publisher. | Enable "Rewarded" video targeting for this campaign. Delivery > Offers > Edit Offers > Media > Video Incent Type |
| 399 | OFR_ML_LOW_WIN_PROPENSITY_FILTER | Dropped because historical data shows a <0.1% chance of winning this auction at the current bid. | Increase publisher CPM of the offer/bidder |
| 503 | OFR_DEAL_FILTER | The offer was excluded because the Deal ID in the request does not match the campaign’s deal settings. | Ensure the correct PMP Deal ID is applied to the campaign. |
| 601 | RVF_DSP_INVALID_RESPONSE | The bidder's response was malformed or failed to comply with OpenRTB specifications. | Contact DSP to fix their RTB response structure. |
| 602 | RVF_DSP_EMPTY_RESPONSE | The bidder returned a "No Bid" or a response with no ad content. | Check DSP campaign active status and targeting. |
| 605 | RVF_OFFER_TIMEOUT | The third-party bidder failed to respond within the required time limit. | Increase timeout threshold or optimize connection latency. |
| 609 | RVF_PRICE_FILTER | The bid price returned was either below the publisher floor or above the platform cap. | Adjust bid to be within the allowed Price Range. Delivery > Offers > Edit Offers > Pricing > Publisher CPM |
| 614 | RVF_TARGET_GROUP_EXCLUDE_FILTER | The user or request belongs to a targeting group explicitly excluded by the offer. | Remove the Target Group exclusion. Delivery > Targeting > Publisher Targeting Group > Edit Publisher Targeting Group |
| 615 | RVF_OFFER_USER_LIMIT_FILTER | The unique user reach limit for this specific offer has been reached. | Increase the Unique User Limit for the offer. Delivery > Offers/Bidders > Line Item Details > Advanced Pacing & Capping Option |
| 616 | RVF_DAILY_LIMIT_REACHED_FILTER | The offer/bidder has reached its daily impression or budget cap. | Increase the Daily Budget/Impression Cap. Delivery > Offers/Bidders > Line Item Details > Pacing & Capping |
| 617 | RVF_HOURLY_LIMIT_REACHED_FILTER | The offer/bidder has reached its impression cap for the current hour. | Increase the Hourly pacing limit. Delivery > Offers/Bidders > Line Item Details > Advanced Pacing & Capping Option |
| 620 | RVF_DSP_FETCH_ERROR | An error occurred while attempting to retrieve ad assets from the DSP’s server. | Check DSP server health and asset URL accessibility. |
| 630 | RTB_LOST_IN_INTERNAL_AUCTION | The bid was valid but lost the internal POKKT auction to a higher-paying campaign. | Increase the Bid Price to beat internal competition. Delivery > Offers/Bidders > Line Item Details > Pricing > Publisher CPM |
| 642 | RVF_VAST_AD_ERROR_IMPROPER_XML | The VAST XML returned by the bidder is malformed or contains syntax errors. | Validate VAST XML syntax using a VAST Validator tool. |
| 643 | RVF_VAST_AD_ERROR_INVALID_VAST | The response is not a valid VAST document (e.g., incorrect schema). | Fix the VAST XML structure (missing tags/headers). |
| 644 | RVF_VAST_AD_ERROR_VERSION_ABSENT_OR_INCOMPATIBLE | The VAST version (e.g., 2.0 vs 4.0) is either missing or incompatible. | Update VAST version header to match Publisher requirement. |
| 647 | RVF_VAST_AD_ERROR_INVALID_AD_DURATION | The actual duration in the VAST tag does not match the metadata or request limits. | Correct the duration field in the VAST tag to match the video file. |
| 650 | RVF_VAST_AD_ERROR_EMPTY_URL_CONTENT | The VAST tag contains an empty URL for a critical resource or tracker. | Ensure the MediaFile node contains a valid URL. |
| 651 | RVF_VAST_AD_ERROR_WRAPPER_LIMIT_REACHED | The ad failed because it reached the maximum number of VAST wrappers/redirects. | Reduce the number of VAST Redirects/Wrappers. |
| 652 | RVF_VAST_AD_ERROR_AD_ABSENT | In case of direct third party offer, when bidder responds with no bid response consisting of vast version in the bid response. | Ensure the third-party tag is actually returning an ad, not an empty VAST. |
| 653 | RVF_VAST_AD_ERROR_LI_GENERAL_LINEAR_ERROR | A general error occurred during the processing of a Linear ad. | Check creative encoding and VAST integrity. |
| 656 | RVF_VAST_AD_ERROR_LI_MEDIA_FILE_NOT_SUPPORTED | The media file format is not supported by the target video player. | Change the Media File format (e.g., use standard MP4). |
| 665 | RVF_VAST_AD_ERROR_CA_UNABLE_TO_FETCH_RESOURCE | Unable to fetch the companion ad resource from the bidder's server. | Verify the Companion Ad image URL is live and accessible. |
| 667 | RVF_VAST_AD_ERROR_UNDEFINED_ERROR | An unclassified error occurred within the VAST processing engine. | Debug with full VAST response logs; check for rare character encoding issues. |
| 677 | RVF_UNKNOWN_FILTER | The ad was filtered due to an unclassified error after the bid response. | Escalate to Engineering with transaction logs. |
| 678 | RVF_MAX_BID_PRICE_FILTER_VALUE | Dropped because the bid price returned by the DSP exceeds the platform's maximum allowable CPM threshold $10 | Check bid value for errors and ensure value is under $20. Delivery > Offers/Bidders > Line Item Details > Pricing > Publisher CPM |
| 679 | RVF_BIDDER_TIMEDOUT | The internal or direct bidder failed to provide an ad response within the platform's required latency window. | Optimize internal bidder latency or increase timeout settings. |
| 680 | RVF_DSP_TIMEDOUT | The external DSP failed to respond to the bid request before the connection was terminated by the exchange. | Contact DSP to improve their response time. |
| 681 | RVF_SELECTED_OFFER_IS_NULL | Dropped because the auction failed to select a valid winning offer after all final validation checks were performed. | Review all Validation rules, the winner became invalid post-auction. |
Stage 3: Bid Loss & Validation Reasons (Auction Level)
Creative Integrity & Auction Dynamics
This stage involves the final step where a campaign has been selected to bid or serve. A "Bid Loss" or "Validation Error" happens if the bid cannot be completed or is outperformed by another campaign in the real-time Publisher auction.
| 0 | BID_WON | The bid was successful and resulted in a winning auction response. |
|---|---|---|
| 1 | INTERNAL_ERROR | An unexpected technical error occurred within the platform during the auction process. |
| 2 | IMPRESSION_OPPORTUNITY_EXPIRED | The time window for the user to view the ad passed before the bid could be finalized. |
| 3 | INVALID_BID_RESPONSE | The response sent by the POKKT system did not follow the required OpenRTB protocol or structure. |
| 4 | INVALID_DEAL_ID | The Deal ID included in the bid does not match an active or recognized private marketplace agreement. |
| 5 | INVALID_AUCTION_ID | The bid response referenced an auction ID that was either closed, incorrect, or expired. |
| 6 | INVALID_ADVERTISER_DOMAIN | The advertiser domain (ADOMAIN) provided was missing, malformed, or blocked. |
| 7 | MISSING_MARKUP | The bid response was sent without the actual ad code (HTML/Vast) required to render the ad. |
| 8 | MISSING_CREATIVE_ID | The response failed to include a unique identifier for the creative being served. |
| 9 | MISSING_BID_PRICE | The bid was rejected because it did not specify a bid CPM value. |
| 10 | MISSING_MINIMUM_CREATIVE_APPROVAL_DATA | The bid lacked mandatory metadata required by the exchange for creative verification. |
| 100 | BID_BELOW_AUCTION_FLOOR | Your bid price was lower than the minimum CPM set by the publisher for this open auction. |
| 101 | BID_BELOW_DEAL_FLOOR | Your bid was lower than the pre-negotiated minimum price for this specific PMP deal. |
| 102 | LOST_TO_HIGHER_BID | You placed a valid bid, but another advertiser won by bidding a higher price. |
| 103 | LOST_TO_BID_PMP_DEAL | The impression was awarded to a preferred buyer in a Private Marketplace (PMP) deal. |
| 104 | BUYER_SEAT_BLOCKED | The publisher has specifically blocked your buyer seat from bidding on their inventory. |
| 200 | CREATIVE_FILTERED_GENERAL | The creative was rejected for an unspecified reason during the exchange's final check. |
| 201 | CREATIVE_FILTERED_PENDING_EXCHANGE | The creative is currently in a queue and has not yet been approved by the exchange. |
| 202 | CREATIVE_FILTERED_DISAPPROVED_EXCHANGE | The exchange has explicitly rejected this creative for failing their policy or quality standards. |
| 203 | CREATIVE_FILTERED_SIZE_NOT_ALLOWED | The dimensions of your creative do not match the dimensions requested by the publisher. |
| 204 | CREATIVE_FILTERED_INCORRECT_CREATIVE_FORMAT | The ad format (e.g., MRAID) does not match the format required for the specific ad slot. |
| 205 | CREATIVE_FILTERED_ADVERTISER_EXCLUSIONS | The publisher has blocked your specific brand or advertiser domain from appearing on their app. |
| 206 | CREATIVE_FILTERED_APP_BUNDLE_EXCLUSIONS | The creative was filtered because it belongs to an app bundle that the publisher has blocked. |
| 207 | CREATIVE_FILTERED_NOT_SECURE | The ad assets were served over HTTP; most publishers require secure HTTPS connections. |
| 208 | CREATIVE_FILTERED_LANGUAGE_EXCLUSIONS | The language of the creative does not match the language requirements of the publisher/region. |
| 209 | CREATIVE_FILTERED_CATEGORY_EXCLUSION | The creative category (e.g., Gambling, Politics) is restricted by the publisher. |
| 210 | CREATIVE_FILTERED_CREATIVE_ATTRIBUTE_EXCLUSIONS | The creative contains attributes (like Auto-play sound or Pop-ups) that the publisher forbids. |
| 211 | CREATIVE_FILTERED_AD_TYPE_EXCLUSIONS | The type of ad (e.g., Banner vs Video) is not permitted for this specific request. |
| 212 | CREATIVE_FILTERED_ANIMATION_TOO_LONG | The duration of the ad's animation or video exceeds the publisher's maximum time limit. |
| 213 | CREATIVE_FILTERED_NOT_ALLOWED_PMP_DEAL | The creative was rejected because it did not meet the specific requirements of the PMP deal. |