<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.targetingTemplates.html">targetingTemplates</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(profileId, id)</a></code></p>
<p class="firstline">Gets one targeting template by ID.</p>
<p class="toc_element">
  <code><a href="#insert">insert(profileId, body)</a></code></p>
<p class="firstline">Inserts a new targeting template.</p>
<p class="toc_element">
  <code><a href="#list">list(profileId, advertiserId=None, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
<p class="firstline">Retrieves a list of targeting templates, optionally filtered. This method supports paging.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
<p class="firstline">Updates an existing targeting template. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#update">update(profileId, body)</a></code></p>
<p class="firstline">Updates an existing targeting template.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(profileId, id)</code>
  <pre>Gets one targeting template by ID.

Args:
  profileId: string, User profile ID associated with this request. (required)
  id: string, Targeting template ID. (required)

Returns:
  An object of the form:

    { # Contains properties of a targeting template. A targeting template encapsulates targeting information which can be reused across multiple ads.
      "kind": "dfareporting#targetingTemplate", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetingTemplate".
      "subaccountId": "A String", # Subaccount ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.
      "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
          42,
        ],
        "daysOfWeek": [ # Days of the week when the ad will serve.
            #
            # Acceptable values are:
            # - "SUNDAY"
            # - "MONDAY"
            # - "TUESDAY"
            # - "WEDNESDAY"
            # - "THURSDAY"
            # - "FRIDAY"
            # - "SATURDAY"
          "A String",
        ],
      },
      "technologyTargeting": { # Technology Targeting. # Technology platform targeting criteria.
        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
          { # Contains information about a platform type that can be targeted by ads.
            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
            "id": "A String", # ID of this platform type.
            "name": "A String", # Name of this platform type.
          },
        ],
        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
          { # Contains information about a particular version of an operating system that can be targeted by ads.
            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
            "name": "A String", # Name of this operating system version.
            "id": "A String", # ID of this operating system version.
            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
              "mobile": True or False, # Whether this operating system is for mobile.
              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
              "name": "A String", # Name of this operating system.
              "desktop": True or False, # Whether this operating system is for desktop.
            },
            "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
          },
        ],
        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
          { # Contains information about a browser that can be targeted by ads.
            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
            "name": "A String", # Name of this browser.
            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
          },
        ],
        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
          { # Contains information about an operating system that can be targeted by ads.
            "mobile": True or False, # Whether this operating system is for mobile.
            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
            "name": "A String", # Name of this operating system.
            "desktop": True or False, # Whether this operating system is for desktop.
          },
        ],
        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
          { # Contains information about a mobile carrier that can be targeted by ads.
            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
            "id": "A String", # ID of this mobile carrier.
            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
            "name": "A String", # Name of this mobile carrier.
          },
        ],
        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
          { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
            "id": "A String", # ID of this connection type.
            "name": "A String", # Name of this connection type.
          },
        ],
      },
      "listTargetingExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting criteria.
        "expression": "A String", # Expression describing which lists are being targeted by the ad.
      },
      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting criteria.
        "expression": "A String", # Keyword expression being targeted by the ad.
      },
      "languageTargeting": { # Language Targeting. # Language targeting criteria.
        "languages": [ # Languages that this ad targets. For each language only languageId is required. The other fields are populated automatically when the ad is inserted or updated.
          { # Contains information about a language that can be targeted by ads.
            "languageCode": "A String", # Format of language code is an ISO 639 two-letter language code optionally followed by an underscore followed by an ISO 3166 code. Examples are "en" for English or "zh_CN" for Simplified Chinese.
            "kind": "dfareporting#language", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#language".
            "id": "A String", # Language ID of this language. This is the ID used for targeting and generating reports.
            "name": "A String", # Name of this language.
          },
        ],
      },
      "advertiserId": "A String", # Advertiser ID of this targeting template. This is a required field on insert and is read-only after insert.
      "geoTargeting": { # Geographical Targeting. # Geographical targeting criteria.
        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
          { # Contains information about a country that can be targeted by ads.
            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
            "countryCode": "A String", # Country code.
            "name": "A String", # Name of this country.
          },
        ],
        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
          { # Contains information about a postal code that can be targeted by ads.
            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
            "code": "A String", # Postal code. This is equivalent to the id field.
            "id": "A String", # ID of this postal code.
            "countryCode": "A String", # Country code of the country to which this postal code belongs.
          },
        ],
        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
          { # Contains information about a region that can be targeted by ads.
            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
            "countryDartId": "A String", # DART ID of the country to which this region belongs.
            "name": "A String", # Name of this region.
            "countryCode": "A String", # Country code of the country to which this region belongs.
            "regionCode": "A String", # Region code.
            "dartId": "A String", # DART ID of this region.
          },
        ],
        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
          { # Contains information about a city that can be targeted by ads.
            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
            "countryDartId": "A String", # DART ID of the country to which this city belongs.
            "name": "A String", # Name of this city.
            "countryCode": "A String", # Country code of the country to which this city belongs.
            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
            "regionCode": "A String", # Region code of the region to which this city belongs.
            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
            "regionDartId": "A String", # DART ID of the region to which this city belongs.
          },
        ],
        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
          { # Contains information about a metro region that can be targeted by ads.
            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
            "name": "A String", # Name of this metro region.
            "countryCode": "A String", # Country code of the country to which this metro region belongs.
            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
            "dartId": "A String", # DART ID of this metro region.
          },
        ],
      },
      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
        "value": "A String", # The value of the dimension.
        "dimensionName": "A String", # The name of the dimension.
        "etag": "A String", # The eTag of this response for caching purposes.
        "matchType": "A String", # 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.
        "id": "A String", # The ID associated with the value if available.
      },
      "id": "A String", # ID of this targeting template. This is a read-only, auto-generated field.
      "accountId": "A String", # Account ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.
    }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(profileId, body)</code>
  <pre>Inserts a new targeting template.

