Skip to main content

Emitters

The emitter is responsible for generating conditional logic in a format that is compatible with the personalization engine. For example, if the edge-side personalization engine with Akamai is used, the emitter should generate conditional logic in the ESI format.

The emitter runs on the Sitecore instance and is used in the following processes:

  • Page rendering
  • Personalization audit

Define emitter#

Emitters are registered in Sitecore config in the section uniform > emitters.

An emitter is implemented using C#. The base type for all emitters is Uniform.Optimize.Emitters.ConditionalLogicEmitter, Uniform.Optimize.core.

Set emitter#

note

Currently, Uniform supports one emitter per Sitecore instance. This means that conditional logic for all sites will use the same emitter.

The emitter can be set in the following ways:

Sitecore config file#

This is the most common option. The setting Uniform.Optimize.Emitters.Default is set to the emitter name. The emitter name is determined by the EmitterType property on the emitter.

Based on how you install Uniform, this setting is usually pre-specified for you. For example, if you install Uniform with edge-side personalization, the emitter will be set to "Esi".

Optimize settings#

  1. In Content Editor, navigate to sitecore > System > Uniform > Optimize > Settings.
  2. Scroll down to the section Personalization.
  3. In the field Emitter, select the emitter you want to use.
    note

    If the list of emitters is empty, see troubleshooting emitter list.

  4. Save the item.
  5. Publish the item.
  6. If you are using a CDN, you must clear the entire site cache. Disabling the emitter affects every page in the site. In order for the change to take effect, the entire cache must be cleared.

Disable emitter#

During testing and troubleshooting you may want to disable the emitter. Use the following steps:

caution

Disabling the emitter will prevent Uniform from generating any conditional logic. This includes personalization, meaning that if you disable the emitter, you are also disabling personalization.

  1. In Content Editor, navigate to sitecore > System > Uniform > Optimize > Settings.
  2. Scroll down to the section Personalization.
  3. Tick the checkbox Disable Emitter.
  4. Save the item.
  5. Publish the item.
  6. If you are using a CDN, you must clear the entire site cache. Disabling the emitter affects every page in the site. In order for the change to take effect, the entire cache must be cleared.

Troubleshooting#

Emitter list is empty#

You can manually select the emitter Uniform uses from Content Editor. But this feature depends on the list of available emitters to be populated.

Verify emitters are defined#

Emitters are defined in Sitecore config in the section uniform > emitters. You should see something like the following in Sitecore config:

note

The specific emitters listed will depend on your Sitecore instance. What you are checking for is that there is at least one emitter is defined.

<emitters type="Uniform.Optimize.Emitters.ConditionalLogicEmitterMap, Uniform.Optimize.Core" singleInstance="true">  <members hint="raw:AddEmitter">    <default name="Default" type="Uniform.Optimize.Emitters.DefaultEmitter, Uniform.Optimize.Core" singleInstance="true"/>    <esi name="Esi" type="Uniform.Optimize.Emitters.EsiEmitter, Uniform.Optimize.Personalization.Esi.Core" resolve="true" singleInstance="true">      <requestChecker ref="uniform/personalization/esi/defaultRequestChecker"/>      <ruleParser ref="uniform/personalization/esi/ruleParser"/>    </esi>  </members></emitters>

If no emitters are defined, this suggests a corrupted Uniform installation because Uniform always includes the "default" emitter. In this case you may need to reinstall Uniform.

Refresh emitter list#

The list is automatically populated during the initialize pipeline. A Sitecore item is added for each of the emitters defined in Sitecore config. In rare cases, the list may not be populated or partially populated. When this happens, you must manually refresh the list.

  1. In Content Editor, navigate to the Uniform tab on the ribbon.

  2. Click the button Refresh emitter list.

  3. After the list is refreshed, a message reports how many emitters were found.