<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, durationDays=None, sdkVersion=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, durationDays=None, sdkVersion=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)
  durationDays: string, The span of time requested in days.
  sdkVersion: string, Google SDK version. Version takes the form &quot;$major.$minor.$patch&quot;
  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;count&quot;: &quot;A String&quot;, # The number of times this event occurred.
        &quot;platform&quot;: &quot;A String&quot;, # Requested platform.
        &quot;event&quot;: &quot;A String&quot;, # Link event.
      },
    ],
  }</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;sdkVersion&quot;: &quot;A String&quot;, # Google SDK version. Version takes the form &quot;$major.$minor.$patch&quot;
    &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;iosVersion&quot;: &quot;A String&quot;, # iOS version, ie: 9.3.5. Consider adding &quot;build&quot;.
    &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.
    &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;device&quot;: { # Signals associated with the device making the request. # Device information.
      &quot;screenResolutionWidth&quot;: &quot;A String&quot;, # Device display resolution width.
      &quot;deviceModelName&quot;: &quot;A String&quot;, # Device model name.
      &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;languageCodeFromWebview&quot;: &quot;A String&quot;, # Device language code setting obtained by executing JavaScript code in WebView.
      &quot;languageCode&quot;: &quot;A String&quot;, # Device language code setting.
      &quot;timezone&quot;: &quot;A String&quot;, # Device timezone setting.
    },
    &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 execute strong match flow for post-install attribution.
    &quot;invitationId&quot;: &quot;A String&quot;, # Invitation ID attributed post-install via one of several techniques (fingerprint, copy unique).
    &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;deepLink&quot;: &quot;A String&quot;, # The deep-link attributed post-install via one of several techniques (fingerprint, copy unique).
    &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;utmTerm&quot;: &quot;A String&quot;, # Scion term value to be propagated by iSDK to Scion at app-reopen.
    &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;utmCampaign&quot;: &quot;A String&quot;, # Scion campaign 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;requestIpVersion&quot;: &quot;A String&quot;, # Which IP version the request was made from.
    &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;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;utmSource&quot;: &quot;A String&quot;, # Scion source value to be propagated by iSDK to Scion at post-install.
    &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;attributionConfidence&quot;: &quot;A String&quot;, # The confidence of the returned 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).
  }</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;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;sdkVersion&quot;: &quot;A String&quot;, # Google SDK version. Version takes the form &quot;$major.$minor.$patch&quot;
    &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;utmContent&quot;: &quot;A String&quot;, # Scion content value to be propagated by iSDK to Scion at app-reopen.
    &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;invitationId&quot;: &quot;A String&quot;, # Optional invitation ID, for only invite typed requested FDL links.
    &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.
    &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;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;utmMedium&quot;: &quot;A String&quot;, # Scion medium value to be propagated by iSDK to Scion at app-reopen.
    &quot;utmSource&quot;: &quot;A String&quot;, # Scion source value to be propagated by iSDK to Scion at app-reopen.
  }</pre>
</div>

</body></html>