<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_7.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_7.accounts.html">accounts</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 account by ID.</p>
<p class="toc_element">
  <code><a href="#list">list(profileId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, active=None)</a></code></p>
<p class="firstline">Retrieves the list of accounts, possibly 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 account. 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 account.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(profileId, id)</code>
  <pre>Gets one account by ID.

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

Returns:
  An object of the form:

    { # Contains properties of a DCM account.
      "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
      "countryId": "A String", # ID of the country associated with this account.
      "availablePermissionIds": [ # User role permissions available to the user roles of this account.
        "A String",
      ],
      "description": "A String", # Description of this account.
      "maximumImageSize": "A String", # Maximum image size allowed for this account.
      "currencyId": "A String", # ID of currency associated with this account. This is a required field.
          # Acceptable values are:
          # - "1" for USD
          # - "2" for GBP
          # - "3" for ESP
          # - "4" for SEK
          # - "5" for CAD
          # - "6" for JPY
          # - "7" for DEM
          # - "8" for AUD
          # - "9" for FRF
          # - "10" for ITL
          # - "11" for DKK
          # - "12" for NOK
          # - "13" for FIM
          # - "14" for ZAR
          # - "15" for IEP
          # - "16" for NLG
          # - "17" for EUR
          # - "18" for KRW
          # - "19" for TWD
          # - "20" for SGD
          # - "21" for CNY
          # - "22" for HKD
          # - "23" for NZD
          # - "24" for MYR
          # - "25" for BRL
          # - "26" for PTE
          # - "27" for MXP
          # - "28" for CLP
          # - "29" for TRY
          # - "30" for ARS
          # - "31" for PEN
          # - "32" for ILS
          # - "33" for CHF
          # - "34" for VEF
          # - "35" for COP
          # - "36" for GTQ
          # - "37" for PLN
          # - "39" for INR
          # - "40" for THB
          # - "41" for IDR
          # - "42" for CZK
          # - "43" for RON
          # - "44" for HUF
          # - "45" for RUB
          # - "46" for AED
          # - "47" for BGN
          # - "48" for HRK
      "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
      "accountPermissionIds": [ # Account permissions assigned to this account.
        "A String",
      ],
      "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
      "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
      "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
      "locale": "A String", # Locale of this account.
          # Acceptable values are:
          # - "cs" (Czech)
          # - "de" (German)
          # - "en" (English)
          # - "en-GB" (English United Kingdom)
          # - "es" (Spanish)
          # - "fr" (French)
          # - "it" (Italian)
          # - "ja" (Japanese)
          # - "ko" (Korean)
          # - "pl" (Polish)
          # - "pt-BR" (Portuguese Brazil)
          # - "ru" (Russian)
          # - "sv" (Swedish)
          # - "tr" (Turkish)
          # - "zh-CN" (Chinese Simplified)
          # - "zh-TW" (Chinese Traditional)
      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
      "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
        "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
            # Acceptable values are:
            #
            # - "1" for "America/New_York"
            # - "2" for "Europe/London"
            # - "3" for "Europe/Paris"
            # - "4" for "Africa/Johannesburg"
            # - "5" for "Asia/Jerusalem"
            # - "6" for "Asia/Shanghai"
            # - "7" for "Asia/Hong_Kong"
            # - "8" for "Asia/Tokyo"
            # - "9" for "Australia/Sydney"
            # - "10" for "Asia/Dubai"
            # - "11" for "America/Los_Angeles"
            # - "12" for "Pacific/Auckland"
            # - "13" for "America/Sao_Paulo"
        "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
        "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
        },
      },
      "active": True or False, # Whether this account is active.
      "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
      "shareReportsWithTwitter": True or False, # Share Path to Conversion reports with Twitter.
      "id": "A String", # ID of this account. This is a read-only, auto-generated field.
      "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(profileId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, active=None)</code>
  <pre>Retrieves the list of accounts, possibly filtered. This method supports paging.

Args:
  profileId: string, User profile ID associated with this request. (required)
  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "account*2015" will return objects with names like "account June 2015", "account April 2015", or simply "account 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 "account" will match objects with name "my account", "account 2015", or simply "account".
  sortField: string, Field by which to sort the list.
    Allowed values
      ID - 
      NAME - 
  ids: string, Select only accounts with these IDs. (repeated)
  maxResults: integer, Maximum number of results to return.
  pageToken: string, Value of the nextPageToken from the previous result page.
  sortOrder: string, Order of sorted results, default is ASCENDING.
    Allowed values
      ASCENDING - 
      DESCENDING - 
  active: boolean, Select only active accounts. Don't set this field to select both active and non-active accounts.