Args:
  profileId: string, User profile ID associated with this request. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Contains properties of a targeting template. A targeting template encapsulates targeting information which can be reused across multiple ads.
    "kind": "dfareporting#targetingTemplate", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetingTemplate".
    "subaccountId": "A String", # Subaccount ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.
    "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
    "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
      "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
        42,
      ],
      "daysOfWeek": [ # Days of the week when the ad will serve.
          #
          # Acceptable values are:
          # - "SUNDAY"
          # - "MONDAY"
          # - "TUESDAY"
          # - "WEDNESDAY"
          # - "THURSDAY"
          # - "FRIDAY"
          # - "SATURDAY"
        "A String",
      ],
    },
    "technologyTargeting": { # Technology Targeting. # Technology platform targeting criteria.
      "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
        { # Contains information about a platform type that can be targeted by ads.
          "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
          "id": "A String", # ID of this platform type.
          "name": "A String", # Name of this platform type.
        },
      ],
      "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
        { # Contains information about a particular version of an operating system that can be targeted by ads.
          "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
          "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
          "name": "A String", # Name of this operating system version.
          "id": "A String", # ID of this operating system version.
          "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
            "mobile": True or False, # Whether this operating system is for mobile.
            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
            "name": "A String", # Name of this operating system.
            "desktop": True or False, # Whether this operating system is for desktop.
          },
          "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
        },
      ],
      "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
        { # Contains information about a browser that can be targeted by ads.
          "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
          "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
          "name": "A String", # Name of this browser.
          "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
          "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
          "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
        },
      ],
      "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
        { # Contains information about an operating system that can be targeted by ads.
          "mobile": True or False, # Whether this operating system is for mobile.
          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
          "name": "A String", # Name of this operating system.
          "desktop": True or False, # Whether this operating system is for desktop.
        },
      ],
      "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
        { # Contains information about a mobile carrier that can be targeted by ads.
          "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
          "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
          "id": "A String", # ID of this mobile carrier.
          "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
          "name": "A String", # Name of this mobile carrier.
        },
      ],
      "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
        { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
          "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
          "id": "A String", # ID of this connection type.
          "name": "A String", # Name of this connection type.
        },
      ],
    },
    "listTargetingExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting criteria.
      "expression": "A String", # Expression describing which lists are being targeted by the ad.
    },
    "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting criteria.
      "expression": "A String", # Keyword expression being targeted by the ad.
    },
    "languageTargeting": { # Language Targeting. # Language targeting criteria.
      "languages": [ # Languages that this ad targets. For each language only languageId is required. The other fields are populated automatically when the ad is inserted or updated.
        { # Contains information about a language that can be targeted by ads.
          "languageCode": "A String", # Format of language code is an ISO 639 two-letter language code optionally followed by an underscore followed by an ISO 3166 code. Examples are "en" for English or "zh_CN" for Simplified Chinese.
          "kind": "dfareporting#language", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#language".
          "id": "A String", # Language ID of this language. This is the ID used for targeting and generating reports.
          "name": "A String", # Name of this language.
        },
      ],
    },
    "advertiserId": "A String", # Advertiser ID of this targeting template. This is a required field on insert and is read-only after insert.
    "geoTargeting": { # Geographical Targeting. # Geographical targeting criteria.
      "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
        { # Contains information about a country that can be targeted by ads.
          "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
          "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
          "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
          "countryCode": "A String", # Country code.
          "name": "A String", # Name of this country.
        },
      ],
      "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
      "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
        { # Contains information about a postal code that can be targeted by ads.
          "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
          "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
          "code": "A String", # Postal code. This is equivalent to the id field.
          "id": "A String", # ID of this postal code.
          "countryCode": "A String", # Country code of the country to which this postal code belongs.
        },
      ],
      "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
        { # Contains information about a region that can be targeted by ads.
          "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
          "countryDartId": "A String", # DART ID of the country to which this region belongs.
          "name": "A String", # Name of this region.
          "countryCode": "A String", # Country code of the country to which this region belongs.
          "regionCode": "A String", # Region code.
          "dartId": "A String", # DART ID of this region.
        },
      ],
      "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
        { # Contains information about a city that can be targeted by ads.
          "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
          "countryDartId": "A String", # DART ID of the country to which this city belongs.
          "name": "A String", # Name of this city.
          "countryCode": "A String", # Country code of the country to which this city belongs.
          "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
          "regionCode": "A String", # Region code of the region to which this city belongs.
          "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
          "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
          "regionDartId": "A String", # DART ID of the region to which this city belongs.
        },
      ],
      "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
        { # Contains information about a metro region that can be targeted by ads.
          "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
          "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
          "name": "A String", # Name of this metro region.
          "countryCode": "A String", # Country code of the country to which this metro region belongs.
          "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
          "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
          "dartId": "A String", # DART ID of this metro region.
        },
      ],
    },
    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
      "value": "A String", # The value of the dimension.
      "dimensionName": "A String", # The name of the dimension.
      "etag": "A String", # The eTag of this response for caching purposes.
      "matchType": "A String", # 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.
      "id": "A String", # The ID associated with the value if available.
    },
    "id": "A String", # ID of this targeting template. This is a read-only, auto-generated field.
    "accountId": "A String", # Account ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.
  }


