Skip to content

Commit

Permalink
Discuss optional keys (#2738)
Browse files Browse the repository at this point in the history
* Update publisher-api-reference.md

* wordsmithing

good improvement. made a few updates.

Co-authored-by: bretg <bgorsline@gmail.com>
  • Loading branch information
patmmccann and bretg authored Mar 8, 2021
1 parent 0f002b3 commit 484813e
Showing 1 changed file with 46 additions and 34 deletions.
80 changes: 46 additions & 34 deletions dev-docs/publisher-api-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -2153,7 +2153,9 @@ Between this feature and the overlapping [sendBidsControl.bidLimit](/dev-docs/pu

##### Details on the allowTargetingKeys setting

When this property is set up, the `allowTargetingKeys` creates a default targeting key mask based on the default targeting keys defined in CONSTANTS.TARGETING_KEYS and CONSTANTS.NATIVE_KEYS. Any default keys that do not match the mask will not be sent to the adserver. This setting can be helpful if you find that your prebid implementation is by default sending key values that your adserver isn't configured to process. When extraneous key values are sent, the ad server request can be truncated, which can cause potential issues with the delivery or rendering of the ad.
The `allowTargetingKeys` config creates a targeting key mask based on the default targeting keys defined in CONSTANTS.TARGETING_KEYS and CONSTANTS.NATIVE_KEYS. Any default keys that do not match the mask will not be sent to the adserver. This setting can be helpful if you find that your default Prebid.js implementation is sending key values that your adserver isn't configured to process; extraneous key values may lead to the ad server request being truncated, which can cause potential issues with the delivery or rendering ads.

Prebid.js introduced the concept of optional targeting keys with 4.23. CONSTANTS.DEFAULT_TARGETING_KEYS is defined as a subset of CONSTANTS.TARGETING_KEYS. When a publisher defines targetingControls.allowTargetingKeys, this replaces the constant CONSTANTS.DEFAULT_TARGETING_KEYS and can include optional keys defined in CONSTANTS.TARGETING_KEYS. One example of this would be to make `hb_adomain` part of the default set.

To accomplish this, Prebid does the following:
* Collect original targeting generated by the auction.
Expand All @@ -2165,39 +2167,39 @@ To accomplish this, Prebid does the following:
The targeting key names and the associated prefix value filtered by `allowTargetingKeys`:

{: .table .table-bordered .table-striped }
| Name | Value |
|------------+------------|
| BIDDER | `hb_bidder` |
| AD_ID | `hb_adid` |
| PRICE_BUCKET | `hb_pb` |
| SIZE | `hb_size` |
| DEAL | `hb_deal` |
| SOURCE | `hb_source` |
| FORMAT | `hb_format` |
| UUID | `hb_uuid` |
| CACHE_ID | `hb_cache_id` |
| CACHE_HOST | `hb_cache_host` |
| ADOMAIN | `hb_adomain` |
| title | `hb_native_title` |
| body | `hb_native_body` |
| body2 | `hb_native_body2` |
| privacyLink | `hb_native_privacy` |
| privacyIcon | `hb_native_privicon` |
| sponsoredBy | `hb_native_brand` |
| image | `hb_native_image` |
| icon | `hb_native_icon` |
| clickUrl | `hb_native_linkurl` |
| displayUrl | `hb_native_displayurl` |
| cta | `hb_native_cta` |
| rating | `hb_native_rating` |
| address | `hb_native_address` |
| downloads | `hb_native_downloads` |
| likes | `hb_native_likes` |
| phone | `hb_native_phone` |
| price | `hb_native_price` |
| salePrice | `hb_native_saleprice` |

Below is an example config containing `allowTargetingKeys` excluding all default targeting keys except `hb_bidder`, `hb_adid`, and `hb_pb`:
| Name | Value | Default | Notes |
|------------+-----------+-------------+------------|
| BIDDER | `hb_bidder` | yes | |
| AD_ID | `hb_adid` | yes | Required for displaying a winning creative. |
| PRICE_BUCKET | `hb_pb` | yes | The results of the [price granularity](/dev-docs/publisher-api-reference.html#setConfig-Price-Granularity) calculation. |
| SIZE | `hb_size` | yes | '300x250' |
| DEAL | `hb_deal` | yes | |
| SOURCE | `hb_source` | yes | 'client' or 's2s' |
| FORMAT | `hb_format` | yes | 'banner', 'video', or 'native' |
| UUID | `hb_uuid` | yes | Network cache ID for video |
| CACHE_ID | `hb_cache_id` | yes | Network cache ID for AMP or Mobile |
| CACHE_HOST | `hb_cache_host` | yes | |
| ADOMAIN | `hb_adomain` | no | Set to bid.meta.advertiserDomains[0]. Use cases: report on VAST errors, set floors on certain buyers, monitor volume from a buyer, track down bad creatives. |
| title | `hb_native_title` | yes | |
| body | `hb_native_body` | yes | |
| body2 | `hb_native_body2` | yes | |
| privacyLink | `hb_native_privacy` | yes | |
| privacyIcon | `hb_native_privicon` | yes | |
| sponsoredBy | `hb_native_brand` | yes | |
| image | `hb_native_image` | yes | |
| icon | `hb_native_icon` | yes | |
| clickUrl | `hb_native_linkurl` | yes | |
| displayUrl | `hb_native_displayurl` | yes | |
| cta | `hb_native_cta` | yes | |
| rating | `hb_native_rating` | yes | |
| address | `hb_native_address` | yes | |
| downloads | `hb_native_downloads` | yes | |
| likes | `hb_native_likes` | yes | |
| phone | `hb_native_phone` | yes | |
| price | `hb_native_price` | yes | |
| salePrice | `hb_native_saleprice` | yes | |

Below is an example config of `allowTargetingKeys` excluding all default targeting keys except `hb_bidder`, `hb_adid`, and `hb_pb`:

```javascript
config.setConfig({
Expand All @@ -2206,6 +2208,16 @@ config.setConfig({
}
});
```
Another example config showing the addition of `hb_adomain` and excluding all default targeting keys except `hb_bidder`, `hb_adid`, `hb_size` and `hb_pb`:

```javascript
config.setConfig({
targetingControls: {
allowTargetingKeys: ['BIDDER', 'AD_ID', 'PRICE_BUCKET', 'SIZE', 'ADOMAIN']
}
});
```


<a name="setConfig-Configure-Responsive-Ads" />

Expand Down

0 comments on commit 484813e

Please sign in to comment.