Quantcast
Channel: iMasters - Paulo Faustino
Viewing all articles
Browse latest Browse all 20

Como compartilhar as receitas do Adsense usando WordPress

$
0
0

Uma das formas mais atrativas de conseguir escritores para o seu blog é através do compartilhamento das receitas de publicidade com eles. Um dos programas mais usados no mercado é o Google Adsense, que lhe permite ganhar dinheiro por cada clique realizado em seu blog. Para conseguir mais autores e/ou compartilhar as receitas atuais com os seus diversos autores, você poderá simplesmente criar algumas funções que lhe permitam montar uma página de opções e compartilhar uma porcentagem do número de impressões dos anúncios. Logicamente, ao compartilhar as receitas, você os motivará a produzir mais conteúdos, o que direta ou indiretamente irá gerar maior receita para todos. Este código pode ser igualmente adaptado a outros tipos de programas de monetização, como os programas de afiliados, por exemplo.

Recentemente os colegas do wptuts lançaram algumas dicas acerca da construção de uma página de opções deste género. A verdade é que você mesmo fazendo, evita-se o uso desnecessário de plugins, tornando o seu blog mais rápido e oferecendo uma maior fiabilidade na gestão dos anúncios. Ao longo do artigo você irá perceber que, na verdade, montar uma funcionalidade destas é bem mais simples do que parece!

Criando uma página de opções

Vamos usar o tema Twenty Eleven, que vem como padrão no WordPress, mas você poderá adaptar a qualquer tema WordPress. Como primeiro passo, precisamos criar uma página de opções onde o usuário/autor possa colocar o seu ID de Publisher do Adsense. Abra seu arquivo functions.php e no fundo dele coloque o código abaixo. Este trecho de código irá registrar um novo Menu de Admin, usando a função adshare_menu.

// Create Custom Settings Menu
add_action('admin_menu', 'adshare_menu');

Depois disso, criamos o menu adshare e chamamos a função add_submenupage. O primeiro parâmetro irá determinar o menu parente da página de opções.

function adshare_menu() {
//Create Sub-Level Menu Page under Settings
add_submenu_page( 'options-general.php', 'Ad Share Settings', 'Ad Share', 'manage_options', 'adshare_settings_page', 'adshare_settings_page');
}

Criando o visual da página de opções

Agora precisamos desenhar o layout para a página de opções. Tome nota que a função que devemos chamar é a adshare_settings_page, tal como no último parâmetro do código anterior.

function adshare_settings_page() {
// Must check that the user has the required capability
if (!current_user_can('manage_options'))
{
wp_die( __('Você não tem permissões suficientes para ver essa página.') );
}
?>
<div class="wrap">
<h2>Opções do Google Adsense</h2>
<form method="post" action="options.php">
<?php wp_nonce_field('update-options') ?>
<p><strong>ID de Publisher do Adsense:</strong><br />
<input type="text" name="publisher-id" size="45" value="<?php echo get_option('publisher-id'); ?>" />
</p>
<p><input type="submit" name="Submit" value="Salvar" /></p>
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="publisher-id" />
</form>
</div>
<?php
}

O resultado final será algo como isso:

Criando um campo extra para o usuário

Nosso próximo passo é criar a opção para o usuário salvar o seu ID de Publisher do Adsense a partir do seu perfil pessoal. Algo desse género assim:

Para adicionar a possibilidade de tanto o Admin, como os usuários e autores poderem atualizar seus perfis com o ID do Adsense, iremos precisar chamar dois ganchos do WordPress. São eles:  edit_user_profile e show_user_profile. Adicione o seguinte código no seu arquivo:

add_action( 'show_user_profile', 'adshare_profile_fields' );
add_action( 'edit_user_profile', 'adshare_profile_fields' );

Adicionando o formulário de preenchimento

Agora que você adicionou os ganchos, precisamos chamar a função adshare_profile_field no segundo parâmetro. Esta função guarda os campos de preenchimento no perfil do usuário. Você pode customizar o HTML da forma que bem desejar, mas tenha a certeza de que mantém os atributos de nome e valor.

function adshare_profile_fields( $user ) { ?>
<h3>Opções do Google Adsense</h3>
<table class="form-table">
<tr>
<th><label for="twitter">ID de Publisher do Adsense</label></th>
<td>
<input type="text" name="publisher-id" id="publisher-id" value="<?php echo esc_attr( get_the_author_meta( 'publisher-id', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">Adicione seu ID de Publisher</span>
</td>
</tr>
</table>
<?php }

Salvando o campo de perfil