Returns:
  An object of the form:

    { # Account List Response
    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
    "kind": "dfareporting#accountsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountsListResponse".
    "accounts": [ # Account collection.
      { # Contains properties of a DCM account.
          "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
          "countryId": "A String", # ID of the country associated with this account.
          "availablePermissionIds": [ # User role permissions available to the user roles of this account.
            "A String",
          ],
          "description": "A String", # Description of this account.
          "maximumImageSize": "A String", # Maximum image size allowed for this account.
          "currencyId": "A String", # ID of currency associated with this account. This is a required field.
              # Acceptable values are:
              # - "1" for USD
              # - "2" for GBP
              # - "3" for ESP
              # - "4" for SEK
              # - "5" for CAD
              # - "6" for JPY
              # - "7" for DEM
              # - "8" for AUD
              # - "9" for FRF
              # - "10" for ITL
              # - "11" for DKK
              # - "12" for NOK
              # - "13" for FIM
              # - "14" for ZAR
              # - "15" for IEP
              # - "16" for NLG
              # - "17" for EUR
              # - "18" for KRW
              # - "19" for TWD
              # - "20" for SGD
              # - "21" for CNY
              # - "22" for HKD
              # - "23" for NZD
              # - "24" for MYR
              # - "25" for BRL
              # - "26" for PTE
              # - "27" for MXP
              # - "28" for CLP
              # - "29" for TRY
              # - "30" for ARS
              # - "31" for PEN
              # - "32" for ILS
              # - "33" for CHF
              # - "34" for VEF
              # - "35" for COP
              # - "36" for GTQ
              # - "37" for PLN
              # - "39" for INR
              # - "40" for THB
              # - "41" for IDR
              # - "42" for CZK
              # - "43" for RON
              # - "44" for HUF
              # - "45" for RUB
              # - "46" for AED
              # - "47" for BGN
              # - "48" for HRK
          "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
          "accountPermissionIds": [ # Account permissions assigned to this account.
            "A String",
          ],
          "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
          "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
          "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
          "locale": "A String", # Locale of this account.
              # Acceptable values are:
              # - "cs" (Czech)
              # - "de" (German)
              # - "en" (English)
              # - "en-GB" (English United Kingdom)
              # - "es" (Spanish)
              # - "fr" (French)
              # - "it" (Italian)
              # - "ja" (Japanese)
              # - "ko" (Korean)
              # - "pl" (Polish)
              # - "pt-BR" (Portuguese Brazil)
              # - "ru" (Russian)
              # - "sv" (Swedish)
              # - "tr" (Turkish)
              # - "zh-CN" (Chinese Simplified)
              # - "zh-TW" (Chinese Traditional)
          "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
          "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
            "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
                # Acceptable values are:
                #
                # - "1" for "America/New_York"
                # - "2" for "Europe/London"
                # - "3" for "Europe/Paris"
                # - "4" for "Africa/Johannesburg"
                # - "5" for "Asia/Jerusalem"
                # - "6" for "Asia/Shanghai"
                # - "7" for "Asia/Hong_Kong"
                # - "8" for "Asia/Tokyo"
                # - "9" for "Australia/Sydney"
                # - "10" for "Asia/Dubai"
                # - "11" for "America/Los_Angeles"
                # - "12" for "Pacific/Auckland"
                # - "13" for "America/Sao_Paulo"
            "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
            "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
            },
          },
          "active": True or False, # Whether this account is active.
          "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
          "shareReportsWithTwitter": True or False, # Share Path to Conversion reports with Twitter.
          "id": "A String", # ID of this account. This is a read-only, auto-generated field.
          "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
        },
    ],
  }</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 account. This method supports patch semantics.

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

