AdWords
569 Usuários online agora
569 Usuários online agora
Guie-me
star_border
Responder

erro de autorizaçao de script

Calouro ✭

Olá pessoal. 

tenho duas questões se alguém puder me ajudar...

1) estou tentando usar o script bid to position através da MCC. (peguei a versão mcc), segui os passos, porém o script não é  autorizado de jeito nenhum!. O que preciso fazer?

2) como configurar o script para agir em apenas campanhas de algumas contas? Isso é possível?

Especialistas responderamverified_user

Re: erro de autorizaçao de script

Principal Colaborador

@Sergio M, boa noite.

 

Tudo bem?

 

Esta gerando algum erro na autenticação? Se sim, poderia dar um print?

Ricardo Gaya

Minha resposta foi útil? Se sim, clique em "Aceitar como solução". Saiba mais aqui.

Re: erro de autorizaçao de script

Calouro ✭ ✭
Ricardo, então eu fiquei intrigado com a autorização do script e vendo e revendo eu vi que na verdade estava dando um conflito de com outro conta google aberta e daí ele não autorizava. mas autorizando testei o script (visualização) e apesar de ter inserido o label na conta ele fez os ajustes para todas as contas. então se tiver uma dica de como posso resolver isso, por favor. e vendo o script outro ponto seria reduzir o período de ajuste, pois ele esta previamente configurado para dados de uma semana, seria bom que fosse menos tempo, ou até mesmo real time, isso é possível?

e obrigado pelo interesse!

Re: erro de autorizaçao de script

Calouro ✭
Ricardo, então estou revendo o script mas acontece que ele não "obedece" ao label da campanha. ele roda para todas as campanhas e cada campanha tem uma necessidade diferente. posso postar o script aqui? Minha questão é que rodo ele pela conta Mcc e não direto em cada conta, para manter a minha estratégia oculta. Outra coisa, tem algum lugar para aprender mais sobre o script e poder usufruir mais do benefício de automatizaçaõ dele.

Re: erro de autorizaçao de script

Principal Colaborador

@Sergio M, tudo bem?

 

Precisava ver o código mesmo para tentar ajudar. Tecnicamente era para funcionar normalmente e reconhecer a label da campanha. Aqui nesse link você encontra tudo sobre documentação oficial do Google sobre os scripts do Adwords - https://developers.google.com/adwords/scripts/

 

Ricardo Gaya

Minha resposta foi útil? Se sim, clique em "Aceitar como solução". Saiba mais aqui.

Re: erro de autorizaçao de script

Calouro ✭
sim, segue o código.

// Copyright 2015, Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/**
* @name MCC Bid To Position
*
* @overview The MCC Bid To Position script adjusts your bids and allows you to
* steer ads in a group of advertiser accounts under your MCC account into
* a desired position in the search results.
* See https://developers.google.com/adwords/scripts/docs/solutions/mccapp-bid-to-position
* for more details.
*
* @author AdWords Scripts Team [adwords-scripts@googlegroups.com]
*
* @version 1.0
*
* @changelog
* - version 1.0
* - Released initial version.
*/

// An account-level label that identifies all the accounts you are trying to
// optimize.
var TARGET_ACCOUNT_LABEL = 'LoplastVendas';

// Ad position you are trying to achieve.
var TARGET_AVERAGE_POSITION = 1;

// Once the keywords fall within TOLERANCE of TARGET_AVERAGE_POSITION,
// their bids will no longer be adjusted.
var TOLERANCE = 0.1;

// How much to adjust the bids.
var BID_ADJUSTMENT_COEFFICIENT = 1.05;

// Email address to send the summary report. Leave blank to skip sending emails.
var EMAIL_ADDRESS = 'meuemail@gmail.com';

// List of email addresses to which summary report will be cc'd. Leave the array
// empty to skip sending email copies.
var EMAIL_CC_ADDRESS = ['meuemail@gmail.com'];

