Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn more

View all

Sign in to view all badges

SOLVED

Providing Global Functions in an Extension

jimbSprint
Level 3
Level 3

I know Extensions have shared modules where they can be shared with other extension code.  Can the same structure be used in a piece of custom javascript code deployed as an Action?

We have been developing a set of utilities (similar to what we did in DTM) that we are calling "Useful Things Adobe Should Have Cooked Into Launch" (granted, it needs a less unwieldy name!).  We can load in in custom JS and make the functions available at the window level, but if we could cook it all into an Extension it would be easier to deploy across all of our properties.

1 Accepted Solution
StewSchilling
Correct answer by
Community Advisor
Community Advisor

Have you looked at the new event type "Custom Code" that is available in the Core extension?   Seems like just the thing for your needs.

It says "The code you provide in the editor will be run as soon as the library is loaded. Inside your code, call trigger() whenever you would like the rule to fire."

View solution in original post

4 Replies
jimbSprint
Level 3
Level 3

Quick update.  I wrote an extension that has an action that will create a window-level object that has the various utility functions.  Seems to work OK (VERY limited testing) - I was able to execute commands from the console.

The only downside is you have to run the action in, say, a page load rule to make them available.  Is there a place to put code in an extension that runs regardless of whether or not an action is called?

anurban
Employee
Employee
You can just add the action code to a rules condition. This is always being executed.
btripple
Level 2
Level 2

You can use a data element as well and just return a function or object as another option

// data element code

function myFunction(params){

...

}

return myFunction;

var myFunction=_satellite.getVar("dataeleement)("myvalue");

StewSchilling
Correct answer by
Community Advisor
Community Advisor

Have you looked at the new event type "Custom Code" that is available in the Core extension?   Seems like just the thing for your needs.

It says "The code you provide in the editor will be run as soon as the library is loaded. Inside your code, call trigger() whenever you would like the rule to fire."

View solution in original post