{ # Contains properties of a DCM account.
    "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
    "countryId": "A String", # ID of the country associated with this account.
    "availablePermissionIds": [ # User role permissions available to the user roles of this account.
      "A String",
    ],
    "description": "A String", # Description of this account.
    "maximumImageSize": "A String", # Maximum image size allowed for this account.
    "currencyId": "A String", # ID of currency associated with this account. This is a required field.
        # Acceptable values are:
        # - "1" for USD
        # - "2" for GBP
        # - "3" for ESP
        # - "4" for SEK
        # - "5" for CAD
        # - "6" for JPY
        # - "7" for DEM
        # - "8" for AUD
        # - "9" for FRF
        # - "10" for ITL
        # - "11" for DKK
        # - "12" for NOK
        # - "13" for FIM
        # - "14" for ZAR
        # - "15" for IEP
        # - "16" for NLG
        # - "17" for EUR
        # - "18" for KRW
        # - "19" for TWD
        # - "20" for SGD
        # - "21" for CNY
        # - "22" for HKD
        # - "23" for NZD
        # - "24" for MYR
        # - "25" for BRL
        # - "26" for PTE
        # - "27" for MXP
        # - "28" for CLP
        # - "29" for TRY
        # - "30" for ARS
        # - "31" for PEN
        # - "32" for ILS
        # - "33" for CHF
        # - "34" for VEF
        # - "35" for COP
        # - "36" for GTQ
        # - "37" for PLN
        # - "39" for INR
        # - "40" for THB
        # - "41" for IDR
        # - "42" for CZK
        # - "43" for RON
        # - "44" for HUF
        # - "45" for RUB
        # - "46" for AED
        # - "47" for BGN
        # - "48" for HRK
    "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
    "accountPermissionIds": [ # Account permissions assigned to this account.
      "A String",
    ],
    "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
    "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
    "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
    "locale": "A String", # Locale of this account.
        # Acceptable values are:
        # - "cs" (Czech)
        # - "de" (German)
        # - "en" (English)
        # - "en-GB" (English United Kingdom)
        # - "es" (Spanish)
        # - "fr" (French)
        # - "it" (Italian)
        # - "ja" (Japanese)
        # - "ko" (Korean)
        # - "pl" (Polish)
        # - "pt-BR" (Portuguese Brazil)
        # - "ru" (Russian)
        # - "sv" (Swedish)
        # - "tr" (Turkish)
        # - "zh-CN" (Chinese Simplified)
        # - "zh-TW" (Chinese Traditional)
    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
    "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
      "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
          # Acceptable values are:
          #
          # - "1" for "America/New_York"
          # - "2" for "Europe/London"
          # - "3" for "Europe/Paris"
          # - "4" for "Africa/Johannesburg"
          # - "5" for "Asia/Jerusalem"
          # - "6" for "Asia/Shanghai"
          # - "7" for "Asia/Hong_Kong"
          # - "8" for "Asia/Tokyo"
          # - "9" for "Australia/Sydney"
          # - "10" for "Asia/Dubai"
          # - "11" for "America/Los_Angeles"
          # - "12" for "Pacific/Auckland"
          # - "13" for "America/Sao_Paulo"
      "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
      "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
      },
    },
    "active": True or False, # Whether this account is active.
    "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
    "shareReportsWithTwitter": True or False, # Share Path to Conversion reports with Twitter.
    "id": "A String", # ID of this account. This is a read-only, auto-generated field.
    "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
  }


