How to trigger custom event in adobe launch rules | Community
Skip to main content
susheel
January 8, 2019
Solved

How to trigger custom event in adobe launch rules

  • January 8, 2019
  • 11 replies
  • 25398 views

We have a scenario where a custom event would be triggered. Now I want to fire a tag when the custom event is triggered. What I did is:

  1. Created a new rule.
  2. In events section I used Custom Event from the dropdown.
  3. filled Custom Event Type with email_submit(This is the custom event triggered via $(window).trigger('email_submit')).
  4. In then section I am triggering one of the extensions(DoubleClick Floodlight).

Note: if the use page top event then everything works fine but not with custom event. Please let me know If I am doing something wrong.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by susheel

For now I have done as below. I will keep on adding all events as I find.

$(window).on('event1 event2 event3',function(e) {

  document.body.dispatchEvent(new CustomEvent(e.type));

});

11 replies

Stewart_Schilling
Community Advisor
Community Advisor
January 8, 2019

There are a few things that I'd try. 

1) I tend to use vanilla JS.  Try one of these (from the JS console) to see if it solves the issue.

Try this if you want to pass a detail payload with the event.

  window.dispatchEvent(new CustomEvent("email_submit", {
  detail: { foo: "1", bar: "2" }
  }));

Or this if you just want the event triggered.

  window.dispatchEvent(new CustomEvent("email_submit"));

Note that if you need to support IE 11, there is a polyfill required for `CustomEvent`.  You'll find it here: https://gomakethings.com/custom-events-with-vanilla-javascript/

2) In DTM, you could not catch a custom event on `window`.  I'm not sure if that's still the case with Launch.

Try dispatching on `body` or any element of your choice.

  body.dispatchEvent(new CustomEvent("email_submit", {

  detail: { foo: "1", bar: "2" }

  }));

You'll need to update your rule in Launch to trigger on `specific element` and `body` as shown below.

susheel
susheelAuthor
January 8, 2019

There is a lot of code written with window trigger in analytics. It would be tough to modify all.

It works fine with body custom events.

Also jquery way of triggering custom event is not working

Stewart_Schilling
Community Advisor
Community Advisor
January 8, 2019

Maybe try `specific elements` and `window`? I haven't gotten around to

trying this in Launch. I'm curious to see if it works for you.

susheel
susheelAuthor
January 8, 2019

window doesn't work We are migrating from SIGNAL to LAUNCH. custom window events work fine there but it is not working here.

Stewart_Schilling
Community Advisor
Community Advisor
January 8, 2019

You could probably create a bit of code that would act as a relay.

I would listen for specific custom events on `window` then re-package and dispatch them on an element of your choice.

susheel
susheelAuthor
January 9, 2019

Yeah I can do that but i am not sure how many custom events we have.

susheel
susheelAuthorAccepted solution
January 9, 2019

For now I have done as below. I will keep on adding all events as I find.

$(window).on('event1 event2 event3',function(e) {

  document.body.dispatchEvent(new CustomEvent(e.type));

});

May 26, 2022

Curious to know where do you add this? As we are also migrating from signal to launch?

Stewart_Schilling
Community Advisor
Community Advisor
January 9, 2019

BTW, I spoke with Aaron at Adobe regarding this.  He confirmed that it does not presently work on window (document is the top level object at present).  He confirmed that listening on window would be desirable and that he would make the case for a fix.  At some point in the near future, you should be able to remove that patch and start listening on window.

susheel
susheelAuthor
January 10, 2019

Thank you so much for your help and registering the case with window object

Adobe Employee
January 10, 2019

> window doesn't work

It's not you, it's us. As @stewarts16448458 noted, we need to fix/improve it on our side and I've logged it internally as an issue.

That said, even when the Custom Event event type begins to support detecting custom events dispatched off the window object, it still probably won't detect events triggered using jQuery (e.g., $(window).trigger('email_submit')). This is because jQuery has its own eventing system that's separate from the native eventing system. Launch only detects events created using the native APIs and doesn't cater to any particular library like jQuery.

May 23, 2022

Does  listening on window work now in Adobe Launch ?

 

Does above work? i.e even when the Custom Event event type begins to support detecting custom events dispatched off the window object, it still probably won't detect events triggered using jQuery

yuhuisg
Community Advisor
Community Advisor
May 28, 2022

I believe Launch's Custom Event event still doesn't work with jQuery's triggered custom events. I assume that this is because jQuery's custom events are not the native Custom Events (reference: https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent).

If my assumption is correct, then you will need to make sure you're dispatching Custom Events, not jQuery events, in order for Launch's Custom Event event to detect them.