<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="#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</p>
<h3>Method Details</h3>
<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;socialMetaTagInfo&quot;: { # Parameters for social meta tag params. # Parameters for social meta tag params.
          # Used to set meta tag data for link previews on social sites.
          # Used to set meta tag data for link previews on social sites.
        &quot;socialImageLink&quot;: &quot;A String&quot;, # An image url string. Optional.
        &quot;socialDescription&quot;: &quot;A String&quot;, # A short description of the link. Optional.
        &quot;socialTitle&quot;: &quot;A String&quot;, # Title to be displayed. Optional.
      },
      &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. # Google Play Campaign Measurements.
            # [Learn
            # more](https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#campaign-params)
          &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;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;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;itunesConnectAnalytics&quot;: { # Parameters for iTunes Connect App Analytics. # iTunes Connect App Analytics.
          &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;pt&quot;: &quot;A String&quot;, # Provider token that enables analytics for Dynamic Links from within iTunes
              # Connect.
          &quot;mt&quot;: &quot;A String&quot;, # iTune media types, including music, podcasts, audiobooks and so on.
          &quot;at&quot;: &quot;A String&quot;, # Affiliate token used to create affiliate-coded links.
        },
      },
      &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;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;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;iosIpadFallbackLink&quot;: &quot;A String&quot;, # If specified, this overrides the ios_fallback_link value on iPads.
        &quot;iosIpadBundleId&quot;: &quot;A String&quot;, # iPad 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;iosBundleId&quot;: &quot;A String&quot;, # iOS bundle ID of the app.
        &quot;iosAppStoreId&quot;: &quot;A String&quot;, # iOS App Store ID.
        &quot;iosFallbackLink&quot;: &quot;A String&quot;, # Link to open on iOS if the app is not installed.
        &quot;iosMinimumVersion&quot;: &quot;A String&quot;, # iOS minimum version.
      },
      &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;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;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;androidPackageName&quot;: &quot;A String&quot;, # Android package name of the app.
        &quot;androidLink&quot;: &quot;A String&quot;, # If specified, this overrides the ‘link’ parameter on Android.
        &quot;androidFallbackLink&quot;: &quot;A String&quot;, # Link to open on Android if the app is not installed.
        &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;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.
    },
    &quot;sdkVersion&quot;: &quot;A String&quot;, # Google SDK version. Version takes the form &quot;$major.$minor.$patch&quot;
    &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).
  }

  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;warningMessage&quot;: &quot;A String&quot;, # The warning message to help developers improve their requests.
        &quot;warningDocumentLink&quot;: &quot;A String&quot;, # The document describing the warning, and helps resolve.
        &quot;warningCode&quot;: &quot;A String&quot;, # The warning code.
      },
    ],
  }</pre>
</div>

</body></html>