/**
* The main method.
*/
function main() {
var accountSelector = MccApp.accounts();
if (TARGET_ACCOUNT_LABEL != 'LoplastVendas') {
accountSelector.withCondition("Labels CONTAINS '" + TARGET_ACCOUNT_LABEL +
"'");
}
accountSelector.executeInParallel('adjustBids', 'sendEmail');
}
/**
* Adjusts the bid for a single account.
*
* @return {Object} a result object that has details about how many keyword
* bids were adjusted.
*/
function adjustBids() {
var raisedKeywordCount = raiseKeywordBids();
var loweredKeywordCount = lowerKeywordBids();
var retval = {
'raised': raisedKeywordCount,
'lowered': loweredKeywordCount
};
return JSON.stringify(retval);
}

/**
* Raises the bids for keywords in an account.
*
* @return {number} The number of keywords whose bids were raised.
*/
function raiseKeywordBids() {
// Condition to raise bid: Average position is worse (greater) than
// target + tolerance
var keywordsToRaise = AdWordsApp.keywords()
.withCondition('Status = ENABLED')
.withCondition('AveragePosition > ' + (TARGET_AVERAGE_POSITION + TOLERANCE))
.orderBy('AveragePosition ASC')
.forDateRange('YESTERDAY')
.get();

while (keywordsToRaise.hasNext()) {
var keyword = keywordsToRaise.next();
keyword.setMaxCpc(keyword.getMaxCpc() * BID_ADJUSTMENT_COEFFICIENT);
}
return keywordsToRaise.totalNumEntities();
}

/**
* Lowers the bids for keywords in an account.
*
* @return {number} The number of keywords whose bids were lowered.
*/
function lowerKeywordBids() {
// Conditions to lower bid: Ctr greater than 1% AND
// average position better (less) than target - tolerance
var keywordsToLower = AdWordsApp.keywords()
.withCondition('Ctr > 0.01')
.withCondition('AveragePosition < ' + (TARGET_AVERAGE_POSITION - TOLERANCE))
.withCondition('Status = ENABLED')
.orderBy('AveragePosition DESC')
.forDateRange('YESTERDAY')
.get();


while (keywordsToLower.hasNext()) {
var keyword = keywordsToLower.next();
keyword.setMaxCpc(keyword.getMaxCpc() / BID_ADJUSTMENT_COEFFICIENT);
}
return keywordsToLower.totalNumEntities();
}

/**
* Send summary report email to users.
*
* @param {Array.<ExecutionResult>} results the ExecutionResult array returned
* by executeInParallel method.
*/
function sendEmail(results) {
var emailBody = [];

emailBody.push(
'<html>',
'<body>',
'<table width=800 cellpadding=0 border=0 cellspacing=0>',
'<tr>',
'<td colspan=2 align=right>',
"<div style='font: italic normal 10pt Times New Roman, serif; " +
"margin: 0; color: #666; padding-right: 5px;'>" +
'Powered by AdWords Scripts</div>',
'</td>',
'</tr>',
"<tr bgcolor='#3c78d8'>",
'<td width=500>',
"<div style='font: normal 18pt verdana, sans-serif; " +
"padding: 3px 10px; color: white'>" +
'BidToPosition summary report</div>',
'</td>',
'<td align=right>',
"<div style='font: normal 18pt verdana, sans-serif; " +
"padding: 3px 10px; color: white'>",
AdWordsApp.currentAccount().getCustomerId(), '</h1>',
'</td>',
'</tr>',
'</table>',
'<table width=800 cellpadding=0 border=0 cellspacing=0>',
"<tr bgcolor='#ddd'>",
"<td style='font: 12pt verdana, sans-serif; " +
'padding: 5px 0px 5px 5px; background-color: #ddd; ' +
"text-align: left'>Customer ID</td>",
"<td style='font: 12pt verdana, sans-serif; " +
'padding: 5px 0px 5px 5px; background-color: #ddd; ' +
"text-align: left'>Results</td>",
'</tr>',
emailRows(results),
'</table>',
'</body>',
'</html>');


if (EMAIL_ADDRESS != '') {
MailApp.sendEmail(EMAIL_ADDRESS, 'BidToPosition summary report', '',
{htmlBody: emailBody.join('\n'), cc: EMAIL_CC_ADDRESS.join(',')});
}
}

