
Security News
PEP 810 Proposes Explicit Lazy Imports for Python 3.15
An opt-in lazy import keyword aims to speed up Python startups, especially CLIs, without the ecosystem-wide risks that sank PEP 690.
@evolv-delivery/audience
Advanced tools
Allows audience filters to be populated from datalayer, cookie, fetch and dom
The audience integration supports populating the Evolv context object with values that are extracted from the browser via several mechanisms.
Please use @evolv-delivery/metrics instead. The metrics
package includes all the features as the audience
package and represents the future direction for this integration.
Adding an integration to the Evolv Manager
The main requirements for the config are objects indexed by a context attribute where the objects contain source
and key
.
The top level keys of the json config indicate one of two things and both have object values.
source
and key
field that have string values.source
and key
field. This will results in each attribute of the object representing a context attribute.The following is a table showing the different types for the attributes:
Source | Key (usage) | Description |
---|---|---|
query | name of query parameter | The value of the query parameter within th url |
expression | js expression | The experssion usually |
cookie | cookie name | Return value of cookie |
localStorage | localStorage key | Return value of localStorage key |
sessionStorage | sessionStorage key | Return value of sessionStorage key |
dom | css selector | Returns found if dom element exists on page |
jqdom | jqery selector | Returns found if dom element exists on page |
extension | name of extension | Currenty only one extension distribution : tracks a random value between 0-100 that persists for user |
fetch | url | This also includes additional data |
If a page
is specified, it's value represents a regex on the current url that if specified, the attribute will only be evaluated upon the page
matching. This helps to focus page specific attributes that may be slow in retrieval.
If a type
attribute is specified, it's value represents the type of the value of the attribute. By default, the type is assumed to be string. The following are the types available:
The map
is represented as an array of objects that allows the value of the attribute to be transformed. Those mappings have
one of 3 json keys:
default
can be used as result as the last map value. There should be no when
value for default
.The storage
is an object indicating that the value should be cached with the following options:
evolv:
)(local|session)
indicating localStorage or sessionStorage (defaults to session
)(new|cached|union)
indicates how to resolve which value to use when there is both a new value and a cached value. (defaults to new
)If the spa
value is set to true
, the attribute will be reevaluated upon any spa based navigation.
If a value is not imediately available when the integration is processed, a poll can be specified to periodically reevaluate the attribute until it is detected or poll duration expires.
This allows a value to be specified that will be added to the context imediately if the attribute is not available yet. It will be overriden if the poll
is set and the value becomes available.
The config is read top to bottom. If a match is found, it stops. No fall-through, so in the example below if the path of the page starts with /home/
, nothing will happen, because the statements block is an empty array.
The following shows examples of each of the type and options available.
{
"ctas": {
"placeOrder": {
"page": "sales/digital/expressCheckout",
"source": "dom",
"key": "button[aria-label*='Place order']",
"poll": {
"interval": 100,
"duration": 5000
}
}
},
"omni": {
"visitorId": {
"source": "expression",
"key": "window._satellite.getVisitorId()._fields.MCMID"
}
},
"recognizedUser": {
"source": "cookie",
"key": "user",
"type": "boolean",
"default": false,
"map": [
{
"result": true,
"when": ".+"
}
]
},
"campaign": {
"source": {
"source": "query",
"key": "utm_source"
},
"medium": {
"source": "query",
"key": "utm_medium"
}
},
"page": {
"landingTag": {
"source": "expression",
"key": "location.pathname",
"default": "none",
"storage": {
"type": "session",
"key": "landingTag",
"resolveWith": "cached"
},
"map": [
{
"result": "products",
"when": "/products/"
}
]
}
}
}
FAQs
Allows audience filters to be populated from datalayer, cookie, fetch and dom
The npm package @evolv-delivery/audience receives a total of 2 weekly downloads. As such, @evolv-delivery/audience popularity was classified as not popular.
We found that @evolv-delivery/audience demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
An opt-in lazy import keyword aims to speed up Python startups, especially CLIs, without the ecosystem-wide risks that sank PEP 690.
Security News
Socket CEO Feross Aboukhadijeh discusses the recent npm supply chain attacks on PodRocket, covering novel attack vectors and how developers can protect themselves.
Security News
Maintainers back GitHub’s npm security overhaul but raise concerns about CI/CD workflows, enterprise support, and token management.