{"_id":"56fd46794388650e00eb477d","__v":2,"category":{"_id":"56fd3956caad892200847bce","__v":0,"project":"56c35c56c0c4630d004e864c","version":"56c35c56c0c4630d004e864f","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-03-31T14:51:02.977Z","from_sync":false,"order":1,"slug":"buzz-json-objects","title":"Buzz JSON Objects"},"version":{"_id":"56c35c56c0c4630d004e864f","project":"56c35c56c0c4630d004e864c","__v":8,"createdAt":"2016-02-16T17:28:54.864Z","releaseDate":"2016-02-16T17:28:54.864Z","categories":["56c35c57c0c4630d004e8650","56c7b9e5379b311700ed8fe3","56c7bab4606ee717003c4766","56c7bb3613e5400d001e8cbd","56cf3f5a5267d70b00494c4b","56cf3f866c5d7a13005ee894","56fd3956caad892200847bce","599da256e7742b002588bb02"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"0.5.0","version":"0.5"},"user":"56c39c05bc41330d009f25d7","parentDoc":null,"project":"56c35c56c0c4630d004e864c","updates":["57631e322884ab0e00fb007c"],"next":{"pages":[],"description":""},"createdAt":"2016-03-31T15:47:05.510Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":7,"body":"Buzz supports frequency caps at multiple levels of the object hierarchy, including [Advertisers](doc:advertisers), [Campaigns](doc:campaigns), [Line Items](doc:line-items), and [Creatives](doc:creatives). However the Beeswax \"Stinger\" bidder only currently supports Campaign and Line Item-level caps, anything set at the Advertiser or Creative level will be ignored. Within each frequency capping statement, Buzz can support multiple caps. For example, you may wish to cap ads at once per hour AND at 5 times per day. These multiple statements are stored in a JSON document within the respective object.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Validation of Frequency Cap Consistency\"\n}\n[/block]\nWhen submitting a set of frequency caps for a single object, Buzz will perform an additional check to see if the entirety of the set is logical and does not contain any contradictory statements. For example, you cannot cap one ad per day and also cap two ads per hour. The frequency cap set will fail if either:\n* More than one cap in the same statement has the exact same duration. e.g.: `[{\"duration\":3600,\"impressions\":2},{\"duration\":3600,\"impressions\":1}]`\n* A cap in the same statement has a lesser duration with the same or greater impressions. e.g. `[{\"duration\":3600,\"impressions\":1},{\"duration\":3500,\"impressions\":2}]`\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Validation at Line Item Level\"\n}\n[/block]\nWhen submitting frequency caps at the Line Item level, the caps will also be compared to the Campaign which owns the line item. The check will determine whether the Line Item contains any frequency caps with a lesser duration and the same or greater number of impressions. e.g. \n\n* Campaign frequency cap: `[{\"duration\":3600,\"impressions\":1}]`\n* Line Item cap: `[{\"duration\":3500,\"impressions\":2}]`.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Validation at Campaign Level\"\n}\n[/block]\nWhen changing existing frequency caps or adding new ones to an existing Campaign, the caps will also be compared to any Line Items which belong to that Campaign. The check will determine whether the Line Item contains any frequency caps with a lesser duration and the same or greater number of impressions. e.g. \n\n* Campaign frequency cap: `[{\"duration\":3600,\"impressions\":1}]` \n* Line Item cap: `[{\"duration\":3500,\"impressions\":2}]`.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"JSON Structure\"\n}\n[/block]\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Key\",\n    \"h-1\": \"Example value\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"frequency_cap\",\n    \"0-1\": \"`[{\\\"duration\\\":3600,\\\"impressions\\\":2},\\n{\\\"duration\\\":86400\\\",\\\"impressions\\\":5}]`\",\n    \"0-2\": \"An list of sets, each in the format `{\\\"duration\\\":<seconds>,\\\"impressions\\\":<impressions>}`. Buzz sets a maximum number of frequency caps of 3 per object. Both duration and impressions fields must be present.\"\n  },\n  \"cols\": 3,\n  \"rows\": 1\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Example JSON\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\\"frequency_cap\\\":\\n \\t[\\n    {\\\"duration\\\":3600,\\\"impressions\\\":2}\\n  ]\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]","excerpt":"","slug":"frequency-caps","type":"basic","title":"Frequency Caps"}
Buzz supports frequency caps at multiple levels of the object hierarchy, including [Advertisers](doc:advertisers), [Campaigns](doc:campaigns), [Line Items](doc:line-items), and [Creatives](doc:creatives). However the Beeswax "Stinger" bidder only currently supports Campaign and Line Item-level caps, anything set at the Advertiser or Creative level will be ignored. Within each frequency capping statement, Buzz can support multiple caps. For example, you may wish to cap ads at once per hour AND at 5 times per day. These multiple statements are stored in a JSON document within the respective object. [block:api-header] { "type": "basic", "title": "Validation of Frequency Cap Consistency" } [/block] When submitting a set of frequency caps for a single object, Buzz will perform an additional check to see if the entirety of the set is logical and does not contain any contradictory statements. For example, you cannot cap one ad per day and also cap two ads per hour. The frequency cap set will fail if either: * More than one cap in the same statement has the exact same duration. e.g.: `[{"duration":3600,"impressions":2},{"duration":3600,"impressions":1}]` * A cap in the same statement has a lesser duration with the same or greater impressions. e.g. `[{"duration":3600,"impressions":1},{"duration":3500,"impressions":2}]` [block:api-header] { "type": "basic", "title": "Validation at Line Item Level" } [/block] When submitting frequency caps at the Line Item level, the caps will also be compared to the Campaign which owns the line item. The check will determine whether the Line Item contains any frequency caps with a lesser duration and the same or greater number of impressions. e.g. * Campaign frequency cap: `[{"duration":3600,"impressions":1}]` * Line Item cap: `[{"duration":3500,"impressions":2}]`. [block:api-header] { "type": "basic", "title": "Validation at Campaign Level" } [/block] When changing existing frequency caps or adding new ones to an existing Campaign, the caps will also be compared to any Line Items which belong to that Campaign. The check will determine whether the Line Item contains any frequency caps with a lesser duration and the same or greater number of impressions. e.g. * Campaign frequency cap: `[{"duration":3600,"impressions":1}]` * Line Item cap: `[{"duration":3500,"impressions":2}]`. [block:api-header] { "type": "basic", "title": "JSON Structure" } [/block] [block:parameters] { "data": { "h-0": "Key", "h-1": "Example value", "h-2": "Description", "0-0": "frequency_cap", "0-1": "`[{\"duration\":3600,\"impressions\":2},\n{\"duration\":86400\",\"impressions\":5}]`", "0-2": "An list of sets, each in the format `{\"duration\":<seconds>,\"impressions\":<impressions>}`. Buzz sets a maximum number of frequency caps of 3 per object. Both duration and impressions fields must be present." }, "cols": 3, "rows": 1 } [/block] [block:api-header] { "type": "basic", "title": "Example JSON" } [/block] [block:code] { "codes": [ { "code": "{\"frequency_cap\":\n \t[\n {\"duration\":3600,\"impressions\":2}\n ]\n}", "language": "json" } ] } [/block]