Returns:
  An object of the form:

    { # Contains properties of a targeting template. A targeting template encapsulates targeting information which can be reused across multiple ads.
      "kind": "dfareporting#targetingTemplate", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetingTemplate".
      "subaccountId": "A String", # Subaccount ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.
      "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
          42,
        ],
        "daysOfWeek": [ # Days of the week when the ad will serve.
            #
            # Acceptable values are:
            # - "SUNDAY"
            # - "MONDAY"
            # - "TUESDAY"
            # - "WEDNESDAY"
            # - "THURSDAY"
            # - "FRIDAY"
            # - "SATURDAY"
          "A String",
        ],
      },
      "technologyTargeting": { # Technology Targeting. # Technology platform targeting criteria.
        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
          { # Contains information about a platform type that can be targeted by ads.
            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
            "id": "A String", # ID of this platform type.
            "name": "A String", # Name of this platform type.
          },
        ],
        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
          { # Contains information about a particular version of an operating system that can be targeted by ads.
            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
            "name": "A String", # Name of this operating system version.
            "id": "A String", # ID of this operating system version.
            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
              "mobile": True or False, # Whether this operating system is for mobile.
              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
              "name": "A String", # Name of this operating system.
              "desktop": True or False, # Whether this operating system is for desktop.
            },
            "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
          },
        ],
        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
          { # Contains information about a browser that can be targeted by ads.
            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
            "name": "A String", # Name of this browser.
            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
          },
        ],
        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
          { # Contains information about an operating system that can be targeted by ads.
            "mobile": True or False, # Whether this operating system is for mobile.
            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
            "name": "A String", # Name of this operating system.
            "desktop": True or False, # Whether this operating system is for desktop.
          },
        ],
        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
          { # Contains information about a mobile carrier that can be targeted by ads.
            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
            "id": "A String", # ID of this mobile carrier.
            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
            "name": "A String", # Name of this mobile carrier.
          },
        ],
        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
          { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
            "id": "A String", # ID of this connection type.
            "name": "A String", # Name of this connection type.
          },
        ],
      },
      "listTargetingExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting criteria.
        "expression": "A String", # Expression describing which lists are being targeted by the ad.
      },
      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting criteria.
        "expression": "A String", # Keyword expression being targeted by the ad.
      },
      "languageTargeting": { # Language Targeting. # Language targeting criteria.
        "languages": [ # Languages that this ad targets. For each language only languageId is required. The other fields are populated automatically when the ad is inserted or updated.
          { # Contains information about a language that can be targeted by ads.
            "languageCode": "A String", # Format of language code is an ISO 639 two-letter language code optionally followed by an underscore followed by an ISO 3166 code. Examples are "en" for English or "zh_CN" for Simplified Chinese.
            "kind": "dfareporting#language", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#language".
            "id": "A String", # Language ID of this language. This is the ID used for targeting and generating reports.
            "name": "A String", # Name of this language.
          },
        ],
      },
      "advertiserId": "A String", # Advertiser ID of this targeting template. This is a required field on insert and is read-only after insert.
      "geoTargeting": { # Geographical Targeting. # Geographical targeting criteria.
        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
          { # Contains information about a country that can be targeted by ads.
            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
            "countryCode": "A String", # Country code.
            "name": "A String", # Name of this country.
          },
        ],
        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
          { # Contains information about a postal code that can be targeted by ads.
            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
            "code": "A String", # Postal code. This is equivalent to the id field.
            "id": "A String", # ID of this postal code.
            "countryCode": "A String", # Country code of the country to which this postal code belongs.
          },
        ],
        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
          { # Contains information about a region that can be targeted by ads.
            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
            "countryDartId": "A String", # DART ID of the country to which this region belongs.
            "name": "A String", # Name of this region.
            "countryCode": "A String", # Country code of the country to which this region belongs.
            "regionCode": "A String", # Region code.
            "dartId": "A String", # DART ID of this region.
          },
        ],
        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
          { # Contains information about a city that can be targeted by ads.
            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
            "countryDartId": "A String", # DART ID of the country to which this city belongs.
            "name": "A String", # Name of this city.
            "countryCode": "A String", # Country code of the country to which this city belongs.
            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
            "regionCode": "A String", # Region code of the region to which this city belongs.
            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
            "regionDartId": "A String", # DART ID of the region to which this city belongs.
          },
        ],
        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
          { # Contains information about a metro region that can be targeted by ads.
            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
            "name": "A String", # Name of this metro region.
            "countryCode": "A String", # Country code of the country to which this metro region belongs.
            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
            "dartId": "A String", # DART ID of this metro region.
          },
        ],
      },
      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
        "value": "A String", # The value of the dimension.
        "dimensionName": "A String", # The name of the dimension.
        "etag": "A String", # The eTag of this response for caching purposes.
        "matchType": "A String", # 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.
        "id": "A String", # The ID associated with the value if available.
      },
      "id": "A String", # ID of this targeting template. This is a read-only, auto-generated field.
      "accountId": "A String", # Account ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(profileId, advertiserId=None, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
  <pre>Retrieves a list of targeting templates, optionally filtered. This method supports paging.

