Expand my Community achievements bar.

SOLVED

different behavior of adobe.target.applyOffer 1.x vs 2.x

Avatar

Community Advisor

The adobe.target.applyOffer function is used inside the adobe.target.getOffer function.

In at.js 1.x I could still set e.g. "action" with e.g. "replaceContent" in the offer option.

 

If I try the same with at.js 2.x - it doesn't work. If I remove the "action" - then it also works with the at.js 2.x for me.

In source code I also found "replaceContent" with the 2.x - and it should actually work, because the applyOffer function was not changed.

 

Does anyone know the problem? Is it really because of this function? What am I doing wrong? Or is the problem something completely different?

 

Best regards
Perrin

1 Accepted Solution

Avatar

Correct answer by
Level 9
4 Replies

Avatar

Correct answer by
Level 9

Avatar

Community Advisor
That the adobe.target.getOffer() and adobe.target.getOffers() are different is clear to me. But the adobe.target.getOffer() at.js 1.x and adobe.target.getOffer() at.js 2.x - should not really change anything. Nevertheless, if I include in the offer Object an also action with "replaceContent" - target replaces the selector only in the at.js 1.x. In at.js 2.x I see also the response - it seems that the adobe.target.applyOffer has a problem with it in at.js 2.x

Avatar

Community Advisor

Here is a sample code - which works for me accordingly in at.js 1.x - but not in at.js 2.x. If I would remove the action parameter - then it works accordingly in both.

 

var mbox = 'mboxName';
var selector = document.querySelector('.className');

adobe.target.getOffer({
    mbox: mbox,
    success: function (response) {
        adobe.target.applyOffer({
            mbox: mbox,
            offer: [{
                content: response[0].content,
                action: 'replaceContent'
            }],
            selector: selector
        });
    },
    error: function (status, errorMsg) { 
        console.log(status, errorMsg);
    }
});