request( $query ); return $result['body']; } function sb_stats($link) { if ($link=='') { return; } $url=esc_attr(get_option('ab_yourls_url')); if (substr($url,'-1')!='/') { $url.='/'; } $key=esc_attr(get_option('ab_yourls_token')); $link=urlencode($link); $request = new WP_Http; $query=$url."yourls-api.php?action=url-stats&signature=".$key."&format=json&shorturl=$link"; $result = $request->request( $query ); return $result['body']; } add_filter('manage_adsbenedict_posts_columns', 'adsbenedict_show_yourls'); function adsbenedict_show_yourls($columns) { $columns['ab_performance'] = 'Ad Performance'; return $columns; } add_filter('manage_posts_custom_column', 'adsbenedict_show_yourls_data'); function adsbenedict_show_yourls_data($name) { global $post; switch($name) { case 'ab_performance': $url=get_post_meta($post->ID,'ab_yourls_img',true); $stats=json_decode(sb_stats($url),true); $impressions=$stats['link']['clicks']; $url=get_post_meta($post->ID,'ab_yourls_link',true); if ( false === ( $stats = get_transient( "ads_benedict_ad_performance_$post->ID" ) ) ) { //$adids=new WP_Query($args); $stats=json_decode(sb_stats($url),true); set_transient( "ads_benedict_ad_performance_$post->ID" , $stats, HOUR_IN_SECONDS ); } $clicks=$stats['link']['clicks']; if ($impressions > 0 AND $clicks > 0 ) { echo "$impressions impressions
$clicks clicks"; $ratio=round($clicks/$impressions,2); echo "
$ratio % click-through"; } else { echo "not enough data gathered yet"; } break; } }