Args:
  profileId: string, User profile ID associated with this request. (required)
  advertiserId: string, Select only targeting templates with this advertiser ID.
  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "template*2015" will return objects with names like "template June 2015", "template April 2015", or simply "template 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "template" will match objects with name "my template", "template 2015", or simply "template".
  pageToken: string, Value of the nextPageToken from the previous result page.
  sortField: string, Field by which to sort the list.
    Allowed values
      ID - 
      NAME - 
  ids: string, Select only targeting templates with these IDs. (repeated)
  maxResults: integer, Maximum number of results to return.
  sortOrder: string, Order of sorted results, default is ASCENDING.
    Allowed values
      ASCENDING - 
      DESCENDING - 

Returns:
  An object of the form:

    { # Targeting Template List Response
    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
    "kind": "dfareporting#targetingTemplatesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetingTemplatesListResponse".
    "targetingTemplates": [ # Targeting template collection.
      { # Contains properties of a targeting template. A targeting template encapsulates targeting information which can be reused across multiple ads.
          "kind": "dfareporting#targetingTemplate", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetingTemplate".
          "subaccountId": "A String", # Subaccount ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.
          "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
          "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
            "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
            "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
              42,
            ],
            "daysOfWeek": [ # Days of the week when the ad will serve.
                #
                # Acceptable values are:
                # - "SUNDAY"
                # - "MONDAY"
                # - "TUESDAY"
                # - "WEDNESDAY"
                # - "THURSDAY"
                # - "FRIDAY"
                # - "SATURDAY"
              "A String",
            ],
          },
          "technologyTargeting": { # Technology Targeting. # Technology platform targeting criteria.
            "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
              { # Contains information about a platform type that can be targeted by ads.
                "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
                "id": "A String", # ID of this platform type.
                "name": "A String", # Name of this platform type.
              },
            ],
            "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
              { # Contains information about a particular version of an operating system that can be targeted by ads.
                "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
                "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
                "name": "A String", # Name of this operating system version.
                "id": "A String", # ID of this operating system version.
                "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
                  "mobile": True or False, # Whether this operating system is for mobile.
                  "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
                  "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
                  "name": "A String", # Name of this operating system.
                  "desktop": True or False, # Whether this operating system is for desktop.
                },
                "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
              },
            ],
            "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
              { # Contains information about a browser that can be targeted by ads.
                "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
                "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
                "name": "A String", # Name of this browser.
                "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
                "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
                "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
              },
            ],
            "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
              { # Contains information about an operating system that can be targeted by ads.
                "mobile": True or False, # Whether this operating system is for mobile.
                "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
                "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
                "name": "A String", # Name of this operating system.
                "desktop": True or False, # Whether this operating system is for desktop.
              },
            ],
            "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
              { # Contains information about a mobile carrier that can be targeted by ads.
                "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
                "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
                "id": "A String", # ID of this mobile carrier.
                "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
                "name": "A String", # Name of this mobile carrier.
              },
            ],
            "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
              { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
                "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
                "id": "A String", # ID of this connection type.
                "name": "A String", # Name of this connection type.
              },
            ],
          },
          "listTargetingExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting criteria.
            "expression": "A String", # Expression describing which lists are being targeted by the ad.
          },
          "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting criteria.
            "expression": "A String", # Keyword expression being targeted by the ad.
          },
          "languageTargeting": { # Language Targeting. # Language targeting criteria.
            "languages": [ # Languages that this ad targets. For each language only languageId is required. The other fields are populated automatically when the ad is inserted or updated.
              { # Contains information about a language that can be targeted by ads.
                "languageCode": "A String", # Format of language code is an ISO 639 two-letter language code optionally followed by an underscore followed by an ISO 3166 code. Examples are "en" for English or "zh_CN" for Simplified Chinese.
                "kind": "dfareporting#language", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#language".
                "id": "A String", # Language ID of this language. This is the ID used for targeting and generating reports.
                "name": "A String", # Name of this language.
              },
            ],
          },
          "advertiserId": "A String", # Advertiser ID of this targeting template. This is a required field on insert and is read-only after insert.
          "geoTargeting": { # Geographical Targeting. # Geographical targeting criteria.
            "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
              { # Contains information about a country that can be targeted by ads.
                "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
                "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
                "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
                "countryCode": "A String", # Country code.
                "name": "A String", # Name of this country.
              },
            ],
            "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
            "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
              { # Contains information about a postal code that can be targeted by ads.
                "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
                "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
                "code": "A String", # Postal code. This is equivalent to the id field.
                "id": "A String", # ID of this postal code.
                "countryCode": "A String", # Country code of the country to which this postal code belongs.
              },
            ],
            "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
              { # Contains information about a region that can be targeted by ads.
                "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
                "countryDartId": "A String", # DART ID of the country to which this region belongs.
                "name": "A String", # Name of this region.
                "countryCode": "A String", # Country code of the country to which this region belongs.
                "regionCode": "A String", # Region code.
                "dartId": "A String", # DART ID of this region.
              },
            ],
            "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
              { # Contains information about a city that can be targeted by ads.
                "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
                "countryDartId": "A String", # DART ID of the country to which this city belongs.
                "name": "A String", # Name of this city.
                "countryCode": "A String", # Country code of the country to which this city belongs.
                "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
                "regionCode": "A String", # Region code of the region to which this city belongs.
                "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
                "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
                "regionDartId": "A String", # DART ID of the region to which this city belongs.
              },
            ],
            "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
              { # Contains information about a metro region that can be targeted by ads.
                "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
                "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
                "name": "A String", # Name of this metro region.
                "countryCode": "A String", # Country code of the country to which this metro region belongs.
                "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
                "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
                "dartId": "A String", # DART ID of this metro region.
              },
            ],
          },
          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
            "value": "A String", # The value of the dimension.
            "dimensionName": "A String", # The name of the dimension.
            "etag": "A String", # The eTag of this response for caching purposes.
            "matchType": "A String", # 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.
            "id": "A String", # The ID associated with the value if available.
          },
          "id": "A String", # ID of this targeting template. This is a read-only, auto-generated field.
          "accountId": "A String", # Account ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.
        },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(profileId, id, body)</code>
  <pre>Updates an existing targeting template. This method supports patch semantics.

