diff --git a/lms/djangoapps/learner_dashboard/programs.py b/lms/djangoapps/learner_dashboard/programs.py
index 5ca6c548f037bca5b1a4310b32de18861868cc91..e2510d42fe9c88d4faf52c0a705f68b4959a15fd 100644
--- a/lms/djangoapps/learner_dashboard/programs.py
+++ b/lms/djangoapps/learner_dashboard/programs.py
@@ -48,7 +48,7 @@ class ProgramsFragmentView(EdxFragmentView):
         meter = ProgramProgressMeter(request.site, user, mobile_only=mobile_only)
 
         context = {
-            'marketing_url': get_program_marketing_url(programs_config),
+            'marketing_url': get_program_marketing_url(programs_config, mobile_only),
             'programs': meter.engaged_programs,
             'progress': meter.progress()
         }
diff --git a/lms/djangoapps/learner_dashboard/tests/test_programs.py b/lms/djangoapps/learner_dashboard/tests/test_programs.py
index 1a63165790d792f9c54611c08bc4dce4b5acaa06..f52459f0bd0ca54786995f695dead9983369acad 100644
--- a/lms/djangoapps/learner_dashboard/tests/test_programs.py
+++ b/lms/djangoapps/learner_dashboard/tests/test_programs.py
@@ -162,6 +162,18 @@ class TestProgramListing(ProgramsApiConfigMixin, SharedModuleStoreTestCase):
         response = self.client.get(self.url)
         self.assertContains(response, marketing_root)
 
+    def test_mobile_marketing_url(self, mock_get_programs):
+        """
+        Verify that a link to a programs marketing for mobile appears in the response.
+        """
+        self.create_programs_config(marketing_path='bar')
+        mock_get_programs.return_value = self.data
+
+        mobile_marketing_url = 'edxapp://course?programs'
+
+        response = self.client.get('/dashboard/programs_fragment/?mobile_only=true')
+        self.assertContains(response, mobile_marketing_url)
+
     def test_links_to_detail_pages(self, mock_get_programs):
         """
         Verify that links to detail pages are present.
diff --git a/openedx/core/djangoapps/programs/utils.py b/openedx/core/djangoapps/programs/utils.py
index f5fae79540c7929d1439d79484fbdb968454462c..5624871d9e511b0f21fbbdbc871f953cdbd6aae7 100644
--- a/openedx/core/djangoapps/programs/utils.py
+++ b/openedx/core/djangoapps/programs/utils.py
@@ -45,9 +45,14 @@ DEFAULT_ENROLLMENT_START_DATE = datetime.datetime(1900, 1, 1, tzinfo=utc)
 log = logging.getLogger(__name__)
 
 
-def get_program_marketing_url(programs_config):
+def get_program_marketing_url(programs_config, mobile_only=False):
     """Build a URL used to link to programs on the marketing site."""
-    return urljoin(settings.MKTG_URLS.get('ROOT'), programs_config.marketing_path).rstrip('/')
+    if mobile_only:
+        marketing_url = 'edxapp://course?programs'
+    else:
+        marketing_url = urljoin(settings.MKTG_URLS.get('ROOT'), programs_config.marketing_path).rstrip('/')
+
+    return marketing_url
 
 
 def attach_program_detail_url(programs, mobile_only=False):