Returns:
  An object of the form:

    { # Contains properties of a DCM account.
      "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
      "countryId": "A String", # ID of the country associated with this account.
      "availablePermissionIds": [ # User role permissions available to the user roles of this account.
        "A String",
      ],
      "description": "A String", # Description of this account.
      "maximumImageSize": "A String", # Maximum image size allowed for this account.
      "currencyId": "A String", # ID of currency associated with this account. This is a required field.
          # Acceptable values are:
          # - "1" for USD
          # - "2" for GBP
          # - "3" for ESP
          # - "4" for SEK
          # - "5" for CAD
          # - "6" for JPY
          # - "7" for DEM
          # - "8" for AUD
          # - "9" for FRF
          # - "10" for ITL
          # - "11" for DKK
          # - "12" for NOK
          # - "13" for FIM
          # - "14" for ZAR
          # - "15" for IEP
          # - "16" for NLG
          # - "17" for EUR
          # - "18" for KRW
          # - "19" for TWD
          # - "20" for SGD
          # - "21" for CNY
          # - "22" for HKD
          # - "23" for NZD
          # - "24" for MYR
          # - "25" for BRL
          # - "26" for PTE
          # - "27" for MXP
          # - "28" for CLP
          # - "29" for TRY
          # - "30" for ARS
          # - "31" for PEN
          # - "32" for ILS
          # - "33" for CHF
          # - "34" for VEF
          # - "35" for COP
          # - "36" for GTQ
          # - "37" for PLN
          # - "39" for INR
          # - "40" for THB
          # - "41" for IDR
          # - "42" for CZK
          # - "43" for RON
          # - "44" for HUF
          # - "45" for RUB
          # - "46" for AED
          # - "47" for BGN
          # - "48" for HRK
      "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
      "accountPermissionIds": [ # Account permissions assigned to this account.
        "A String",
      ],
      "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
      "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
      "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
      "locale": "A String", # Locale of this account.
          # Acceptable values are:
          # - "cs" (Czech)
          # - "de" (German)
          # - "en" (English)
          # - "en-GB" (English United Kingdom)
          # - "es" (Spanish)
          # - "fr" (French)
          # - "it" (Italian)
          # - "ja" (Japanese)
          # - "ko" (Korean)
          # - "pl" (Polish)
          # - "pt-BR" (Portuguese Brazil)
          # - "ru" (Russian)
          # - "sv" (Swedish)
          # - "tr" (Turkish)
          # - "zh-CN" (Chinese Simplified)
          # - "zh-TW" (Chinese Traditional)
      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
      "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
        "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
            # Acceptable values are:
            #
            # - "1" for "America/New_York"
            # - "2" for "Europe/London"
            # - "3" for "Europe/Paris"
            # - "4" for "Africa/Johannesburg"
            # - "5" for "Asia/Jerusalem"
            # - "6" for "Asia/Shanghai"
            # - "7" for "Asia/Hong_Kong"
            # - "8" for "Asia/Tokyo"
            # - "9" for "Australia/Sydney"
            # - "10" for "Asia/Dubai"
            # - "11" for "America/Los_Angeles"
            # - "12" for "Pacific/Auckland"
            # - "13" for "America/Sao_Paulo"
        "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
        "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
        },
      },
      "active": True or False, # Whether this account is active.
      "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
      "shareReportsWithTwitter": True or False, # Share Path to Conversion reports with Twitter.
      "id": "A String", # ID of this account. This is a read-only, auto-generated field.
      "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
    }</pre>
</div>

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

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 DCM account.
    "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
    "countryId": "A String", # ID of the country associated with this account.
    "availablePermissionIds": [ # User role permissions available to the user roles of this account.
      "A String",
    ],
    "description": "A String", # Description of this account.
    "maximumImageSize": "A String", # Maximum image size allowed for this account.
    "currencyId": "A String", # ID of currency associated with this account. This is a required field.
        # Acceptable values are:
        # - "1" for USD
        # - "2" for GBP
        # - "3" for ESP
        # - "4" for SEK
        # - "5" for CAD
        # - "6" for JPY
        # - "7" for DEM
        # - "8" for AUD
        # - "9" for FRF
        # - "10" for ITL
        # - "11" for DKK
        # - "12" for NOK
        # - "13" for FIM
        # - "14" for ZAR
        # - "15" for IEP
        # - "16" for NLG
        # - "17" for EUR
        # - "18" for KRW
        # - "19" for TWD
        # - "20" for SGD
        # - "21" for CNY
        # - "22" for HKD
        # - "23" for NZD
        # - "24" for MYR
        # - "25" for BRL
        # - "26" for PTE
        # - "27" for MXP
        # - "28" for CLP
        # - "29" for TRY
        # - "30" for ARS
        # - "31" for PEN
        # - "32" for ILS
        # - "33" for CHF
        # - "34" for VEF
        # - "35" for COP
        # - "36" for GTQ
        # - "37" for PLN
        # - "39" for INR
        # - "40" for THB
        # - "41" for IDR
        # - "42" for CZK
        # - "43" for RON
        # - "44" for HUF
        # - "45" for RUB
        # - "46" for AED
        # - "47" for BGN
        # - "48" for HRK
    "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
    "accountPermissionIds": [ # Account permissions assigned to this account.
      "A String",
    ],
    "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
    "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
    "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
    "locale": "A String", # Locale of this account.
        # Acceptable values are:
        # - "cs" (Czech)
        # - "de" (German)
        # - "en" (English)
        # - "en-GB" (English United Kingdom)
        # - "es" (Spanish)
        # - "fr" (French)
        # - "it" (Italian)
        # - "ja" (Japanese)
        # - "ko" (Korean)
        # - "pl" (Polish)
        # - "pt-BR" (Portuguese Brazil)
        # - "ru" (Russian)
        # - "sv" (Swedish)
        # - "tr" (Turkish)
        # - "zh-CN" (Chinese Simplified)
        # - "zh-TW" (Chinese Traditional)
    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
    "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
      "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
          # Acceptable values are:
          #
          # - "1" for "America/New_York"
          # - "2" for "Europe/London"
          # - "3" for "Europe/Paris"
          # - "4" for "Africa/Johannesburg"
          # - "5" for "Asia/Jerusalem"
          # - "6" for "Asia/Shanghai"
          # - "7" for "Asia/Hong_Kong"
          # - "8" for "Asia/Tokyo"
          # - "9" for "Australia/Sydney"
          # - "10" for "Asia/Dubai"
          # - "11" for "America/Los_Angeles"
          # - "12" for "Pacific/Auckland"
          # - "13" for "America/Sao_Paulo"
      "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
      "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
      },
    },
    "active": True or False, # Whether this account is active.
    "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
    "shareReportsWithTwitter": True or False, # Share Path to Conversion reports with Twitter.
    "id": "A String", # ID of this account. This is a read-only, auto-generated field.
    "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
  }