Args:
  profileId: string, User profile ID associated with this request. (required)
  id: string, Targeting template ID. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Contains properties of a targeting template. A targeting template encapsulates targeting information which can be reused across multiple ads.
    "kind": "dfareporting#targetingTemplate", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetingTemplate".
    "subaccountId": "A String", # Subaccount ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.
    "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
    "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
      "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
        42,
      ],
      "daysOfWeek": [ # Days of the week when the ad will serve.
          #
          # Acceptable values are:
          # - "SUNDAY"
          # - "MONDAY"
          # - "TUESDAY"
          # - "WEDNESDAY"
          # - "THURSDAY"
          # - "FRIDAY"
          # - "SATURDAY"
        "A String",
      ],
    },
    "technologyTargeting": { # Technology Targeting. # Technology platform targeting criteria.
      "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
        { # Contains information about a platform type that can be targeted by ads.
          "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
          "id": "A String", # ID of this platform type.
          "name": "A String", # Name of this platform type.
        },
      ],
      "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
        { # Contains information about a particular version of an operating system that can be targeted by ads.
          "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
          "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
          "name": "A String", # Name of this operating system version.
          "id": "A String", # ID of this operating system version.
          "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
            "mobile": True or False, # Whether this operating system is for mobile.
            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
            "name": "A String", # Name of this operating system.
            "desktop": True or False, # Whether this operating system is for desktop.
          },
          "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
        },
      ],
      "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
        { # Contains information about a browser that can be targeted by ads.
          "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
          "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
          "name": "A String", # Name of this browser.
          "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
          "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
          "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
        },
      ],
      "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
        { # Contains information about an operating system that can be targeted by ads.
          "mobile": True or False, # Whether this operating system is for mobile.
          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
          "name": "A String", # Name of this operating system.
          "desktop": True or False, # Whether this operating system is for desktop.
        },
      ],
      "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
        { # Contains information about a mobile carrier that can be targeted by ads.
          "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
          "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
          "id": "A String", # ID of this mobile carrier.
          "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
          "name": "A String", # Name of this mobile carrier.
        },
      ],
      "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
        { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
          "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
          "id": "A String", # ID of this connection type.
          "name": "A String", # Name of this connection type.
        },
      ],
    },
    "listTargetingExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting criteria.
      "expression": "A String", # Expression describing which lists are being targeted by the ad.
    },
    "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting criteria.
      "expression": "A String", # Keyword expression being targeted by the ad.
    },
    "languageTargeting": { # Language Targeting. # Language targeting criteria.
      "languages": [ # Languages that this ad targets. For each language only languageId is required. The other fields are populated automatically when the ad is inserted or updated.
        { # Contains information about a language that can be targeted by ads.
          "languageCode": "A String", # Format of language code is an ISO 639 two-letter language code optionally followed by an underscore followed by an ISO 3166 code. Examples are "en" for English or "zh_CN" for Simplified Chinese.
          "kind": "dfareporting#language", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#language".
          "id": "A String", # Language ID of this language. This is the ID used for targeting and generating reports.
          "name": "A String", # Name of this language.
        },
      ],
    },
    "advertiserId": "A String", # Advertiser ID of this targeting template. This is a required field on insert and is read-only after insert.
    "geoTargeting": { # Geographical Targeting. # Geographical targeting criteria.
      "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
        { # Contains information about a country that can be targeted by ads.
          "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
          "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
          "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
          "countryCode": "A String", # Country code.
          "name": "A String", # Name of this country.
        },
      ],
      "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
      "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
        { # Contains information about a postal code that can be targeted by ads.
          "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
          "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
          "code": "A String", # Postal code. This is equivalent to the id field.
          "id": "A String", # ID of this postal code.
          "countryCode": "A String", # Country code of the country to which this postal code belongs.
        },
      ],
      "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
        { # Contains information about a region that can be targeted by ads.
          "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
          "countryDartId": "A String", # DART ID of the country to which this region belongs.
          "name": "A String", # Name of this region.
          "countryCode": "A String", # Country code of the country to which this region belongs.
          "regionCode": "A String", # Region code.
          "dartId": "A String", # DART ID of this region.
        },
      ],
      "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
        { # Contains information about a city that can be targeted by ads.
          "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
          "countryDartId": "A String", # DART ID of the country to which this city belongs.
          "name": "A String", # Name of this city.
          "countryCode": "A String", # Country code of the country to which this city belongs.
          "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
          "regionCode": "A String", # Region code of the region to which this city belongs.
          "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
          "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
          "regionDartId": "A String", # DART ID of the region to which this city belongs.
        },
      ],
      "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
        { # Contains information about a metro region that can be targeted by ads.
          "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
          "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
          "name": "A String", # Name of this metro region.
          "countryCode": "A String", # Country code of the country to which this metro region belongs.
          "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
          "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
          "dartId": "A String", # DART ID of this metro region.
        },
      ],
    },
    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
      "value": "A String", # The value of the dimension.
      "dimensionName": "A String", # The name of the dimension.
      "etag": "A String", # The eTag of this response for caching purposes.
      "matchType": "A String", # 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.
      "id": "A String", # The ID associated with the value if available.
    },
    "id": "A String", # ID of this targeting template. This is a read-only, auto-generated field.
    "accountId": "A String", # Account ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.
  }


