Skip to main content

OptinMonster GTM Event Listener

Track OptinMonster popup and campaign interactions in GTM. Monitor impressions, conversions, and campaign closes. Capture campaignID and campaignName variables.

optinmonsterpopuplead-generationgtmga4exit-intentemail-capture

Key variable

campaignID

OptinMonster

Overview

OptinMonster is a popular lead generation platform with popup campaigns, floating bars, fullscreen overlays, and inline forms. It exposes a comprehensive JavaScript event API with campaign-level and action-level events.

Events fired:

  • optinmonsterimpression, campaign displayed
  • optinmonsterconversion, form submitted / CTA clicked
  • optinmonsterdismissed, campaign closed

Variables: campaignID, campaignName, campaignType, campaignAction

Common Use Cases

  • Measure popup impression-to-conversion rate per campaign
  • Fire GA4 generate_lead on OptinMonster form submission
  • Build Google Ads audiences from popup viewers
  • A/B test popup designs using campaign ID data in GA4
  • Track exit-intent campaign performance separately from timed popups

Installation

html
<!-- GTM Custom HTML Tag: OptinMonster Listener -->
<script>
(function() {
  var omPushMap = {
    'optinmonster.show': 'optinmonsterimpression',
    'optinmonster.convert': 'optinmonsterconversion',
    'optinmonster.dismiss': 'optinmonsterdismissed'
  };

  document.addEventListener('optinmonster.show', function(e) {
    var d = e.detail || {};
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      'event': 'optinmonsterimpression',
      'campaignID': d.id,
      'campaignName': d.campaign_name,
      'campaignType': d.type
    });
  });

  document.addEventListener('optinmonster.convert', function(e) {
    var d = e.detail || {};
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      'event': 'optinmonsterconversion',
      'campaignID': d.id,
      'campaignName': d.campaign_name,
      'campaignType': d.type,
      'campaignAction': d.action
    });
  });

  document.addEventListener('optinmonster.dismiss', function(e) {
    var d = e.detail || {};
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      'event': 'optinmonsterdismissed',
      'campaignID': d.id,
      'campaignName': d.campaign_name
    });
  });
})();
</script>

Data Layer Output

Impression

json
{
  "event": "optinmonsterimpression",
  "campaignID": "om_12345",
  "campaignName": "Exit Intent Offer",
  "campaignType": "lightbox"
}

Conversion

json
{
  "event": "optinmonsterconversion",
  "campaignID": "om_12345",
  "campaignName": "Exit Intent Offer",
  "campaignAction": "submit"
}

Triggers to Create

Trigger NameEvent Name
CE – OM Impressionoptinmonsterimpression
CE – OM Conversionoptinmonsterconversion
CE – OM Dismissedoptinmonsterdismissed

Variables to Capture

Variable NameDL KeyExample
DLV – OM Campaign IDcampaignID"om_12345"
DLV – OM Campaign NamecampaignName"Exit Intent Offer"
DLV – OM Campaign TypecampaignType"lightbox"

GA4 Mapping

GA4 EventTriggerParameters
view_promotionImpressioncampaign_id, campaign_name, campaign_type
generate_leadConversioncampaign_id, method: "optinmonster"

Related Listeners