Returns:
  An object of the form:

    { # Contains properties of a DCM account.
      "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
      "countryId": "A String", # ID of the country associated with this account.
      "availablePermissionIds": [ # User role permissions available to the user roles of this account.
        "A String",
      ],
      "description": "A String", # Description of this account.
      "maximumImageSize": "A String", # Maximum image size allowed for this account.
      "currencyId": "A String", # ID of currency associated with this account. This is a required field.
          # Acceptable values are:
          # - "1" for USD
          # - "2" for GBP
          # - "3" for ESP
          # - "4" for SEK
          # - "5" for CAD
          # - "6" for JPY
          # - "7" for DEM
          # - "8" for AUD
          # - "9" for FRF
          # - "10" for ITL
          # - "11" for DKK
          # - "12" for NOK
          # - "13" for FIM
          # - "14" for ZAR
          # - "15" for IEP
          # - "16" for NLG
          # - "17" for EUR
          # - "18" for KRW
          # - "19" for TWD
          # - "20" for SGD
          # - "21" for CNY
          # - "22" for HKD
          # - "23" for NZD
          # - "24" for MYR
          # - "25" for BRL
          # - "26" for PTE
          # - "27" for MXP
          # - "28" for CLP
          # - "29" for TRY
          # - "30" for ARS
          # - "31" for PEN
          # - "32" for ILS
          # - "33" for CHF
          # - "34" for VEF
          # - "35" for COP
          # - "36" for GTQ
          # - "37" for PLN
          # - "39" for INR
          # - "40" for THB
          # - "41" for IDR
          # - "42" for CZK
          # - "43" for RON
          # - "44" for HUF
          # - "45" for RUB
          # - "46" for AED
          # - "47" for BGN
          # - "48" for HRK
      "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
      "accountPermissionIds": [ # Account permissions assigned to this account.
        "A String",
      ],
      "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
      "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
      "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
      "locale": "A String", # Locale of this account.
          # Acceptable values are:
          # - "cs" (Czech)
          # - "de" (German)
          # - "en" (English)
          # - "en-GB" (English United Kingdom)
          # - "es" (Spanish)
          # - "fr" (French)
          # - "it" (Italian)
          # - "ja" (Japanese)
          # - "ko" (Korean)
          # - "pl" (Polish)
          # - "pt-BR" (Portuguese Brazil)
          # - "ru" (Russian)
          # - "sv" (Swedish)
          # - "tr" (Turkish)
          # - "zh-CN" (Chinese Simplified)
          # - "zh-TW" (Chinese Traditional)
      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
      "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
        "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
            # Acceptable values are:
            #
            # - "1" for "America/New_York"
            # - "2" for "Europe/London"
            # - "3" for "Europe/Paris"
            # - "4" for "Africa/Johannesburg"
            # - "5" for "Asia/Jerusalem"
            # - "6" for "Asia/Shanghai"
            # - "7" for "Asia/Hong_Kong"
            # - "8" for "Asia/Tokyo"
            # - "9" for "Australia/Sydney"
            # - "10" for "Asia/Dubai"
            # - "11" for "America/Los_Angeles"
            # - "12" for "Pacific/Auckland"
            # - "13" for "America/Sao_Paulo"
        "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
        "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
        },
      },
      "active": True or False, # Whether this account is active.
      "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
      "shareReportsWithTwitter": True or False, # Share Path to Conversion reports with Twitter.
      "id": "A String", # ID of this account. This is a read-only, auto-generated field.
      "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
    }</pre>
</div>

</body></html>