<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="firebasedynamiclinks_v1.html">Firebase Dynamic Links API</a> . <a href="firebasedynamiclinks_v1.v1.html">v1</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#getLinkStats">getLinkStats(dynamicLink, sdkVersion=None, durationDays=None, x__xgafv=None)</a></code></p>
<p class="firstline">Fetches analytics stats of a short Dynamic Link for a given duration. Metrics include number of clicks, redirects, installs, app first opens, and app reopens.</p>
<p class="toc_element">
  <code><a href="#installAttribution">installAttribution(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Get iOS strong/weak-match info for post-install attribution.</p>
<p class="toc_element">
  <code><a href="#reopenAttribution">reopenAttribution(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Get iOS reopen attribution for app universal link open deeplinking.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="getLinkStats">getLinkStats(dynamicLink, sdkVersion=None, durationDays=None, x__xgafv=None)</code>
  <pre>Fetches analytics stats of a short Dynamic Link for a given duration. Metrics include number of clicks, redirects, installs, app first opens, and app reopens.

Args:
  dynamicLink: string, Dynamic Link URL. e.g. https://abcd.app.goo.gl/wxyz (required)
  sdkVersion: string, Google SDK version. Version takes the form &quot;$major.$minor.$patch&quot;
  durationDays: string, The span of time requested in days.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Analytics stats of a Dynamic Link for a given timeframe.
    &quot;linkEventStats&quot;: [ # Dynamic Link event stats.
      { # Dynamic Link event stat.
        &quot;platform&quot;: &quot;A String&quot;, # Requested platform.
        &quot;event&quot;: &quot;A String&quot;, # Link event.
        &quot;count&quot;: &quot;A String&quot;, # The number of times this event occurred.
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="installAttribution">installAttribution(body=None, x__xgafv=None)</code>
  <pre>Get iOS strong/weak-match info for post-install attribution.

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

{ # Request for iSDK to execute strong match flow for post-install attribution. This is meant for iOS requests only. Requests from other platforms will not be honored.
    &quot;uniqueMatchLinkToCheck&quot;: &quot;A String&quot;, # Possible unique matched link that server need to check before performing fingerprint match. If passed link is short server need to expand the link. If link is long server need to vslidate the link.
    &quot;bundleId&quot;: &quot;A String&quot;, # APP bundle ID.
    &quot;sdkVersion&quot;: &quot;A String&quot;, # Google SDK version. Version takes the form &quot;$major.$minor.$patch&quot;
    &quot;iosVersion&quot;: &quot;A String&quot;, # iOS version, ie: 9.3.5. Consider adding &quot;build&quot;.
    &quot;device&quot;: { # Signals associated with the device making the request. # Device information.
      &quot;languageCodeRaw&quot;: &quot;A String&quot;, # Device language code raw setting. iOS does returns language code in different format than iOS WebView. For example WebView returns en_US, but iOS returns en-US. Field below will return raw value returned by iOS.
      &quot;screenResolutionHeight&quot;: &quot;A String&quot;, # Device display resolution height.
      &quot;languageCode&quot;: &quot;A String&quot;, # Device language code setting.
      &quot;timezone&quot;: &quot;A String&quot;, # Device timezone setting.
      &quot;languageCodeFromWebview&quot;: &quot;A String&quot;, # Device language code setting obtained by executing JavaScript code in WebView.
      &quot;deviceModelName&quot;: &quot;A String&quot;, # Device model name.
      &quot;screenResolutionWidth&quot;: &quot;A String&quot;, # Device display resolution width.
    },
    &quot;visualStyle&quot;: &quot;A String&quot;, # Strong match page information. Disambiguates between default UI and custom page to present when strong match succeeds/fails to find cookie.
    &quot;retrievalMethod&quot;: &quot;A String&quot;, # App post install attribution retrieval information. Disambiguates mechanism (iSDK or developer invoked) to retrieve payload from clicked link.
    &quot;appInstallationTime&quot;: &quot;A String&quot;, # App installation epoch time (https://en.wikipedia.org/wiki/Unix_time). This is a client signal for a more accurate weak match.
  }

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

Returns:
  An object of the form:

    { # Response for iSDK to execute strong match flow for post-install attribution.
    &quot;utmMedium&quot;: &quot;A String&quot;, # Scion medium value to be propagated by iSDK to Scion at post-install.
    &quot;requestedLink&quot;: &quot;A String&quot;, # Entire FDL (short or long) attributed post-install via one of several techniques (fingerprint, copy unique).
    &quot;utmSource&quot;: &quot;A String&quot;, # Scion source value to be propagated by iSDK to Scion at post-install.
    &quot;utmContent&quot;: &quot;A String&quot;, # Scion content value to be propagated by iSDK to Scion at app-reopen.
    &quot;isStrongMatchExecutable&quot;: True or False, # Instruction for iSDK to attemmpt to perform strong match. For instance, if browser does not support/allow cookie or outside of support browsers, this will be false.
    &quot;utmCampaign&quot;: &quot;A String&quot;, # Scion campaign value to be propagated by iSDK to Scion at post-install.
    &quot;resolvedLink&quot;: &quot;A String&quot;, # The entire FDL, expanded from a short link. It is the same as the requested_link, if it is long. Parameters from this should not be used directly (ie: server can default utm_[campaign|medium|source] to a value when requested_link lack them, server determine the best fallback_link when requested_link specifies &gt;1 fallback links).
    &quot;fallbackLink&quot;: &quot;A String&quot;, # The link to navigate to update the app if min version is not met. This is either (in order): 1) fallback link (from ?ifl= parameter, if specified by developer) or 2) AppStore URL (from ?isi= parameter, if specified), or 3) the payload link (from required link= parameter).
    &quot;appMinimumVersion&quot;: &quot;A String&quot;, # The minimum version for app, specified by dev through ?imv= parameter. Return to iSDK to allow app to evaluate if current version meets this.
    &quot;externalBrowserDestinationLink&quot;: &quot;A String&quot;, # User-agent specific custom-scheme URIs for iSDK to open. This will be set according to the user-agent tha the click was originally made in. There is no Safari-equivalent custom-scheme open URLs. ie: googlechrome://www.example.com ie: firefox://open-url?url=http://www.example.com ie: opera-http://example.com
    &quot;utmTerm&quot;: &quot;A String&quot;, # Scion term value to be propagated by iSDK to Scion at app-reopen.
    &quot;requestIpVersion&quot;: &quot;A String&quot;, # Which IP version the request was made from.
    &quot;attributionConfidence&quot;: &quot;A String&quot;, # The confidence of the returned attribution.
    &quot;matchMessage&quot;: &quot;A String&quot;, # Describes why match failed, ie: &quot;discarded due to low confidence&quot;. This message will be publicly visible.
    &quot;deepLink&quot;: &quot;A String&quot;, # The deep-link attributed post-install via one of several techniques (fingerprint, copy unique).
    &quot;invitationId&quot;: &quot;A String&quot;, # Invitation ID attributed post-install via one of several techniques (fingerprint, copy unique).
  }</pre>
</div>

<div class="method">
    <code class="details" id="reopenAttribution">reopenAttribution(body=None, x__xgafv=None)</code>
  <pre>Get iOS reopen attribution for app universal link open deeplinking.

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

{ # Request for iSDK to get reopen attribution for app universal link open deeplinking. This endpoint is meant for only iOS requests.
    &quot;sdkVersion&quot;: &quot;A String&quot;, # Google SDK version. Version takes the form &quot;$major.$minor.$patch&quot;
    &quot;requestedLink&quot;: &quot;A String&quot;, # FDL link to be verified from an app universal link open. The FDL link can be one of: 1) short FDL. e.g. .page.link/, or 2) long FDL. e.g. .page.link/?{query params}, or 3) Invite FDL. e.g. .page.link/i/
    &quot;bundleId&quot;: &quot;A String&quot;, # APP bundle ID.
  }

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

Returns:
  An object of the form:

    { # Response for iSDK to get reopen attribution for app universal link open deeplinking. This endpoint is meant for only iOS requests.
    &quot;resolvedLink&quot;: &quot;A String&quot;, # The entire FDL, expanded from a short link. It is the same as the requested_link, if it is long.
    &quot;utmSource&quot;: &quot;A String&quot;, # Scion source value to be propagated by iSDK to Scion at app-reopen.
    &quot;utmTerm&quot;: &quot;A String&quot;, # Scion term value to be propagated by iSDK to Scion at app-reopen.
    &quot;utmCampaign&quot;: &quot;A String&quot;, # Scion campaign value to be propagated by iSDK to Scion at app-reopen.
    &quot;deepLink&quot;: &quot;A String&quot;, # The deep-link attributed the app universal link open. For both regular FDL links and invite FDL links.
    &quot;utmMedium&quot;: &quot;A String&quot;, # Scion medium value to be propagated by iSDK to Scion at app-reopen.
    &quot;invitationId&quot;: &quot;A String&quot;, # Optional invitation ID, for only invite typed requested FDL links.
    &quot;utmContent&quot;: &quot;A String&quot;, # Scion content value to be propagated by iSDK to Scion at app-reopen.
    &quot;iosMinAppVersion&quot;: &quot;A String&quot;, # FDL input value of the &quot;&amp;imv=&quot; parameter, minimum app version to be returned to Google Firebase SDK running on iOS-9.
  }</pre>
</div>

</body></html>