Use OfferClass.appLinkData to place an app link at the bottom of all the passes of that class.
One benefit of app linking is that it empowers your call-to-action to navigate
users to your branded experiences from Google Wallet. Links with this feature appear at the bottom
of the Pass.
Feature example
Issuer
Set the app link on your Google Wallet pass
For a given offer, set the field OfferObject.appLinkData
to the URI or Package name of your app or website.
See the format and context of the appLinkData field in the following source code:
The displayText field is limited to 30 characters.
[null,null,["Last updated 2025-09-03 UTC."],[[["\u003cp\u003eThere are four ways to add links to an offer, including using \u003ccode\u003eOfferClass.LinksModuleData\u003c/code\u003e, \u003ccode\u003eOfferObject.LinksModuleData\u003c/code\u003e, \u003ccode\u003eOfferObject.appLinkData\u003c/code\u003e, and \u003ccode\u003eOfferClass.appLinkData\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eApp linking enhances call-to-action by directing users to branded experiences from Google Wallet, with links displayed at the bottom of the Pass.\u003c/p\u003e\n"],["\u003cp\u003eYou can set the \u003ccode\u003eOfferObject.appLinkData\u003c/code\u003e field to the URI or Package name to enable app linking for a specific offer.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eappLinkData\u003c/code\u003e field allows you to specify \u003ccode\u003eandroidAppLinkInfo\u003c/code\u003e and \u003ccode\u003ewebAppLinkInfo\u003c/code\u003e for deep linking into your app or website, with a customizable \u003ccode\u003edisplayText\u003c/code\u003e limited to 30 characters.\u003c/p\u003e\n"],["\u003cp\u003eWhile linking to the Play Store is possible using \u003ccode\u003etargetUri\u003c/code\u003e within \u003ccode\u003eandroidAppLinkInfo\u003c/code\u003e, it's recommended to utilize \u003ccode\u003epackageName\u003c/code\u003e for a direct in-app experience.\u003c/p\u003e\n"]]],["Links can be added to offers in four ways: using `OfferClass.LinksModuleData` for all offers, `OfferObject.LinksModuleData` for a specific offer, `OfferObject.appLinkData` for a particular pass's app link, or `OfferClass.appLinkData` for all passes of that class' app links. App links, which appear at the bottom of the pass, let the user navigate to branded experiences. `OfferObject.appLinkData` accepts app URIs or package names, with `displayText` limited to 30 characters. `webAppLinkInfo` supports deep linking.\n"],null,["# Add link to an Offer\n\nThere are four ways to add links to a offer.\n\n- Use `OfferClass.LinksModuleData` to add links to all offers that are associated with the `OfferClass`.\n- Use `OfferObject.LinksModuleData` to add a link to a specific offer `OfferObject`.\n- Use [OfferObject.appLinkData](/wallet/retail/offers/rest/v1/AppLinkData) to place an app link at the bottom of that particular Pass.\n- Use [OfferClass.appLinkData](/wallet/retail/offers/rest/v1/AppLinkData) to place an app link at the bottom of all the passes of that class.\n\n\nOne benefit of *app linking* is that it empowers your call-to-action to navigate\nusers to your branded experiences from Google Wallet. Links with this feature appear at the bottom\nof the Pass.\n\n### Feature example\n\n|--------|\n| |\n| Issuer |\n\n### Set the app link on your Google Wallet pass\n\nFor a given offer, set the field `OfferObject.appLinkData`\nto the URI or Package name of your app or website.\n\n\nSee the format and context of the `appLinkData` field in the following source code:\nThe `displayText` field is limited to 30 characters.\n**Note:** To deep link to a specific view within an app you must use webAppLinkInfo. \n\n```\n {\n \"id\": string,\n \"classId\": string,\n …\n …\n …\n \"appLinkData\": {\n \"androidAppLinkInfo\": {\n \"appTarget\": {\n \"packageName\": \"com.google.android.gm\",\n }\n },\n \"webAppLinkInfo\": {\n \"appTarget\": {\n \"targetUri\": {\n \"uri\": \"https://mail.google.com/mail/\",\n \"description\": \"Web link for Gmail\"\n }\n }\n }\n \"displayText\": {\n \"defaultValue\": {\n \"value\": \"Our awesome app!\"\n }\n }\n }\n }\n```\nFor posterity the following implementation will also work. \n\n```\n{\n \"id\": string,\n \"classId\": string,\n …\n …\n …\n \"appLinkData\": {\n \"androidAppLinkInfo\": {\n \"appTarget\": {\n \"targetUri\": {\n \"uri\": \"https://play.google.com/store/apps/details?id=com.google.android.gm\",\n \"description\": \"Play store link for Gmail app\"\n }\n }\n }\n }\n}\n```"]]