Hi,
Is anyone know how to access all activities that are running on the same page via javascript on a offer.
Hi Jennifer Huynh,
Can you clarify more about your question? What do you mean by "accessing all activities"?
Thanks,
Gauresh Kodag
I have 3 activities running on home page. In my activity #3 I want to be able to check if any activity running on the same page. If there is, I would like to access the other activity name and store in a cookie
Views
Replies
Total Likes
You can try creating a rule in Adobe launch on library loaded (Page top) event and fire it on Activity URL where you want to run the test (Activity 3)
Add the following custom code for a rule:
document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function(e) {
var tokens = e.detail.responseTokens;
if (isEmpty(tokens)) {
return;
}
var activityNames = [];
var experienceNames = [];
var uniqueTokens = distinct(tokens);
uniqueTokens.forEach(function(token) {
activityNames.push(token["activity.name"]);
experienceNames.push(token["experience.name"]);
});
document.cookie="activityName="+activityNames;
});
function isEmpty(val) {
return (val === undefined || val == null || val.length <= 0) ? true : false;
}
function key(obj) {
return Object.keys(obj)
.map(function(k) { return k + "" + obj[k]; })
.join("");
}
function distinct(arr) {
var result = arr.reduce(function(acc, e) {
acc[key(e)] = e;
return acc;
}, {});
return Object.keys(result)
.map(function(k) { return result[k]; });
}
This will store activity names in a cookie
Let me know if this helps
Thanks,
Gauresh Kodag.
Can I still use this without Adobe Launch?
Views
Replies
Total Likes
You'll need to make changes in the code according to your need. Using it with Launch would be a more efficient way.
Thanks,
Gauresh Kodag.
Views
Replies
Total Likes
I am using inside my html offer via target global mbox.
document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function(e)
(e) always returns undefined.
Thanks
Views
Replies
Total Likes
document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function(e) {
console.log("Request succeeded", e.detail);
});
The addEventListener not firing. I created an activity and put my codes inside an offer via target-global-mbox
Views
Replies
Total Likes
Hi Jennifer,
while adding custom code don't forget to put script inside <script></script> tag as follows.
<script>
document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function(e) {
console.log("Request succeeded", e.detail);
});
</script>
If you try to run and confirm the same code in the console it won't work. as adobe.target.event.REQUEST_SUCCEEDED is same as a load event. if you want to confirm in console, just change adobe.target.event.REQUEST_SUCCEEDED with 'click' as follows.
document.addEventListener('click', function(e) {
console.log("Request succeeded", e.detail);
});
This will show you output in the messages tab in a console after you click anywhere in the body of page.
I tried in my dummy activity it works. You'll be able to see a message in the messages tab inside the console.
Thanks,
Gauresh Kodag
humm
I tried on VEC & form base. None of them work. What version of at.js are you using? I'm using 2.10
Views
Replies
Total Likes
I'm using version 1.7, But I think it should not matter.
Views
Replies
Total Likes
I think we can get a list of all activities getting fired on a page in mbox response token and we can use them to create an audience (profile parameter) which you can use for your activity and store list of activities in a cookie with help of javascript custom code.
Okay, Jennifer Huynh let me check on this.
Thanks,
Gauresh Kodag
Do you think adobe.target.event.CONTENT_RENDERING_SUCCEEDED can be used to here?
I tried it and it get call but event.detail.responseTokens turns undefined. There is not property call responseTokens. Is there a way to work around?
Views
Replies
Total Likes
Hi Jennifer,
I would say it would be tougher for me to discuss it over messages without involving into code level changes in your system environment as your business requirements. Maybe your developer could help much better than me in this. This code must work with few changes as you need.
Or you can reach out to Adobe's client care.
Thanks,
Gauresh kodag.
Views
Replies
Total Likes
Here the issue
The adobe.target.event.REQUEST_SUCCEEDED event is sent out as soon as the response is received from Target, but before the offers are actually applied. The customer included the script that sets up the event listener in a Target offer, thus it's perfectly normal that the event is not intercepted, as the listener is set up after REQUEST_SUCCEEDED event has been already broadcast.
I'd have to put that's scripts on tagging management.
Hi Jennifer,
You can find more information about the response tokens and java script code required to fetch all the Target activities on the page @ Response tokens (you can refer the video available on the page also)
I would recommend you to implement this using Launch because there you get a option to place this code exactly between the events of 'Load Target on the Page' & 'Fire Target on the Page'.
If the code if fired after or before these events then it does not work.
Regards
Skand Gupt
Views
Replies
Total Likes
I'm trying to do the same, and when adding:
document.addEventListener('click', function(e) {
console.log("Request succeeded", e.detail);
});
The only response I get is: Request succeeded 1
I can see the response tokens in the Network call, but I'm unable to access them via the adobe.target object.
Views
Replies
Total Likes
Views
Likes
Replies
Views
Likes
Replies
Views
Like
Replies
Views
Likes
Replies