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

Pageload tag doesn't fire on hard refresh while using getPercentPageViewed plugin

Avatar

Avatar
Validate 1
Level 2
cathyc18262486
Level 2

Likes

3 likes

Total Posts

14 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Give Back 5
Give Back 3
Give Back
Ignite 1
View profile

Avatar
Validate 1
Level 2
cathyc18262486
Level 2

Likes

3 likes

Total Posts

14 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Give Back 5
Give Back 3
Give Back
Ignite 1
View profile
cathyc18262486
Level 2

16-07-2019

Hello team, we are using the getPercentPageViewed plugin v3.01 and meet the following case:

Installation

1. Added the plugin code in Plugin Section:

/* Adobe Consulting Plugin: getPercentPageViewed v3.01 w/handlePPVevents helper function (Requires AppMeasurement and p_fo plugin) */

s.getPercentPageViewed=function(pid,ch){var s=this,a=s.c_r("s_ppv");a=-1<a.indexOf(",")?a.split(","):[];a[0]=s.unescape(a[0]);

pid=pid?pid:s.pageName?s.pageName:document.location.href;s.ppvChange=ch?ch:!0;if("undefined"===typeof s.linkType||"o"!==

s.linkType)s.ppvID&&s.ppvID===pid||(s.ppvID=pid,s.c_w("s_ppv",""),s.handlePPVevents()),s.p_fo("s_gppvLoad")&&window

.addEventListener&&(window.addEventListener("load",s.handlePPVevents,!1),window.addEventListener("click",s.handlePPVevents, !1),window.addEventListener("scroll",s.handlePPVevents,!1),window.addEventListener("resize",s.handlePPVevents,!1)),s._ppvPreviousPage=a[0]?a[0]:"",s._ppvHighestPercentViewed=a[1]?a[1]:"",s._ppvInitialPercentViewed=a[2]?a[2]:"",s._ppvHighestPixelsSeen=a[3]?a[3]:""};

/* Adobe Consulting Plugin: handlePPVevents helper function (for getPercentPageViewed v3.01 Plugin) */

s.handlePPVevents=function(){if("undefined"!==typeof s_c_il){for(var c=0,d=s_c_il.length;c<d;c++)if(s_c_il[c]&&s_c_il[c].getPercentPageViewed){var a=s_c_il[c];break}if(a&&a.ppvID){var f=Math.max(Math.max(document.body.scrollHeight,document.documentElement.scrollHeight),Math.max(document.body.offsetHeight,document.documentElement.offsetHeight),Math.max(document.

body.clientHeight,document.documentElement.clientHeight));c=(window.pageYOffset||window.document.documentElement.scrollTop||window.document.body.scrollTop)+(window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight);d=Math.min(Math.round

(c/f*100),100);var e="";!a.c_r("s_tp")||a.unescape(a.c_r("s_ppv").split(",")[0])!==a.ppvID||1==a.ppvChange&&

a.c_r("s_tp")&&f!= a.c_r("s_tp")?(a.c_w("s_tp",f),a.c_w("s_ppv","")):e=a.c_r("s_ppv");var b=e&&-1<e.indexOf(",")?e.split(",",4):[];f=0<b.length?b[0]:escape(a.ppvID);var g=1<b.length?parseInt(b[1]):d,h=2<b.length?parseInt(b[2]):d;b=3<b.length?parseInt(b[3]):c;0<d&&(e=f+","+(d>g?d:g)+","+h+","+(c>b?c:b));a.c_w("s_ppv",e)}}};

/* Adobe Consulting Plugin: p_fo (pageFirstOnly) v2.0 (Requires AppMeasurement) */

s.p_fo=function(on){var s=this;s.__fo||(s.__fo={});if(s.__fo[on])return!1;s.__fo[on]={};return!0};

2. Added initialization code in doPlugin section:

    if(s.pageName)

        s.getPercentPageViewed();

    if(s._ppvPreviousPage)

        s.eVar10 = s._ppvHighestPercentViewed;