Returns:
  An object of the form:

    { # Contains properties of a targeting template. A targeting template encapsulates targeting information which can be reused across multiple ads.
      "kind": "dfareporting#targetingTemplate", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetingTemplate".
      "subaccountId": "A String", # Subaccount ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.
      "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
          42,
        ],
        "daysOfWeek": [ # Days of the week when the ad will serve.
            #
            # Acceptable values are:
            # - "SUNDAY"
            # - "MONDAY"
            # - "TUESDAY"
            # - "WEDNESDAY"
            # - "THURSDAY"
            # - "FRIDAY"
            # - "SATURDAY"
          "A String",
        ],
      },
      "technologyTargeting": { # Technology Targeting. # Technology platform targeting criteria.
        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
          { # Contains information about a platform type that can be targeted by ads.
            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
            "id": "A String", # ID of this platform type.
            "name": "A String", # Name of this platform type.
          },
        ],
        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
          { # Contains information about a particular version of an operating system that can be targeted by ads.
            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
            "name": "A String", # Name of this operating system version.
            "id": "A String", # ID of this operating system version.
            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
              "mobile": True or False, # Whether this operating system is for mobile.
              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
              "name": "A String", # Name of this operating system.
              "desktop": True or False, # Whether this operating system is for desktop.
            },
            "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
          },
        ],
        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
          { # Contains information about a browser that can be targeted by ads.
            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
            "name": "A String", # Name of this browser.
            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
          },
        ],
        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
          { # Contains information about an operating system that can be targeted by ads.
            "mobile": True or False, # Whether this operating system is for mobile.
            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
            "name": "A String", # Name of this operating system.
            "desktop": True or False, # Whether this operating system is for desktop.
          },
        ],
        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
          { # Contains information about a mobile carrier that can be targeted by ads.
            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
            "id": "A String", # ID of this mobile carrier.
            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
            "name": "A String", # Name of this mobile carrier.
          },
        ],
        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
          { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
            "id": "A String", # ID of this connection type.
            "name": "A String", # Name of this connection type.
          },
        ],
      },
      "listTargetingExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting criteria.
        "expression": "A String", # Expression describing which lists are being targeted by the ad.
      },
      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting criteria.
        "expression": "A String", # Keyword expression being targeted by the ad.
      },
      "languageTargeting": { # Language Targeting. # Language targeting criteria.
        "languages": [ # Languages that this ad targets. For each language only languageId is required. The other fields are populated automatically when the ad is inserted or updated.
          { # Contains information about a language that can be targeted by ads.
            "languageCode": "A String", # Format of language code is an ISO 639 two-letter language code optionally followed by an underscore followed by an ISO 3166 code. Examples are "en" for English or "zh_CN" for Simplified Chinese.
            "kind": "dfareporting#language", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#language".
            "id": "A String", # Language ID of this language. This is the ID used for targeting and generating reports.
            "name": "A String", # Name of this language.
          },
        ],
      },
      "advertiserId": "A String", # Advertiser ID of this targeting template. This is a required field on insert and is read-only after insert.
      "geoTargeting": { # Geographical Targeting. # Geographical targeting criteria.
        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
          { # Contains information about a country that can be targeted by ads.
            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
            "countryCode": "A String", # Country code.
            "name": "A String", # Name of this country.
          },
        ],
        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
          { # Contains information about a postal code that can be targeted by ads.
            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
            "code": "A String", # Postal code. This is equivalent to the id field.
            "id": "A String", # ID of this postal code.
            "countryCode": "A String", # Country code of the country to which this postal code belongs.
          },
        ],
        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
          { # Contains information about a region that can be targeted by ads.
            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
            "countryDartId": "A String", # DART ID of the country to which this region belongs.
            "name": "A String", # Name of this region.
            "countryCode": "A String", # Country code of the country to which this region belongs.
            "regionCode": "A String", # Region code.
            "dartId": "A String", # DART ID of this region.
          },
        ],
        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
          { # Contains information about a city that can be targeted by ads.
            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
            "countryDartId": "A String", # DART ID of the country to which this city belongs.
            "name": "A String", # Name of this city.
            "countryCode": "A String", # Country code of the country to which this city belongs.
            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
            "regionCode": "A String", # Region code of the region to which this city belongs.
            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
            "regionDartId": "A String", # DART ID of the region to which this city belongs.
          },
        ],
        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
          { # Contains information about a metro region that can be targeted by ads.
            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
            "name": "A String", # Name of this metro region.
            "countryCode": "A String", # Country code of the country to which this metro region belongs.
            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
            "dartId": "A String", # DART ID of this metro region.
          },
        ],
      },
      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
        "value": "A String", # The value of the dimension.
        "dimensionName": "A String", # The name of the dimension.
        "etag": "A String", # The eTag of this response for caching purposes.
        "matchType": "A String", # 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.
        "id": "A String", # The ID associated with the value if available.
      },
      "id": "A String", # ID of this targeting template. This is a read-only, auto-generated field.
      "accountId": "A String", # Account ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.
    }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(profileId, body)</code>
  <pre>Updates an existing targeting template.

