How to Minify Google AdSense JS? - javascript

Whenever I minify the AdSense script I got from Google, it stops working. Any ideas why?
Original Code:
<script type="text/javascript"><!--
google_ad_client = "xxx";
/* Ad 1 */
google_ad_slot = "2668798369";
google_ad_width = 160;
google_ad_height = 600;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
Minified Code:
<script type="text/javascript"><!--google_ad_client = "xxx";/* Ad 1 */google_ad_slot = "2338787596";google_ad_width = 200;google_ad_height = 200;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
The minification is being done by Smarty's {strip} tags.

The problem is the HTML comment tags at the start and end of the first script tag. You don't need them, they're just there to work around Netscape 1.0
Try replacing your minified script with this
<script type="text/javascript">google_ad_client="xxx";google_ad_slot="2668798369";google_ad_width=160;google_ad_height=600;</script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

i think you left out this part:
//-->

Try to remove the <!--
Hope it helps

It'll be the <!-- - this can mean 'treat this line as a comment'. It's an old compatibility hack for browers that didn't support JavaScript.
Either remove it or add a linebreak afterwards, i.e.
<script type="text/javascript"><!--
google_ad_client="xxx"; ...
though I can't see what minifying here is gaining you - there's nothing that can be renamed or compressed.

Look out for this:
<!-- and -->

Related

Error with Google Adsense on Firefox console

I have been trying to add this to my page and I am getting this error in Firefox under the JS errors section.
An unsupported character encoding was declared for the HTML document using a meta tag. The declaration was ignored.
My code is below
<script type="text/javascript"><!--
google_ad_client = "ca-pub-12345678987654321";
/* OAS home */
google_ad_slot = "123456789";
google_ad_width = 120;
google_ad_height = 240;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
The error is related to the section of your document, you're using a bad character encoding I guess, ( see http://www.w3schools.com/tags/att_meta_charset.asp )
Consider adding head section code for further help.

why my following fiddle giving output without any print call?