/**
* Constructs email rows for each customer id processed by the script.
*
* @param {Array.<ExecutionResult>} results the ExecutionResult array returned
* by executeInParallel method.
* @return {string} the html body corresponding to the customer ids processed
* by the script and its results.
*/
function emailRows(results) {
var rows = [];
for (var i = 0; i < results.length; i++) {
var result = results[i];

rows.push('<tr>',
"<td style='padding: 5px 10px'>" + result.getCustomerId() + '</td>',
"<td style='padding: 0px 10px'>" + getResultDescription(result) +
'</td>',
'</tr>');
}
return rows.join('\n');
}

/**
* Gets a description text for execution results on a customer id.
*
* @param {ExecutionResult} result the ExecutionResult object returned
* by executeInParallel method for the customer id.
* @return {string} a processed text that summarizes the execution result.
*/
function getResultDescription(result) {
if (result.getStatus() == 'OK') {
var retval = JSON.parse(result.getReturnValue());
return 'Raised : ' + retval.raised + ' < br / > ' +
'Lowered : ' + retval.lowered;
} else if (result.getStatus() == 'ERROR') {
return result.getError();
} else {
return 'Script timed out.';
}
}

Re: erro de autorizaçao de script

[ Editado ]
Principal Colaborador

@Sergio M escreveu:

var accountSelector = MccApp.accounts();
if (TARGET_ACCOUNT_LABEL != 'LoplastVendas') {
accountSelector.withCondition("Labels CONTAINS '" + TARGET_ACCOUNT_LABEL +
"'");

Acho que existe um erro de lógica aqui - não seria na verdade: 

if (TARGET_ACCOUNT_LABEL != '') {

accountSelector.withCondition("Labels CONTAINS '" + TARGET_ACCOUNT_LABEL +
"'");

 

Pois do modo que está o seletor de conta jamais é executado  - provavelmente você fez uma mudança nesta linha que não deveria.

 

No demais - você não precisa de um script para ajustar os lances para a primeira posição - basta mudar os lances de todas as palavras  da conta para um valor bem elevado, que seus concorrentes em sã consciência jamais iriam fazer, tipo: cpc max= R$ 100 - o efeito é exatamente o mesmo do script pois você não vai pagar R$ 100 por clique e sim o valor necessário para manter na primeira posição - você jamais irá pagar um centavo a mais do que iria pagar executando o script - com a vantagem  que não precisa ficar executando durante semanas o script - faz tanto sentido quanto um script que fica aumentando o lances das palavras para ficarem na primeira posição - é jogar dinheiro fora, pois quanto maior o valor do cpc com o anúncio já aparecendo nas primeiras posições, menos cliques você recebe. 

 

___

"Você não precisa de uma empresa de 100 funcionários para desenvolver aquela ideia" ~Larry Page

Re: erro de autorizaçao de script

Calouro ✭
Entendi! Agradeço sua observação e concordo com a lógica.

Na verdade o que gostaria com este script era ajustar a posição todos os
dias para a segunda posição. porém observei que se o google conta o
shopping como primeira posição, então meu anuncio vai para o rodape da
pagina (aqueles que ficam lá embaixo) daí calculei para uma determinada
campanha a primeira posição.

mas me interessaria obter a variação de um dia para o outro.

aproveito para perguntar se há script que permitem gerenciamento de
campanhas ou grupos de anuncios no sentido de pausar um dia ou dois e
ativar após este período com o intuito de se fazer um rodízio de anuncios
de produtos.