<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.shortLinks.html">shortLinks</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="#create">create(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a short Dynamic Link given either a valid long Dynamic Link or details such as Dynamic Link domain, Android and iOS app information. The created short Dynamic Link will not expire. Repeated calls with the same long Dynamic Link or Dynamic Link information will produce the same short Dynamic Link. The Dynamic Link domain in the request must be owned by requester's Firebase project.</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="create">create(body=None, x__xgafv=None)</code>
  <pre>Creates a short Dynamic Link given either a valid long Dynamic Link or details such as Dynamic Link domain, Android and iOS app information. The created short Dynamic Link will not expire. Repeated calls with the same long Dynamic Link or Dynamic Link information will produce the same short Dynamic Link. The Dynamic Link domain in the request must be owned by requester&#x27;s Firebase project.

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

{ # Request to create a short Dynamic Link.
  &quot;dynamicLinkInfo&quot;: { # Information about a Dynamic Link. # Information about the Dynamic Link to be shortened. [Learn more](https://firebase.google.com/docs/reference/dynamic-links/link-shortener).
    &quot;analyticsInfo&quot;: { # Tracking parameters supported by Dynamic Link. # Parameters used for tracking. See all tracking parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually).
      &quot;googlePlayAnalytics&quot;: { # Parameters for Google Play Campaign Measurements. [Learn more](https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#campaign-params) # Google Play Campaign Measurements.
        &quot;gclid&quot;: &quot;A String&quot;, # [AdWords autotagging parameter](https://support.google.com/analytics/answer/1033981?hl=en); used to measure Google AdWords ads. This value is generated dynamically and should never be modified.
        &quot;utmCampaign&quot;: &quot;A String&quot;, # Campaign name; used for keyword analysis to identify a specific product promotion or strategic campaign.
        &quot;utmContent&quot;: &quot;A String&quot;, # Campaign content; used for A/B testing and content-targeted ads to differentiate ads or links that point to the same URL.
        &quot;utmMedium&quot;: &quot;A String&quot;, # Campaign medium; used to identify a medium such as email or cost-per-click.
        &quot;utmSource&quot;: &quot;A String&quot;, # Campaign source; used to identify a search engine, newsletter, or other source.
        &quot;utmTerm&quot;: &quot;A String&quot;, # Campaign term; used with paid search to supply the keywords for ads.
      },
      &quot;itunesConnectAnalytics&quot;: { # Parameters for iTunes Connect App Analytics. # iTunes Connect App Analytics.
        &quot;at&quot;: &quot;A String&quot;, # Affiliate token used to create affiliate-coded links.
        &quot;ct&quot;: &quot;A String&quot;, # Campaign text that developers can optionally add to any link in order to track sales from a specific marketing campaign.
        &quot;mt&quot;: &quot;A String&quot;, # iTune media types, including music, podcasts, audiobooks and so on.
        &quot;pt&quot;: &quot;A String&quot;, # Provider token that enables analytics for Dynamic Links from within iTunes Connect.
      },
    },
    &quot;androidInfo&quot;: { # Android related attributes to the Dynamic Link. # Android related information. See Android related parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually).
      &quot;androidFallbackLink&quot;: &quot;A String&quot;, # Link to open on Android if the app is not installed.
      &quot;androidLink&quot;: &quot;A String&quot;, # If specified, this overrides the ‘link’ parameter on Android.
      &quot;androidMinPackageVersionCode&quot;: &quot;A String&quot;, # Minimum version code for the Android app. If the installed app’s version code is lower, then the user is taken to the Play Store.
      &quot;androidPackageName&quot;: &quot;A String&quot;, # Android package name of the app.
    },
    &quot;desktopInfo&quot;: { # Desktop related attributes to the Dynamic Link. # Desktop related information. See desktop related parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually).
      &quot;desktopFallbackLink&quot;: &quot;A String&quot;, # Link to open on desktop.
    },
    &quot;domainUriPrefix&quot;: &quot;A String&quot;, # E.g. https://maps.app.goo.gl, https://maps.page.link, https://g.co/maps More examples can be found in description of getNormalizedUriPrefix in j/c/g/firebase/dynamiclinks/uri/DdlDomain.java Will fallback to dynamic_link_domain is this field is missing
    &quot;dynamicLinkDomain&quot;: &quot;A String&quot;, # Dynamic Links domain that the project owns, e.g. abcd.app.goo.gl [Learn more](https://firebase.google.com/docs/dynamic-links/android/receive) on how to set up Dynamic Link domain associated with your Firebase project. Required if missing domain_uri_prefix.
    &quot;iosInfo&quot;: { # iOS related attributes to the Dynamic Link.. # iOS related information. See iOS related parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually).
      &quot;iosAppStoreId&quot;: &quot;A String&quot;, # iOS App Store ID.
      &quot;iosBundleId&quot;: &quot;A String&quot;, # iOS bundle ID of the app.
      &quot;iosCustomScheme&quot;: &quot;A String&quot;, # Custom (destination) scheme to use for iOS. By default, we’ll use the bundle ID as the custom scheme. Developer can override this behavior using this param.
      &quot;iosFallbackLink&quot;: &quot;A String&quot;, # Link to open on iOS if the app is not installed.
      &quot;iosIpadBundleId&quot;: &quot;A String&quot;, # iPad bundle ID of the app.
      &quot;iosIpadFallbackLink&quot;: &quot;A String&quot;, # If specified, this overrides the ios_fallback_link value on iPads.
      &quot;iosMinimumVersion&quot;: &quot;A String&quot;, # iOS minimum version.
    },
    &quot;link&quot;: &quot;A String&quot;, # The link your app will open, You can specify any URL your app can handle. This link must be a well-formatted URL, be properly URL-encoded, and use the HTTP or HTTPS scheme. See &#x27;link&#x27; parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually). Required.
    &quot;navigationInfo&quot;: { # Information of navigation behavior. # Information of navigation behavior of a Firebase Dynamic Links.
      &quot;enableForcedRedirect&quot;: True or False, # If this option is on, FDL click will be forced to redirect rather than show an interstitial page.
    },
    &quot;socialMetaTagInfo&quot;: { # Parameters for social meta tag params. Used to set meta tag data for link previews on social sites. # Parameters for social meta tag params. Used to set meta tag data for link previews on social sites.
      &quot;socialDescription&quot;: &quot;A String&quot;, # A short description of the link. Optional.
      &quot;socialImageLink&quot;: &quot;A String&quot;, # An image url string. Optional.
      &quot;socialTitle&quot;: &quot;A String&quot;, # Title to be displayed. Optional.
    },
  },
  &quot;longDynamicLink&quot;: &quot;A String&quot;, # Full long Dynamic Link URL with desired query parameters specified. For example, &quot;https://sample.app.goo.gl/?link=http://www.google.com&amp;apn=com.sample&quot;, [Learn more](https://firebase.google.com/docs/reference/dynamic-links/link-shortener).
  &quot;sdkVersion&quot;: &quot;A String&quot;, # Google SDK version. Version takes the form &quot;$major.$minor.$patch&quot;
  &quot;suffix&quot;: { # Short Dynamic Link suffix. # Short Dynamic Link suffix. Optional.
    &quot;customSuffix&quot;: &quot;A String&quot;, # Only applies to Option.CUSTOM.
    &quot;option&quot;: &quot;A String&quot;, # Suffix option.
  },
}

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

Returns:
  An object of the form:

    { # Response to create a short Dynamic Link.
  &quot;previewLink&quot;: &quot;A String&quot;, # Preview link to show the link flow chart. (debug info.)
  &quot;shortLink&quot;: &quot;A String&quot;, # Short Dynamic Link value. e.g. https://abcd.app.goo.gl/wxyz
  &quot;warning&quot;: [ # Information about potential warnings on link creation.
    { # Dynamic Links warning messages.
      &quot;warningCode&quot;: &quot;A String&quot;, # The warning code.
      &quot;warningDocumentLink&quot;: &quot;A String&quot;, # The document describing the warning, and helps resolve.
      &quot;warningMessage&quot;: &quot;A String&quot;, # The warning message to help developers improve their requests.
    },
  ],
}</pre>
</div>

</body></html>