Hi All,
I want to implement getoffers/applyoffers on my website (non SPA) but need to understand terminology use in implementation
In getoffers()/applyoffers() I can use any one of the below functionality in implementing the code
Request > prefetch vs Request > execute
I need to understand
1) the difference between both the functionality (prefetch vs execute)
2) When to use either of them
3) How it will impact the delivery
4) Can we use it in combination like in getoffers() I use (prefetch) and in applyoffers() I use (execute)
I have read Adobe document but it didn't clear my questions
experienceleague.adobe.com/docs/target/using/implement-target/client-side/at-js-implementation/functions-overview/adobe-target-getoffers-atjs-2.html?lang=en
Solved! Go to Solution.
Views
Replies
Total Likes
Hi @avez
Hope you read the how at.js works at client side. Just to give you little context
Adobe Target at.js 2.x uses new API called Delivery API to retrieve optimized and personalized content from Target and showing to end user.
This API is based on REST - ( if you not sure about rest then this guide will help What is REST? ).
Prefetch -> It allows clients like mobile apps and servers to fetch content for multiple mboxes or views(for Single page Application) in one request, cache it locally, and later notify Target when the user visits those mboxes or views.
Execute -> The execute part of the request that will be evaluated on the server side immediately.
(Rendering part).
The prefetch mode can only be used for AB and XT activities.
you can able to see the network call in your browser like below or filter out with delivery
at.js 2.x - http://<client code>.tt.omtrdc.net/rest/v1/delivery
When you used prefetch, in response you can see content field contain the experience to show the user for a particular mbox. This is very useful when cached on your server so that when a user interacts with your web or mobile application within a session and visits an mbox on any particular page of your application, the experience can be delivered from the cache instead of making another Adobe Target Delivery API call. However, when an experience is delivered to the user from the mbox, a notification will be sent via a Delivery API call in order for impression logging to occur. This is because the response of prefetch calls are cached, which means that the user has not seen the experiences at the time the prefetch call happens.
I would recommend to read more about delivery api.
Hope this helps.
Hi @avez
adobe.target.getOffers(options) and adobe.target.applyOffers(options) both the functions introduced in at.js 2.x version.
Ideally, when you're trying to setup any experience on your website through adobe target, you need to implement at.js, I would suggest please check how at.js works and it's architecture.
When you called getOffer() or getOffers() that means you're prefetching the offer from Target and you'll get the response once the request successfully made.
Once you have the response then call either applyOffer() or applyOffers() for rendering or executing that offer on the page or use your own custom success handle function.
please see below example.
adobe.target.getOffer({ "mbox": "target-global-mbox", "params": { "a": 1, "b": 2 }, "success": function(offer) { adobe.target.applyOffer( { "mbox": "target-global-mbox", "offer": offer } ); }, "error": function(status, error) { console.log('Error', status, error); } });
using Custom success call,
adobe.target.getOffer({ "mbox": "target-global-mbox", "success": function(offer) { YOUR_OWN_CUSTOM_HANDLING_FUNCTION(offer); }, "error": function(status, error) { console.log('Error', status, error); }, "timeout": 2000 });
Note: getOffer() is used for single mbox request and getOffers() is used for multiple mbox request in same call and same for applyOffer.
Hope this helps.
Views
Replies
Total Likes
Hi Gokula
Thanks for the reply. But this is not what i am looking for.
What I am looking here is difference between
Request > prefetch vs Request > execute in getoffers()/applyoffers()
Also, how it will impact activity content delivery.
1) the difference between both the functionality (prefetch vs execute)
2) When to use either of them
3) How it will impact the delivery
4) Can we use it in combination like in getoffers() I use (prefetch) and in applyoffers() I use (execute)
I have seen few examples were code is using Request > prefetch in both getoffers()/applyoffers() same time and
few examples using Request > execute in both getoffers()/applyoffers() same times
Views
Replies
Total Likes
Hi @avez
Hope you read the how at.js works at client side. Just to give you little context
Adobe Target at.js 2.x uses new API called Delivery API to retrieve optimized and personalized content from Target and showing to end user.
This API is based on REST - ( if you not sure about rest then this guide will help What is REST? ).
Prefetch -> It allows clients like mobile apps and servers to fetch content for multiple mboxes or views(for Single page Application) in one request, cache it locally, and later notify Target when the user visits those mboxes or views.
Execute -> The execute part of the request that will be evaluated on the server side immediately.
(Rendering part).
The prefetch mode can only be used for AB and XT activities.
you can able to see the network call in your browser like below or filter out with delivery
at.js 2.x - http://<client code>.tt.omtrdc.net/rest/v1/delivery
When you used prefetch, in response you can see content field contain the experience to show the user for a particular mbox. This is very useful when cached on your server so that when a user interacts with your web or mobile application within a session and visits an mbox on any particular page of your application, the experience can be delivered from the cache instead of making another Adobe Target Delivery API call. However, when an experience is delivered to the user from the mbox, a notification will be sent via a Delivery API call in order for impression logging to occur. This is because the response of prefetch calls are cached, which means that the user has not seen the experiences at the time the prefetch call happens.
I would recommend to read more about delivery api.
Hope this helps.
Thanks @Gokul_Agiwal it really helped me to clear my doubts
Views
Like
Replies