Embora já tenhamos criado os campos de perfil, a verdade é que não temos nenhuma função que grave a informação desses campos. Para atualizarmos as informações de perfil de um ususário, precisaremos chamar dois ganchos de ação do WordPress: o personal_options_update e o edit_user_profile_update. Adicione o seguinte código ao seuarquivo:

add_action( 'personal_options_update', 'adshare_save_profile_fields' );
add_action( 'edit_user_profile_update', 'adshare_save_profile_fields' );

Agora, vamos escrever a função adshare_save_profile_fields, que irá puxar a informação do post e gravá-la na informação de meta do usuário. Tal como quando um usuário atualiza o seu nome, o nosso campo será adicionado.

function adshare_save_profile_fields( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) ){
return false;
}
update_usermeta( $user_id, 'publisher-id', $_POST['publisher-id'] );
}

E assim criamos um campo extra para os autores. No próximo passo, iremos dar uso a esse campo.

Adicionando Adsense ao artigo

Por fim, temos uma última função para acrescentar em nosso arquivo functions.php. Vamos criar a função que escolhe o ID do autor e coloca o anúncio do Adsense no artigo.

function adsense_ad() {
if(get_the_author_meta( 'publisher-id' )){
$input = array(get_option('publisher-id'), get_the_author_meta( 'publisher-id' ));
}else{
$input = array(get_option('publisher-id'));
}
shuffle($input);
?>
<script type="text/javascript"><!--
google_ad_client = "ca-<?php echo $input[0]; ?>";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<?php
}

Chamando a função na página

Por fim, poderemos finalmente chamar a função adsense_ad() dentro do nosso arquivo single.php para mostrar o Adsense em nossos artigos. Para este exemplo, colocamos o anúncio entre o artigo e os comentários.

<?php get_template_part( 'content', 'single' ); ?>
<?php adsense_ad(); ?> //Call Adsense Function
<?php comments_template( '', true ); ?>

Código completo

Eis, então, o código completo para criar todas essas funcionalidades debatidas ao longo do artigo.

// Create Custom Settings Menu
add_action('admin_menu', 'adshare_menu');

function adshare_menu() {
//Create Sub-Level Menu Page under Settings
add_submenu_page( 'options-general.php', 'Ad Share Settings', 'Ad Share', 'manage_options', 'adshare_settings_page', 'adshare_settings_page');
}

function adshare_settings_page() {
//must check that the user has the required capability
if (!current_user_can('manage_options'))
{
wp_die( __('Você não tem permissões suficientes para acessar esta página.') );
}
?>
<div class="wrap">
<h2>Opções do Google Adsense</h2>
<form method="post" action="options.php">
<?php wp_nonce_field('update-options') ?>
<p><strong>ID de Publisher do Adsense:</strong><br />
<input type="text" name="publisher-id" size="45" value="<?php echo get_option('publisher-id'); ?>" />
</p>
<p><input type="submit" name="Submit" value="Salvar" /></p>
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="publisher-id" />
</form>
</div>
<?php
}

add_action( 'show_user_profile', 'adshare_profile_fields' );
add_action( 'edit_user_profile', 'adshare_profile_fields' );

function adshare_profile_fields( $user ) { ?>
<h3>Opções do Google Adsense</h3>
<table class="form-table">
<tr>
<th><label for="twitter">ID de Publisher do Adsense</label></th>
<td>
<input type="text" name="publisher-id" id="publisher-id" value="<?php echo esc_attr( get_the_author_meta( 'publisher-id', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">Adicione seu ID de Publisher</span>
</td>
</tr>
</table>
<?php }

add_action( 'personal_options_update', 'adshare_save_profile_fields' );
add_action( 'edit_user_profile_update', 'adshare_save_profile_fields' );

function adshare_save_profile_fields( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) ){
return false;
}
update_usermeta( $user_id, 'publisher-id', $_POST['publisher-id'] ); //
}

function adsense_ad() {
if(get_the_author_meta( 'publisher-id' )){
$input = array(get_option('publisher-id'), get_the_author_meta( 'publisher-id' ));
}else{
$input = array(get_option('publisher-id'));
}
shuffle($input);
?>

<script type="text/javascript">
<!--
google_ad_client = "ca-<?php echo $input[0]; ?>";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<?php
}

Conclusão

No exemplo acima, usamos um banner de 468×60 entre o artigo e os comentários, mas você poderá adaptar o código para mostrar outros formatos de anúncios e depois usar um pouco de CSS para os colocar nos locais que você mais deseja em seu blog. Agora que você já sabe como criar essas funcionalidades, basta praticar um pouco para chegar nos resultados desejados!

Até Já!


Viewing all articles
Browse latest Browse all 20