diff --git a/gatsby-config.js b/gatsby-config.js
index 2deebd9f99..e07338f9f9 100644
--- a/gatsby-config.js
+++ b/gatsby-config.js
@@ -246,6 +246,10 @@ module.exports = {
{
title: "API reference",
path: "/edge/adobe-journey-optimizer/code-based/api-reference"
+ },
+ {
+ title: "Tutorial",
+ path: "/edge/adobe-journey-optimizer/code-based/tutorial"
}
]
},
diff --git a/src/pages/edge/adobe-journey-optimizer/code-based/tabs/tutorial.md b/src/pages/edge/adobe-journey-optimizer/code-based/tabs/tutorial.md
new file mode 100644
index 0000000000..3e708f3940
--- /dev/null
+++ b/src/pages/edge/adobe-journey-optimizer/code-based/tabs/tutorial.md
@@ -0,0 +1,184 @@
+
+
+#### Java
+
+```java
+final Surface surface1 = new Surface("mainActivity#banner");
+final Surface surface2 = new Surface("secondActivity#promotions");
+
+final List surfaces = new ArrayList<>();
+surfaces.add(surface1);
+surfaces.add(surface2);
+
+// fetch propositions from server and cache in-memory
+Messaging.updatePropositionsForSurfaces(surfaces)
+```
+
+
+
+#### Swift
+
+```swift
+let surface1 = Surface("mainActivity#banner")
+let surface2 = Surface("secondActivity#promotions")
+
+/// fetch propositions from server and cache in-memory
+Messaging.updatePropositionsForSurfaces([surface1, surface2])
+```
+
+
+
+#### Java
+
+```java
+final Surface surface1 = new Surface("mainActivity#banner");
+final Surface surface2 = new Surface("secondActivity#promotions");
+
+final List surfaces = new ArrayList<>();
+surfaces.add(surface1);
+surfaces.add(surface2);
+
+Messaging.getPropositionsForSurfaces(surfaces, new AdobeCallbackWithError