I have one piece of code as:
<script type="text/javascript"><!--
google_ad_client = "ca-pub-8514414755716493";
/* AdX_Washington_Examiner */
google_ad_slot = "9465392777";
google_ad_width = 320;
google_ad_height = 50;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
Why this code is giving output as "}//]]>" ??
I have not written any print call still it is giving output..
Here is my fiddle link http://jsfiddle.net/akshaynikte/ryLPf/6/#
Here are a few excerpts from the jsFiddle documentation page :
The JavaScript panel
Code entered in this panel will be placed in header’s script block,
that is between <script type="text/javascript"> and </script>.
The Add Resources section
CSS or JS (with appropriate extension) which should be loaded after
the framework. It’s a perfect place to put libraries which are
framework independent, like RaphaelJS
So, the correct way to work with the script in your question would be:
Add the following to the JavaScript panel.
<!--
google_ad_client = "ca-pub-8514414755716493";
/* AdX_Washington_Examiner */
google_ad_slot = "9465392777";
google_ad_width = 320;
google_ad_height = 50;
-->
Add http://pagead2.googlesyndication.com/pagead/show_ads.js to the Add resources section on the left side of the page.
Here's a link to a properly configured sample: http://jsfiddle.net/edywd/.
It seems to be a bug on fiddler (or that it doesn't allow script tags on javascript panel) , if you change the script to anything else, you'll see that it happens the same.
You should place your script on HTML panel, that works fine according my tests.
<script type="text/javascript"><!--
google_ad_client = "ca-pub-8514414755716493";
/* AdX_Washington_Examiner */
google_ad_slot = "9465392777";
google_ad_width = 320;
google_ad_height = 50;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
you cant use script tags in js textarea of jsfiddle,it is js only, if you want use script tags , put them in the html textarea of jsfiddle

Calling function to execute javascript code

I would like to place a javascript (adsense) code inside the post (not above or after the post). It will be a HTML page.
Is there any way i can put my adsense code in external Js file and i will use one function to display it.
adsense code looks something like
<script type="text/javascript"><!--
google_ad_client = "pub-xxxxxxxxxxxxxxxx";
google_ad_host = "pub-xxxxxxxxxxxxxxxx";
google_ad_slot = "xxxxxxxxxx";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
So if i call a function CallMe() which will start showing ad wherever i have used the function. In future if i would like to replace ad code with another code then i dont want to go to each post and replace it. I will just replace the adcode from js file.
I am a newbie and have just started learning JavaScript so i am really not aware if it can be done or not.
Any suggestion ?
Create file called AdSense.js with the following code:
google_ad_client = "pub-xxxxxxxxxxxxxxxx";
google_ad_host = "pub-xxxxxxxxxxxxxxxx";
google_ad_slot = "xxxxxxxxxx";
google_ad_width = 336;
google_ad_height = 280;
function ApplyAdSense() {
var oScript = document.createElement("script");
oScript.type = "text/javascript";
oScript.src = "http://pagead2.googlesyndication.com/pagead/show_ads.js";
document.getElementsByTagName("head")[0].appendChild(oScript);
}
Now whenever you want adsense in your code, first include the file:
<script type="text/javascript" src="AdSense.js"></script>
Then call the function:
<script type="text/javascript">
ApplyAdSense();
</script>
This way, until you call the function nothing happens.. and you can also comment the code inside the function to disable adsense throughout all your site.
Wherever you want the ad to show up, place this code (assuming you have a function called CallMe).
<some html>
<script type="text/javascript">CallMe();</script>
</some html>
If your concern is about the page loading time, Adsense released the asynchronous version of their Adsense code. Please see https://support.google.com/adsense/answer/3221666?hl=en

Including JavaScript at runtime is not working in IE8

The below piece of code was working in IE6 & IE7 and almost all versions of FF. It just don't work in IE8. It doesn't work in the sense once I added the script tag in to HTML->HEAD element I don't see the script being loaded in the browser(the alerts in the script doesn't show up). I see the tags have been inserted in the HTML-HEAD though.
var head = document getElementsByTagName('head')[0];
// Check if the script is already loaded.
if (head ){
var script = document.createElement('script');
script.type = 'text/javascript';
script.language = 'JavaScript';
script.src = '/Tolven/scripts/' + jsFileName;
head.appendChild(script);
}
Does anybody have this issue? Or any clues to resolve this?
If this script is in <head> tag than head does not exists when this script is parsed and executed. So, of cource if (head) is false.
Your are using JS framework -- so feel free to use it's tools. And also do not forget to include Your framework, before using it.
<!-- if your are using mootools -->
<script type="text/javascript" src="mootools.js"></script>
<script type="text/javascript">
window.addEvent('domready', function() {
// Your code...
});
</script>
<!-- if your are using prototype -->
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
document.observe("dom:loaded", function() {
// Your code...
});
</script>
Consider using a library like RequireJS or LABjs that do the job of including scripts at runtime really well.
var head = document getElementsByTagName('head')[0];
should be
var head = document.getElementsByTagName('head')[0];
Script seems to work after this modification.
This is was actually working. There is was an error(it only happens in IE8) in one of the scripts that's inserted at runtime. Eventually it's not executing alerts in the pages loaded next. Thanks for your answers though.

What is this google adsense code doing exactly?

Hey, I am trying to further my knowledge of javascript and was wondering if anyone could explain to me what exactly is happening in the script below:
<– Begin Google Adsense code –>
<script type=”text/javascript”>
google_ad_client = “ad-client-code-goes-here”;
google_ad_slot = “ad-slot-code-goes-here”;
google_ad_width = 300;
google_ad_height = 250;
</script>
<script type=”text/javascript”
src=”http://pagead2.googlesyndication.com/pagead/show_ads.js”>
</script>
<– End Google Adsense code –>
Most importantly, why are there 4 'google_ ad_ ...' at the beginning and what is the purpose of them?
A line by line explanation would be awesome :)
Thanks for any help. I really appreciate it.
The google_ad... are variables (associate this code to your account, set width/height of ad, etc). They're being set for the script (show_ads.js) that will later be loaded.
For a full rundown of the variables, see CyberNAC Javascript Variables used in Adsense.

Categories