Args:
  profileId: string, User profile ID associated with this request. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Contains properties of a targeting template. A targeting template encapsulates targeting information which can be reused across multiple ads.
    "kind": "dfareporting#targetingTemplate", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetingTemplate".
    "subaccountId": "A String", # Subaccount ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.
    "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
    "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
      "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
        42,
      ],
      "daysOfWeek": [ # Days of the week when the ad will serve.
          #
          # Acceptable values are:
          # - "SUNDAY"
          # - "MONDAY"
          # - "TUESDAY"
          # - "WEDNESDAY"
          # - "THURSDAY"
          # - "FRIDAY"
          # - "SATURDAY"
        "A String",
      ],
    },
    "technologyTargeting": { # Technology Targeting. # Technology platform targeting criteria.
      "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
        { # Contains information about a platform type that can be targeted by ads.
          "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
          "id": "A String", # ID of this platform type.
          "name": "A String", # Name of this platform type.
        },
      ],
      "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
        { # Contains information about a particular version of an operating system that can be targeted by ads.
          "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
          "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
          "name": "A String", # Name of this operating system version.
          "id": "A String", # ID of this operating system version.
          "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
            "mobile": True or False, # Whether this operating system is for mobile.
            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
            "name": "A String", # Name of this operating system.
            "desktop": True or False, # Whether this operating system is for desktop.
          },
          "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
        },
      ],
      "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
        { # Contains information about a browser that can be targeted by ads.
          "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
          "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
          "name": "A String", # Name of this browser.
          "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
          "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
          "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
        },
      ],
      "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
        { # Contains information about an operating system that can be targeted by ads.
          "mobile": True or False, # Whether this operating system is for mobile.
          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
          "name": "A String", # Name of this operating system.
          "desktop": True or False, # Whether this operating system is for desktop.
        },
      ],
      "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
        { # Contains information about a mobile carrier that can be targeted by ads.
          "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
          "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
          "id": "A String", # ID of this mobile carrier.
          "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
          "name": "A String", # Name of this mobile carrier.
        },
      ],
      "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
        { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
          "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
          "id": "A String", # ID of this connection type.
          "name": "A String", # Name of this connection type.
        },
      ],
    },
    "listTargetingExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting criteria.
      "expression": "A String", # Expression describing which lists are being targeted by the ad.
    },
    "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting criteria.
      "expression": "A String", # Keyword expression being targeted by the ad.
    },
    "languageTargeting": { # Language Targeting. # Language targeting criteria.
      "languages": [ # Languages that this ad targets. For each language only languageId is required. The other fields are populated automatically when the ad is inserted or updated.
        { # Contains information about a language that can be targeted by ads.
          "languageCode": "A String", # Format of language code is an ISO 639 two-letter language code optionally followed by an underscore followed by an ISO 3166 code. Examples are "en" for English or "zh_CN" for Simplified Chinese.
          "kind": "dfareporting#language", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#language".
          "id": "A String", # Language ID of this language. This is the ID used for targeting and generating reports.
          "name": "A String", # Name of this language.
        },
      ],
    },
    "advertiserId": "A String", # Advertiser ID of this targeting template. This is a required field on insert and is read-only after insert.
    "geoTargeting": { # Geographical Targeting. # Geographical targeting criteria.
      "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
        { # Contains information about a country that can be targeted by ads.
          "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
          "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
          "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
          "countryCode": "A String", # Country code.
          "name": "A String", # Name of this country.
        },
      ],
      "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
      "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
        { # Contains information about a postal code that can be targeted by ads.
          "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
          "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
          "code": "A String", # Postal code. This is equivalent to the id field.
          "id": "A String", # ID of this postal code.
          "countryCode": "A String", # Country code of the country to which this postal code belongs.
        },
      ],
      "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
        { # Contains information about a region that can be targeted by ads.
          "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
          "countryDartId": "A String", # DART ID of the country to which this region belongs.
          "name": "A String", # Name of this region.
          "countryCode": "A String", # Country code of the country to which this region belongs.
          "regionCode": "A String", # Region code.
          "dartId": "A String", # DART ID of this region.
        },
      ],
      "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
        { # Contains information about a city that can be targeted by ads.
          "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
          "countryDartId": "A String", # DART ID of the country to which this city belongs.
          "name": "A String", # Name of this city.
          "countryCode": "A String", # Country code of the country to which this city belongs.
          "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
          "regionCode": "A String", # Region code of the region to which this city belongs.
          "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
          "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
          "regionDartId": "A String", # DART ID of the region to which this city belongs.
        },
      ],
      "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
        { # Contains information about a metro region that can be targeted by ads.
          "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
          "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
          "name": "A String", # Name of this metro region.
          "countryCode": "A String", # Country code of the country to which this metro region belongs.
          "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
          "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
          "dartId": "A String", # DART ID of this metro region.
        },
      ],
    },
    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
      "value": "A String", # The value of the dimension.
      "dimensionName": "A String", # The name of the dimension.
      "etag": "A String", # The eTag of this response for caching purposes.
      "matchType": "A String", # 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.
      "id": "A String", # The ID associated with the value if available.
    },
    "id": "A String", # ID of this targeting template. This is a read-only, auto-generated field.
    "accountId": "A String", # Account ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.
  }