Testing

When the page is loading all is okay - pageview tag fires. But when you do hard refresh (ctrl + f5) - pageview tag doesn't load. I strongly confident it's cased by this plugin because if we disable it, the problem doesn't appear.

Can someone please describe why it happens and how to fix it.

Replies

Avatar

Avatar
Validate 1
Level 5
kumararajak
Level 5

Likes

119 likes

Total Posts

94 posts

Correct Reply

16 solutions
Top badges earned
Validate 1
Boost 50
Boost 5
Boost 3
Boost 25
View profile

Avatar
Validate 1
Level 5
kumararajak
Level 5

Likes

119 likes

Total Posts

94 posts

Correct Reply

16 solutions
Top badges earned
Validate 1
Boost 50
Boost 5
Boost 3
Boost 25
View profile
kumararajak
Level 5

16-07-2019

Hi Cathy,

Please use the below code

var loadRule = true; if(window.performance)

{ //Reload of page if(performance.navigation.type  == 1 ){ loadRule = false; } } return loadRule;

Also, put this custom code in a Data Element to reuse it in all of your rules: example data element : loadRule

//Place in condition of any rule return _satellite.getVar("loadRule");

Regards,
Kumararaja K

Avatar

Avatar
Validate 1
Level 2
cathyc18262486
Level 2

Likes

3 likes

Total Posts

14 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Give Back 5
Give Back 3
Give Back
Ignite 1
View profile

Avatar
Validate 1
Level 2
cathyc18262486
Level 2

Likes

3 likes

Total Posts

14 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Give Back 5
Give Back 3
Give Back
Ignite 1
View profile
cathyc18262486
Level 2

16-07-2019

It doesn't work

Avatar

Avatar
Validate 1
Level 5
kumararajak
Level 5

Likes

119 likes

Total Posts

94 posts

Correct Reply

16 solutions
Top badges earned
Validate 1
Boost 50
Boost 5
Boost 3
Boost 25
View profile

Avatar
Validate 1
Level 5
kumararajak
Level 5

Likes

119 likes

Total Posts

94 posts

Correct Reply

16 solutions
Top badges earned
Validate 1
Boost 50
Boost 5
Boost 3
Boost 25
View profile
kumararajak
Level 5

17-07-2019

Dear Cathy,

Try the below code, also can you share link to explore your issue.

/*

* Plugin: getPreviousValue_v1.0 - return previous value of designated

*   variable (requires split utility)

*/

s.getPreviousValue=new Function("v","c","el",""

+"var s=this,t=new Date,i,j,r='';t.setTime(t.getTime()+1800000);if(el"

+"){if(s.events){i=s.split(el,',');j=s.split(s.events,',');for(x in i"

+"){for(y in j){if(i[x]==j[y]){if(s.c_r(c)) r=s.c_r(c);v?s.c_w(c,v,t)"

+":s.c_w(c,'no value',t);return r}}}}}else{if(s.c_r(c)) r=s.c_r(c);v?"

+"s.c_w(c,v,t):s.c_w(c,'no value',t);return r}");

/*

* Utility Function: split v1.5 - split a string (JS 1.0 compatible)

*/

s.split=new Function("l","d",""

+"var i,x=0,a=new Array;while(l){i=l.indexOf(d);i=i>-1?i:l.length;a[x"

+"++]=l.substring(0,i);l=l.substring(i+d.length);}return a");

/* Adobe Consulting Plugin: getPercentPageViewed v3.01 w/handlePPVevents helper function (Requires AppMeasurement and p_fo plugin) */

s.getPercentPageViewed=function(pid,ch){var s=this,a=s.c_r("s_ppv");a=-1<a.indexOf(",")?a.split(","):[];a[0]=s.unescape(a[0]);

pid=pid?pid:s.pageName?s.pageName:document.location.href;s.ppvChange=ch?ch:!0;if("undefine d"===typeof s.linkType||"o"!==

s.linkType)s.ppvID&&s.ppvID===pid||(s.ppvID=pid,s.c_w("s_ppv",""),s.handlePPVevents()),s.p _fo("s_gppvLoad")&&window

.addEventListener&&(window.addEventListener("load",s.handlePPVevents,!1),window.addEventLi stener("click",s.handlePPVevents, !1),window.addEventListener("scroll",s.handlePPVevents,!1),window.addEventListener("resiz e",s.handlePPVevents,!1)),s._ppvPreviousPage

=a[0]?a[0]:"",s._ppvHighestPercentViewed=a[1]?a[1]:"",s._ppvInitialPercentViewed=a[2]?a[2] :"",s._ppvHighestPixelsSeen=a[3]?a[3]:""};

/* Adobe Consulting Plugin: handlePPVevents helper function (for getPercentPageViewed v3.01 Plugin) */

s.handlePPVevents=function(){if("undefined"!==typeof s_c_il){for(var c=0,d=s_c_il.length;c<d;c++)if(s_c_il[c]&&

s_c_il[c].getPercentPageViewed){var a=s_c_il[c];break}if(a&&a.ppvID){var f=Math.max(Math.max(document.body.scrollHeight,

document.documentElement.scrollHeight),Math.max(document.body.offsetHeight,document.docume ntElement.offsetHeight),Math.max(document.

body.clientHeight,document.documentElement.clientHeight));c=(window.pageYOffset||window.do cument.documentElement.scrollTop||window.document.body.scrollTop)+(window.innerHeight||doc ument.documentElement.clientHeight||document.body.clientHeight);d=Math.min(Math.round

(c/f*100),100);var e="";!a.c_r("s_tp")||a.unescape(a.c_r("s_ppv").split(",")[0])!==a.ppvID||1==a.ppvChange&&

a.c_r("s_tp")&&f!= a.c_r("s_tp")?(a.c_w("s_tp",f),a.c_w("s_ppv","")):e=a.c_r("s_ppv");var b=e&&-1<e.indexOf(",")?e.split(",",4):[];f=0<b.length?b[0]:

escape(a.ppvID);var g=1<b.length?parseInt(b[1]):d,h=2<b.length?parseInt(b[2]):d;b=3<b.length?parseInt(b[3]):c ;0<d&&(e=f+","

+(d>g?d:g)+","+h+","+(c>b?c:b));a.c_w("s_ppv",e)}}};

/* Adobe Consulting Plugin: p_fo (pageFirstOnly) v2.0 (Requires AppMeasurement) */

s.p_fo=function(on){var s=this;s.__fo||(s.__fo={});if(s.__fo[on])return!1;s.__fo[on]={};return!0};

Regards,

Kumararaja K

Avatar

Avatar
Validate 1
Level 2
cathyc18262486
Level 2

Likes

3 likes

Total Posts

14 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Give Back 5
Give Back 3
Give Back
Ignite 1
View profile

Avatar
Validate 1
Level 2
cathyc18262486
Level 2

Likes

3 likes

Total Posts

14 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Give Back 5
Give Back 3
Give Back
Ignite 1
View profile
cathyc18262486
Level 2

17-07-2019

Thanks kumararajak but you just copy/paste code from plugin installation page, we've already implemented the same code.

Avatar

Avatar
Validate 1
Level 5
kumararajak
Level 5

Likes

119 likes

Total Posts

94 posts

Correct Reply

16 solutions
Top badges earned
Validate 1
Boost 50
Boost 5
Boost 3
Boost 25
View profile

Avatar
Validate 1
Level 5
kumararajak
Level 5

Likes

119 likes

Total Posts

94 posts

Correct Reply

16 solutions
Top badges earned
Validate 1
Boost 50
Boost 5
Boost 3
Boost 25
View profile
kumararajak
Level 5

17-07-2019

Dear Cathy,

This below part was missing in the question you posted.

/*

* Plugin: getPreviousValue_v1.0 - return previous value of designated

*   variable (requires split utility)

*/

s.getPreviousValue=new Function("v","c","el",""

+"var s=this,t=new Date,i,j,r='';t.setTime(t.getTime()+1800000);if(el"

+"){if(s.events){i=s.split(el,',');j=s.split(s.events,',');for(x in i"

+"){for(y in j){if(i[x]==j[y]){if(s.c_r(c)) r=s.c_r(c);v?s.c_w(c,v,t)"

+":s.c_w(c,'no value',t);return r}}}}}else{if(s.c_r(c)) r=s.c_r(c);v?"

+"s.c_w(c,v,t):s.c_w(c,'no value',t);return r}");

/*

* Utility Function: split v1.5 - split a string (JS 1.0 compatible)

*/

s.split=new Function("l","d",""

+"var i,x=0,a=new Array;while(l){i=l.indexOf(d);i=i>-1?i:l.length;a[x"

+"++]=l.substring(0,i);l=l.substring(i+d.length);}return a");

So, i thought adding it might solve.

Regards,

Kumararaja K

Avatar

Avatar
Validate 1
Level 2
cathyc18262486
Level 2

Likes

3 likes

Total Posts

14 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Give Back 5
Give Back 3
Give Back
Ignite 1
View profile

Avatar
Validate 1
Level 2
cathyc18262486
Level 2

Likes

3 likes

Total Posts

14 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Give Back 5
Give Back 3
Give Back
Ignite 1
View profile
cathyc18262486
Level 2

17-07-2019

The problem only in the pageview tag that doesn't fire on hard refresh.

Avatar

Avatar
Boost 50
Level 5
ashokkumarm
Level 5

Likes

85 likes

Total Posts

55 posts

Correct Reply

12 solutions
Top badges earned
Boost 50
Boost 5
Boost 3
Boost 25
Boost 10
View profile

Avatar
Boost 50
Level 5
ashokkumarm
Level 5

Likes

85 likes

Total Posts

55 posts

Correct Reply

12 solutions
Top badges earned
Boost 50
Boost 5
Boost 3
Boost 25
Boost 10
View profile
ashokkumarm
Level 5

20-07-2019

Cathy,

Plug-in code is correct only.

When you hard refresh your website it sets previous page value as null, because hard refresh erases the cookies.

You need to correct your initialization code not plug-in code.

Regards

Ashok

Avatar

Avatar
Validate 1
Level 2
cathyc18262486
Level 2

Likes

3 likes

Total Posts

14 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Give Back 5
Give Back 3
Give Back
Ignite 1
View profile

Avatar
Validate 1
Level 2
cathyc18262486
Level 2

Likes

3 likes

Total Posts

14 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Give Back 5
Give Back 3
Give Back
Ignite 1
View profile
cathyc18262486
Level 2

23-07-2019

Thanks for answer. The initialization is the following:

    if(s.pageName) 

        s.getPercentPageViewed(); 

    if(s._ppvPreviousPage) 

        s.eVar10 = s._ppvHighestPercentViewed; 

As you can see, we check previous value.

Avatar

Avatar
Boost 50
Level 5
ashokkumarm
Level 5

Likes

85 likes

Total Posts

55 posts

Correct Reply

12 solutions
Top badges earned
Boost 50
Boost 5
Boost 3
Boost 25
Boost 10
View profile

Avatar
Boost 50
Level 5
ashokkumarm
Level 5

Likes

85 likes

Total Posts

55 posts

Correct Reply

12 solutions
Top badges earned
Boost 50
Boost 5
Boost 3
Boost 25
Boost 10
View profile
ashokkumarm
Level 5

23-07-2019

Hi Cathy,

Try this below code to enable getpercentviewed function. I have validated both s.pagename and s._ppvPreviouspage in first condition.

    if(s.pageName && s._ppvPreviousPage)

        s.getPercentPageViewed();

    if(s._ppvPreviousPage)

        s.eVar10 = s._ppvHighestPercentViewed;

Regards

Ashok