Jan 27th 2021: Some Marketo users who will be affected by Associate Lead deprecation received an email notification in error indicating that they have the Munchkin Beta setting enabled on one or more of their instances. This release will be held until the correct audience can be notified.
Beginning with version 160 of the Munchkin JavaScript, the Beacon API will become the default way that Munchkin communicates with the Marketo backend. This became available as an option in Summer 2020 with the release of version 159 via the useBeaconAPI configuration parameter. The Beacon API has several advantages over using the old XMLHttpRequest method, but the principal improvement is that it is a non-blocking asynchronous API for HTTP communication which is available for use in all modern internet browsers. While most users of Munchkin will not notice a change in website behavior, this update will prevent Munchkin from blocking navigation while waiting to submit a click event to the backend, or more simply, this all but eliminates the possibility of Munchkin causing a browser to “hang” after clicking a link to a new page. This has been a rare but frustrating occurrence for some Marketo customers.
As of Jan 27th 2021, the rollout of this version is on hold pending rescheduling.
While no problems related to this change are anticipated, and none have been identified while testing, it is impossible for Marketo to test all possible deployment configurations of Munchkin and you may wish to test these changes beforehand or forego this change until general availability of this version. Instructions for various scenarios are presented below.
Test Beacon API
If you wish to test the updated Beacon API in anticipation of the upcoming version, you can do so, by adding the useBeaconAPI parameter to your Munchkin configuration on an external test page. This test will work with either the generally available or beta version of Munchkin. The configuration paraemeter is shown below in the second argument of the invocation of the Munchkin.init() method on line 7:
{ ‘useBeaconAPI’: true}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<script type="text/javascript"> (function() { var didInit = false; function initMunchkin() { if(didInit === false) { didInit = true; Munchkin.init('299-BYM-827', {"useBeaconAPI":true}); } } var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = '//munchkin.marketo.net/munchkin.js'; s.onreadystatechange = function() { if (this.readyState == 'complete' || this.readyState == 'loaded') { initMunchkin(); } }; s.onload = initMunchkin; document.getElementsByTagName('head')[0].appendChild(s); })(); </script> |
Disable Munchkin Beta on Marketo Landing Pages
To disable Munchkin Beta on Marketo landing pages, you will need to access your Treasure Chest menu in the Admin section of your subscription and change the Munchkin Beta on Landing Pages setting to disabled.
Disable Munchkin Beta on External Pages
If you have deployed the Beta version of Munchkin JavaScript to external web pages, and wish to forego this change until it is generally available, you will need to alter your Munchkin JS snippet to target the munchkin.js file instead of the munchkin-beta.js file. In the example below, this is the value of the s.src variable on line 13. Your snippet may not closely resemble the example, or may be deployed by a tag manager on your external pages and you may need to reach out to your IT resources or whomever manages your websites with Munchkin tracking enabled.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<script type="text/javascript"> (function() { var didInit = false; function initMunchkin() { if(didInit === false) { didInit = true; Munchkin.init('299-BYM-827'); } } var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = '//munchkin.marketo.net/munchkin.js';//This line should have the munchkin.js file, not munchkin-beta.js s.onreadystatechange = function() { if (this.readyState == 'complete' || this.readyState == 'loaded') { initMunchkin(); } }; s.onload = initMunchkin; document.getElementsByTagName('head')[0].appendChild(s); })(); </script> |