<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="partners_v2.html">Google Partners API</a> . <a href="partners_v2.userEvents.html">userEvents</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#log">log(body, x__xgafv=None)</a></code></p>
<p class="firstline">Logs a user event.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="log">log(body, x__xgafv=None)</code>
  <pre>Logs a user event.

Args:
  body: object, The request body. (required)
    The object takes the form of:

{ # Request message for
      # LogUserEvent.
    "lead": { # A lead resource that represents an advertiser contact for a `Company`. These # Advertiser lead information.
        # are usually generated via Google Partner Search (the advertiser portal).
      "marketingOptIn": True or False, # Whether or not the lead signed up for marketing emails
      "languageCode": "A String", # Language code of the lead's language preference, as defined by
          # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
          # (IETF BCP 47, "Tags for Identifying Languages").
      "type": "A String", # Type of lead.
      "familyName": "A String", # Last name of lead source.
      "minMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget lead source is willing to spend.
        "nanos": 42, # Number of nano (10^-9) units of the amount.
            # The value must be between -999,999,999 and +999,999,999 inclusive.
            # If `units` is positive, `nanos` must be positive or zero.
            # If `units` is zero, `nanos` can be positive, zero, or negative.
            # If `units` is negative, `nanos` must be negative or zero.
            # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
        "units": "A String", # The whole units of the amount.
            # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
        "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
      },
      "comments": "A String", # Comments lead source gave.
      "createTime": "A String", # Timestamp of when this lead was created.
      "websiteUrl": "A String", # Website URL of lead source.
      "email": "A String", # Email address of lead source.
      "state": "A String", # The lead's state in relation to the company.
      "phoneNumber": "A String", # Phone number of lead source.
      "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
        "A String",
      ],
      "givenName": "A String", # First name of lead source.
      "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
      "id": "A String", # ID of the lead.
    },
    "url": "A String", # The URL where the event occurred.
    "eventDatas": [ # List of event data for the event.
      { # Key value data pair for an event.
        "values": [ # Data values.
          "A String",
        ],
        "key": "A String", # Data type.
      },
    ],
    "eventCategory": "A String", # The category the action belongs to.
    "eventAction": "A String", # The action that occurred.
    "requestMetadata": { # Common data that is in each API request. # Current request metadata.
      "locale": "A String", # Locale to use for the current request.
      "partnersSessionId": "A String", # Google Partners session ID.
      "trafficSource": { # Source of traffic for the current request. # Source of traffic for the current request.
        "trafficSubId": "A String", # Second level identifier to indicate where the traffic comes from.
            # An identifier has multiple letters created by a team which redirected the
            # traffic to us.
        "trafficSourceId": "A String", # Identifier to indicate where the traffic comes from.
            # An identifier has multiple letters created by a team which redirected the
            # traffic to us.
      },
      "userOverrides": { # Values to use instead of the user's respective defaults. These are only # Values to use instead of the user's respective defaults for the current
          # request. These are only honored by whitelisted products.
          # honored by whitelisted products.
        "userId": "A String", # Logged-in user ID to impersonate instead of the user's ID.
        "ipAddress": "A String", # IP address to use instead of the user's geo-located IP address.
      },
      "experimentIds": [ # Experiment IDs the current request belongs to.
        "A String",
      ],
    },
    "eventScope": "A String", # The scope of the event.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for
      # LogUserEvent.
    "responseMetadata": { # Common data that is in each API response. # Current response metadata.
      "debugInfo": { # Debug information about this request. # Debug information about this request.
        "serverTraceInfo": "A String", # Server-side debug stack trace.
        "serviceUrl": "A String", # URL of the service that handled this request.
        "serverInfo": "A String", # Info about the server that serviced this request.
      },
    },
  }</pre>
</div>

</body></html>