Returns:
  An object of the form:

    { # Contains properties of a targeting template. A targeting template encapsulates targeting information which can be reused across multiple ads.
      "kind": "dfareporting#targetingTemplate", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetingTemplate".
      "subaccountId": "A String", # Subaccount ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.
      "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
          42,
        ],
        "daysOfWeek": [ # Days of the week when the ad will serve.
            #
            # Acceptable values are:
            # - "SUNDAY"
            # - "MONDAY"
            # - "TUESDAY"
            # - "WEDNESDAY"
            # - "THURSDAY"
            # - "FRIDAY"
            # - "SATURDAY"
          "A String",
        ],
      },
      "technologyTargeting": { # Technology Targeting. # Technology platform targeting criteria.
        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
          { # Contains information about a platform type that can be targeted by ads.
            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
            "id": "A String", # ID of this platform type.
            "name": "A String", # Name of this platform type.
          },
        ],
        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
          { # Contains information about a particular version of an operating system that can be targeted by ads.
            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
            "name": "A String", # Name of this operating system version.
            "id": "A String", # ID of this operating system version.
            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
              "mobile": True or False, # Whether this operating system is for mobile.
              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
              "name": "A String", # Name of this operating system.
              "desktop": True or False, # Whether this operating system is for desktop.
            },
            "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
          },
        ],
        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
          { # Contains information about a browser that can be targeted by ads.
            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
            "name": "A String", # Name of this browser.
            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
          },
        ],
        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
          { # Contains information about an operating system that can be targeted by ads.
            "mobile": True or False, # Whether this operating system is for mobile.
            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
            "name": "A String", # Name of this operating system.
            "desktop": True or False, # Whether this operating system is for desktop.
          },
        ],
        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
          { # Contains information about a mobile carrier that can be targeted by ads.
            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
            "id": "A String", # ID of this mobile carrier.
            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
            "name": "A String", # Name of this mobile carrier.
          },
        ],
        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
          { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
            "id": "A String", # ID of this connection type.
            "name": "A String", # Name of this connection type.
          },
        ],
      },
      "listTargetingExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting criteria.
        "expression": "A String", # Expression describing which lists are being targeted by the ad.
      },
      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting criteria.
        "expression": "A String", # Keyword expression being targeted by the ad.
      },
      "languageTargeting": { # Language Targeting. # Language targeting criteria.
        "languages": [ # Languages that this ad targets. For each language only languageId is required. The other fields are populated automatically when the ad is inserted or updated.
          { # Contains information about a language that can be targeted by ads.
            "languageCode": "A String", # Format of language code is an ISO 639 two-letter language code optionally followed by an underscore followed by an ISO 3166 code. Examples are "en" for English or "zh_CN" for Simplified Chinese.
            "kind": "dfareporting#language", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#language".
            "id": "A String", # Language ID of this language. This is the ID used for targeting and generating reports.
            "name": "A String", # Name of this language.
          },
        ],
      },
      "advertiserId": "A String", # Advertiser ID of this targeting template. This is a required field on insert and is read-only after insert.
      "geoTargeting": { # Geographical Targeting. # Geographical targeting criteria.
        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
          { # Contains information about a country that can be targeted by ads.
            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
            "countryCode": "A String", # Country code.
            "name": "A String", # Name of this country.
          },
        ],
        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
          { # Contains information about a postal code that can be targeted by ads.
            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
            "code": "A String", # Postal code. This is equivalent to the id field.
            "id": "A String", # ID of this postal code.
            "countryCode": "A String", # Country code of the country to which this postal code belongs.
          },
        ],
        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
          { # Contains information about a region that can be targeted by ads.
            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
            "countryDartId": "A String", # DART ID of the country to which this region belongs.
            "name": "A String", # Name of this region.
            "countryCode": "A String", # Country code of the country to which this region belongs.
            "regionCode": "A String", # Region code.
            "dartId": "A String", # DART ID of this region.
          },
        ],
        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
          { # Contains information about a city that can be targeted by ads.
            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
            "countryDartId": "A String", # DART ID of the country to which this city belongs.
            "name": "A String", # Name of this city.
            "countryCode": "A String", # Country code of the country to which this city belongs.
            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
            "regionCode": "A String", # Region code of the region to which this city belongs.
            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
            "regionDartId": "A String", # DART ID of the region to which this city belongs.
          },
        ],
        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
          { # Contains information about a metro region that can be targeted by ads.
            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
            "name": "A String", # Name of this metro region.
            "countryCode": "A String", # Country code of the country to which this metro region belongs.
            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
            "dartId": "A String", # DART ID of this metro region.
          },
        ],
      },
      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
        "value": "A String", # The value of the dimension.
        "dimensionName": "A String", # The name of the dimension.
        "etag": "A String", # The eTag of this response for caching purposes.
        "matchType": "A String", # 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.
        "id": "A String", # The ID associated with the value if available.
      },
      "id": "A String", # ID of this targeting template. This is a read-only, auto-generated field.
      "accountId": "A String", # Account ID of this targeting template. This field, if left unset, will be auto-generated on insert and is read-only after insert.
    }</pre>
</div>

</body></html>