• Hi all,
    Bit stuck here with my first ever WordPress site. The theme is 2016 which I like after fiddling around with a heap of others.

    I’m trying to get a Google AdSense ad placement between the top of the page and the menu and try as I might I can’t find a place to insert either a shortcode or the the snippet of PHP. Google would like it between the menu and the image but I reckon that destroys the first look of the site.

    Cheers,
    Mark F…

    The page I need help with: [log in to see the link]

Viewing 8 replies - 1 through 8 (of 8 total)
  • I would setup a child theme ( https://developer.www.ads-software.com/themes/advanced-topics/child-themes/ ) then hook into wp_body_open to get the AdSense ad to show.

    So in your child theme’s functions.php file your code would look something like this

    function adsense_above_menu() {
       ?>
       AdSense code from Google here
       <?php
    }
    
    add_action( 'wp_body_open', 'adsense_above_menu' );
    Thread Starter markwf

    (@markwf)

    Ta heaps for that.
    Although I didn’t go with a child theme (I need to do some more experimenting first) I found a handy place to put the php snippet in header.php. Once I turned off “auto placements” in AdSense I get the effect I’m after.
    I guess as long as the 2016 theme doesn’t get updated I’ll be OK.
    Now all I need to do is to reduce the height of the ad by about 30% and I’ll be a happy camper.
    Ta heaps.

    Cheers,
    Mark F…

    Thread Starter markwf

    (@markwf)

    Hi again all,
    I’m still struggling with this. If I put the google code snippet “if( function_exists(‘the_ad_placement’) ) { the_ad_placement(‘advert-1’); }” in a suitable place in header.php I get the advert appearing where I want it.
    However. If I put it in functions.php in a child theme –
    ————————————————–
    function adsense_above_menu() {
    <?php
    if( function_exists(‘the_ad_placement’) ) { the_ad_placement(‘advert-1’); }
    ?>
    }
    —————————————————–
    it fails with the live preview. All I get is a text page with “function adsense_above_menu() { } add_action(‘wp_body_open’, ‘adsense_above_menu’ ); ” at the top of the page.
    This has got me well and truly stumped. I’m probably missing something truly fundamental but I don’t know what.

    Cheers,
    Mark F…

    • This reply was modified 4 years, 10 months ago by markwf.

    Hi Mark,

    the code you are using in your reply above suggests that you are using my Advanced Ads plugin to manage the ads.

    Your code above uses <?php ... ?> wrong. You can probably remove it when you use the code in the functions.php.

    If it works in your header.php then no need to move it to the functions.php. Both files get overwritten on updates so it really doesn’t matter where you placed it.

    And about the height of the ad: are you using responsive AdSense ad units? They decide about the size of the ad automatically.

    Thanks,
    Thomas

    Thread Starter markwf

    (@markwf)

    Hi Thomas,
    Thanks for that. I am in fact using your plugin.
    The functions.php is in a child theme and as far as I’m aware it won’t be overwritten when the theme is updated. The theme I’m using is twentysixteen and I’ve created a twentysixteen child theme.
    What I’m trying to accomplish is to have two ads per page. One at the top above the menu and the other at the bottom of the sidebar. If I let adsense place them I get a big one between the menu and the header image which, to me, is unsightly. I also get ads placed within the content which I’ve been told is not good for a uer trying to read stuff.
    If I put the code snippet in the main theme header.php it comes out in the right place. If I could get it working in the child theme it’d never get overwritten by an update.
    It would be really good if I could use the <?php……?> snippet in the child theme function.php and get the ad between the top of the page and the menu. How it is now but with an ad with a smaller height would be perfect.
    I use the shortcode in a text widget in the sidebar and it works well.

    Cheers,
    Mark F…

    Hi Mark,

    thanks for your feedback.

    > The functions.php is in a child theme and as far as I’m aware it won’t be overwritten when the theme is updated

    You are right, the child theme is not going to be replaced when you update the main theme.

    If the code with wp_body_open placed your ad correctly, then you just need to check if <?php ... ?> is used right. <?php tells the server to interpret the following code as PHP. ?> tells the server to interpret the following code as plain text / HTML.

    Normally, this should work:

    function adsense_above_menu() {
    if( function_exists(‘the_ad_placement’) ) { the_ad_placement(‘advert-1’); }
    }
    
    add_action( 'wp_body_open', 'adsense_above_menu' );

    If you see ?> before the function code then remove it. Make sure to have access to your files via FTP when experimenting with code like this in case something gets seriously broken.

    Thomas

    Thread Starter markwf

    (@markwf)

    Thanks for that Thomas. I was in the middle of testing last night and we had a power failure. When the power returned I find that I have a corupted wp_posts table primary index which is now being stubborn and resisting all attempts to repair it.
    Oh well. Such is life. I’ll get back to you when I’ve repaired this latest SNAFU.

    Cheers,
    Mark F…

    Thread Starter markwf

    (@markwf)

    Hi Thomas,

    I know it’s been a LONG time but…
    I got the corruption problem and the understanding of child themes sorted but then had to take a bit of a holiday from playing with my web site.
    I’ve now got the ad (one per page) where I want it but I’m struggling with the vertical size.
    If you look at jandmf.com you’ll see that the ad at the top is quite high and I’d like to make only a third to half the height it is now. I’m happy with the ad being full width but it’s too high.
    So, my question is, how can I limit the vertical size ?
    Cheers,
    Mark F…

Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘Adsense ad placement’ is closed to new replies.