{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/google-campaign-manager/json-schema/google-campaign-manager-site-schema.json",
  "title": "Site",
  "description": "Contains properties of a site.",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-campaign-manager-sites-api-openapi.yml#/components/schemas/Site",
  "type": "object",
  "properties": {
    "directorySiteId": {
      "format": "int64",
      "type": "string",
      "description": "Directory site associated with this site. This is a required field that is read-only after insertion."
    },
    "approved": {
      "type": "boolean",
      "description": "Whether this site is approved."
    },
    "kind": {
      "type": "string",
      "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#site\"."
    },
    "id": {
      "description": "ID of this site. This is a read-only, auto-generated field.",
      "format": "int64",
      "type": "string"
    },
    "videoSettings": {
      "$ref": "#/$defs/SiteVideoSettings",
      "description": "Default video settings for new placements created under this site. This value will be used to populate the placements.videoSettings field, when no value is specified for the new placement."
    },
    "idDimensionValue": {
      "$ref": "#/$defs/DimensionValue",
      "description": "Dimension value for the ID of this site. This is a read-only, auto-generated field."
    },
    "directorySiteIdDimensionValue": {
      "$ref": "#/$defs/DimensionValue",
      "description": "Dimension value for the ID of the directory site. This is a read-only, auto-generated field."
    },
    "keyName": {
      "type": "string",
      "description": "Key name of this site. This is a read-only, auto-generated field."
    },
    "siteContacts": {
      "description": "Site contacts.",
      "items": {
        "$ref": "#/$defs/SiteContact"
      },
      "type": "array"
    },
    "name": {
      "type": "string",
      "description": "Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account."
    },
    "adServingPlatformId": {
      "type": "string",
      "description": "Optional. Ad serving platform ID to identify the ad serving platform used by the site. Measurement partners can use this field to add ad-server specific macros. If set, this value acts as the default during placement creation. Possible values are: * `1`, Adelphic * `2`, Adform * `3`, Adobe * `4`, Amobee * `5`, Basis (Centro) * `6`, Beeswax * `7`, Amazon * `8`, DV360 (DBM) * `9`, Innovid * `10`, MediaMath * `11`, Roku OneView DSP * `12`, TabMo Hawk * `13`, The Trade Desk * `14`, Xandr Invest DSP * `15`, Yahoo DSP * `16`, Zeta Global * `17`, Scaleout * `18`, Bidtellect * `19`, Unicorn * `20`, Teads * `21`, Quantcast * `22`, Cognitiv * `23`, AdTheorent * `24`, DeepIntent * `25`, Pulsepoint",
      "format": "int64"
    },
    "subaccountId": {
      "format": "int64",
      "description": "Subaccount ID of this site. This is a read-only field that can be left blank.",
      "type": "string"
    },
    "siteSettings": {
      "$ref": "#/$defs/SiteSettings",
      "description": "Site-wide settings."
    },
    "accountId": {
      "type": "string",
      "description": "Account ID of this site. This is a read-only field that can be left blank.",
      "format": "int64"
    }
  },
  "$defs": {
    "DimensionValue": {
      "type": "object",
      "description": "Represents a DimensionValue resource.",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID associated with the value if available."
        },
        "value": {
          "type": "string",
          "description": "The value of the dimension."
        },
        "dimensionName": {
          "description": "The name of the dimension.",
          "type": "string"
        },
        "matchType": {
          "type": "string",
          "enum": [
            "EXACT",
            "BEGINS_WITH",
            "CONTAINS",
            "WILDCARD_EXPRESSION"
          ],
          "description": "Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT."
        },
        "etag": {
          "type": "string",
          "description": "The eTag of this response for caching purposes."
        },
        "kind": {
          "description": "The kind of resource this is, in this case dfareporting#dimensionValue.",
          "type": "string"
        }
      }
    },
    "ObaIcon": {
      "properties": {
        "iconClickTrackingUrl": {
          "description": "URL to track click when an OBA icon is clicked.",
          "type": "string"
        },
        "yPosition": {
          "type": "string",
          "description": "OBA icon y coordinate position. Accepted values are top or bottom."
        },
        "resourceUrl": {
          "description": "OBA icon resource URL. Campaign Manager only supports image and JavaScript icons. Learn more",
          "type": "string"
        },
        "size": {
          "$ref": "#/$defs/Size",
          "description": "OBA icon size."
        },
        "program": {
          "description": "Identifies the industry initiative that the icon supports. For example, AdChoices.",
          "type": "string"
        },
        "xPosition": {
          "description": "OBA icon x coordinate position. Accepted values are left or right.",
          "type": "string"
        },
        "iconClickThroughUrl": {
          "description": "URL to redirect to when an OBA icon is clicked.",
          "type": "string"
        },
        "iconViewTrackingUrl": {
          "description": "URL to track view when an OBA icon is clicked.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Online Behavioral Advertiser icon."
    },
    "SiteCompanionSetting": {
      "type": "object",
      "description": "Companion Settings",
      "properties": {
        "imageOnly": {
          "description": "Whether to serve only static images as companions.",
          "type": "boolean"
        },
        "kind": {
          "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#siteCompanionSetting\".",
          "type": "string"
        },
        "companionsDisabled": {
          "type": "boolean",
          "description": "Whether companions are disabled for this site template."
        },
        "enabledSizes": {
          "items": {
            "$ref": "#/$defs/Size"
          },
          "description": "Allowlist of companion sizes to be served via this site template. Set this list to null or empty to serve all companion sizes.",
          "type": "array"
        }
      }
    },
    "SiteContact": {
      "type": "object",
      "description": "Site Contact",
      "properties": {
        "contactType": {
          "type": "string",
          "enum": [
            "SALES_PERSON",
            "TRAFFICKER"
          ],
          "description": "Site contact type."
        },
        "title": {
          "description": "Title or designation of this site contact.",
          "type": "string"
        },
        "lastName": {
          "description": "Last name of this site contact.",
          "type": "string"
        },
        "address": {
          "type": "string",
          "description": "Address of this site contact."
        },
        "id": {
          "type": "string",
          "description": "ID of this site contact. This is a read-only, auto-generated field.",
          "format": "int64"
        },
        "email": {
          "description": "Email address of this site contact. This is a required field.",
          "type": "string"
        },
        "phone": {
          "type": "string",
          "description": "Primary phone number of this site contact."
        },
        "firstName": {
          "type": "string",
          "description": "First name of this site contact."
        }
      }
    },
    "SiteSettings": {
      "description": "Site Settings",
      "properties": {
        "activeViewOptOut": {
          "description": "Whether active view creatives are disabled for this site.",
          "type": "boolean"
        },
        "vpaidAdapterChoiceTemplate": {
          "type": "string",
          "enum": [
            "DEFAULT",
            "FLASH",
            "HTML5",
            "BOTH"
          ],
          "description": "Default VPAID adapter setting for new placements created under this site. This value will be used to populate the placements.vpaidAdapterChoice field, when no value is specified for the new placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to the placement. The publisher's specifications will typically determine this setting. For VPAID creatives, the adapter format will match the VPAID format (HTML5 VPAID creatives use the HTML5 adapter). *Note:* Flash is no longer supported. This field now defaults to HTML5 when the following values are provided: FLASH, BOTH."
        },
        "disableNewCookie": {
          "type": "boolean",
          "description": "Whether new cookies are disabled for this site."
        },
        "videoActiveViewOptOutTemplate": {
          "type": "boolean",
          "description": "Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement."
        },
        "adBlockingOptOut": {
          "description": "Whether this site opts out of ad blocking. When true, ad blocking is disabled for all placements under the site, regardless of the individual placement settings. When false, the campaign and placement settings take effect.",
          "type": "boolean"
        },
        "tagSetting": {
          "$ref": "#/$defs/TagSetting",
          "description": "Configuration settings for dynamic and image floodlight tags."
        }
      },
      "type": "object"
    },
    "SiteSkippableSetting": {
      "type": "object",
      "description": "Skippable Settings",
      "properties": {
        "progressOffset": {
          "$ref": "#/$defs/VideoOffset",
          "description": "Amount of time to play videos served to this site template before counting a view. Applicable when skippable is true."
        },
        "skipOffset": {
          "$ref": "#/$defs/VideoOffset",
          "description": "Amount of time to play videos served to this site before the skip button should appear. Applicable when skippable is true."
        },
        "kind": {
          "type": "string",
          "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#siteSkippableSetting\"."
        },
        "skippable": {
          "type": "boolean",
          "description": "Whether the user can skip creatives served to this site. This will act as default for new placements created under this site."
        }
      }
    },
    "SiteTranscodeSetting": {
      "properties": {
        "enabledVideoFormats": {
          "items": {
            "type": "integer",
            "format": "int32"
          },
          "type": "array",
          "description": "Allowlist of video formats to be served to this site template. Set this list to null or empty to serve all video formats."
        },
        "kind": {
          "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#siteTranscodeSetting\".",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Transcode Settings"
    },
    "SiteVideoSettings": {
      "properties": {
        "companionSettings": {
          "$ref": "#/$defs/SiteCompanionSetting",
          "description": "Settings for the companion creatives of video creatives served to this site."
        },
        "transcodeSettings": {
          "$ref": "#/$defs/SiteTranscodeSetting",
          "description": "Settings for the transcodes of video creatives served to this site. This will act as default for new placements created under this site."
        },
        "obaSettings": {
          "$ref": "#/$defs/ObaIcon",
          "description": "Settings for the OBA icon of video creatives served to this site. This will act as default for new placements created under this site."
        },
        "publisherSpecificationId": {
          "format": "int64",
          "description": "Publisher specification ID used to identify site-associated publisher requirements and automatically populate transcode settings. If publisher specification ID is specified, it will take precedence over transcode settings. Possible values are: * `1`, Hulu * `2`, NBC * `3`, CBS * `4`, CBS Desktop * `5`, Discovery * `6`, VEVO HD * `7`, VEVO Vertical * `8`, Fox * `9`, CW Network * `10`, Disney * `11`, IGN * `12`, NFL.com * `13`, Turner Broadcasting * `14`, Tubi on Fox * `15`, Hearst Corporation * `16`, Twitch Desktop * `17`, ABC * `18`, Univision * `19`, MLB.com * `20`, MLB.com Mobile * `21`, MLB.com OTT * `22`, Polsat * `23`, TVN * `24`, Mediaset * `25`, Antena 3 * `26`, Mediamond * `27`, Sky Italia * `28`, Tubi on CBS * `29`, Spotify * `30`, Paramount * `31`, Max",
          "type": "string"
        },
        "kind": {
          "type": "string",
          "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#siteVideoSettings\"."
        },
        "orientation": {
          "type": "string",
          "enum": [
            "ANY",
            "LANDSCAPE",
            "PORTRAIT"
          ],
          "description": "Orientation of a site template used for video. This will act as default for new placements created under this site."
        },
        "skippableSettings": {
          "$ref": "#/$defs/SiteSkippableSetting",
          "description": "Settings for the skippability of video creatives served to this site. This will act as default for new placements created under this site."
        },
        "obaEnabled": {
          "description": "Whether OBA icons are enabled for this placement.",
          "type": "boolean"
        }
      },
      "type": "object",
      "description": "Video Settings"
    },
    "Size": {
      "description": "Represents the dimensions of ads, placements, creatives, or creative assets.",
      "type": "object",
      "properties": {
        "height": {
          "type": "integer",
          "description": "Height of this size. Acceptable values are 0 to 32767, inclusive.",
          "format": "int32"
        },
        "id": {
          "format": "int64",
          "type": "string",
          "description": "ID of this size. This is a read-only, auto-generated field."
        },
        "iab": {
          "type": "boolean",
          "description": "IAB standard size. This is a read-only, auto-generated field."
        },
        "kind": {
          "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#size\".",
          "type": "string"
        },
        "width": {
          "format": "int32",
          "type": "integer",
          "description": "Width of this size. Acceptable values are 0 to 32767, inclusive."
        }
      }
    },
    "TagSetting": {
      "description": "Tag Settings",
      "properties": {
        "additionalKeyValues": {
          "type": "string",
          "description": "Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field."
        },
        "includeUnescapedlpurlMacro": {
          "description": "Optional. Indicates that the unescapedlpurl macro should be included in the tag for the static landing page. New placements will default to the value set on their site.",
          "type": "boolean"
        },
        "includeClickTracking": {
          "type": "boolean",
          "description": "Whether click-tracking string should be included in the tags."
        },
        "includeClickThroughUrls": {
          "description": "Whether static landing page URLs should be included in the tags. New placements will default to the value set on their site.",
          "type": "boolean"
        },
        "keywordOption": {
          "description": "Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.",
          "type": "string",
          "enum": [
            "PLACEHOLDER_WITH_LIST_OF_KEYWORDS",
            "IGNORE",
            "GENERATE_SEPARATE_TAG_FOR_EACH_KEYWORD"
          ]
        }
      },
      "type": "object"
    },
    "VideoOffset": {
      "description": "Video Offset",
      "properties": {
        "offsetPercentage": {
          "type": "integer",
          "format": "int32",
          "description": "Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive."
        },
        "offsetSeconds": {
          "description": "Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.",
          "type": "integer",
          "format": "int32"
        }
      },
      "type": "object"
    }
  }
}