AdWords to teraz Google Ads. Nowa nazwa oddaje pełny zakres usług reklamowych, jakie oferujemy m.in. w wyszukiwarce, sieci reklamowej i YouTube.. Więcej informacji

Obecnie 115 forumowiczów jest online
Obecnie 115 forumowiczów jest online
Dla pytań związanych z funkcjami remarketingu, strategii stawek, Edytor AdWords i skryptów Google Ads.
Poprowadź mnie
star_border
Odpowiedz

Link reklamowy ukazuje się w wynikach ale nie otwiera strony

Nowicjusz ✭

Po przeniesieniu mojej strony www na serwer polskiego dostawcy usług hostingowych - moja reklama w wynikach wyszukiwania pojawia się ale nie otwiera strony pomimo naliczania opłat za każde kliknięcie. Zamiast strony wyskakują komunikaty podobnej tresci jak ta:

" Warning: Cannot modify header information - headers already sent by (output started at /index.php:5) in /index.php on line 30 Record not found! " a w adresie : " http://www.trenerosobisty.pl/?gclid=CM7C0qSi3LkCFche3god9x8A-g "

Co jest powodem i co robić w tej sytuacji ? Zawiesiłem kampanięponieważ każde kliknięcie było naliczane pomimo iż klikniecie w reklamę nie otwierało strony. Strona o adresie:  www.trenerosobisty.pl

Odpowiedź eksperta 1verified_user

Dot.: Link reklamowy ukazuje się w wynikach ale nie otwiera strony

[ Edytowane ]
Profesjonalista ✭

"Warning: Cannot modify header information - headers already sent by (output started at "
ten błąd pojawia się jak próbujesz modyfikować nagłówki a coś już zostało wysłane do przeglądarki (nawet pusty znak).
Często dzieje się tak jak w php na końcu pliku dajesz tag zamykający ?> ale to był problem we wcześniejszych wersjach php'a głównie.

Mógłbym coś powiedzieć więcej po zerknięciu w kod. Tak czy tak proponuję pousuwać zamykające tagi w plikach php i sprawdzić

 

--edit

patrzę jeszcze na ten błąd i jeśli w kodzie jest coś w stylu:

echo "Record not found!"

 a w dalszych liniach jakieś przekierowania czy ogólnie funkcje 

header(...);

 to tu szukał bym problemu

Dot.: Link reklamowy ukazuje się w wynikach ale nie otwiera strony

Profesjonalista ✭
Jeśli chodzi o kampanię to oczywiście kliknięcia otwierały stronę i koszty były jak najbardziej słusznie naliczane.
Problem leży tu po stronie kodu i w tej sytuacji należy go poprawić Emotikon: Szczęśliwy

Dot.: Link reklamowy ukazuje się w wynikach ale nie otwiera strony

Nowicjusz ✭
Dziękuję za podpowiedź. Czy to może być związane ze zmianą nazwy strony - w kodzie strony ? Osoba, która mi przenosiła stronę - zmieniła tez jej nazwę. Jestem laikiem w tym obszarze więc prześlę Twoje uwagi do niego i może to pomoże rozwiązać ten problem.

Dot.: Link reklamowy ukazuje się w wynikach ale nie otwiera strony

Profesjonalista ✭
Tak jak napisałem: prościej było by coś konkretnego powiedzieć gdybym zobaczył kod. Teraz to bardziej wróżenie z kuli i domysły.
Sama zmiana domeny raczej nie będzie tu miała znaczenia. Mogą mieć znaczenie przekierowania robione z poziomu php.

Ogólnie proponuję zweryfikować skrypt. Pierwsze 5 linii wygenerowanego html'a nie wygląda niestety dobrze...

Dot.: Link reklamowy ukazuje się w wynikach ale nie otwiera strony

[ Edytowane ]
Magister ✭

Problem dotyczy auto tagowania reklamy. Zwróć proszę uwagę, że w adresie pojawia się ?gclid=ciag_znakow. Po jego wyłączeniu wszystko wróci do normy. Możesz tą opcję wyłączyć wchodząć na stronę Ustawienia na karcie Moje konto. Niestety nie będziesz w stanie w tym czasie śledzić skuteczności reklam. Nie mniej developer pewnie szybko z problemem się upora.

Poniżej zrzut: 

 

Zrzut ekranu 2013-10-1 o 22.26.25.png

Dot.: Link reklamowy ukazuje się w wynikach ale nie otwiera strony

Nowicjusz ✭
Dzięki Adrian - ale czy dobrze rozumiem, że będzie to jakby chwilowe obejście problemu czy to właśnie tam tkwi sedno tych problemów ? Jestem laikiem w tych tematach.

Dot.: Link reklamowy ukazuje się w wynikach ale nie otwiera strony

[ Edytowane ]
Magister ✭

Jest to raczej obejście problemu. Auto tagowanie służy do wyświetlania informacji o kosztach kampanii i słowach kluczowych w usłudze Google Analytics. Jeśli autotagowanie zostanie wyłączone pojawi się problem ze zbieraniem tych danych po stronie Google Analytics, a to z punktu widzenia badania skuteczności kampanii duży problem.

Sytuację należy rozwiązać na stronie internetowej (w kodzie strony do którego dostępu nie mamy). Chciałbym zaznaczyć, że to nie błąd strony, tylko programista nie przewidział takiej sytuacji i należy się z nią uporać. Trzeba się przyjrzeć plikowi index.php, który prawdopodobnie wyszukuje informacji przekazanych przez parametr (parametry są podawane po znaku zapytania w adresie URL). .

Dot.: Link reklamowy ukazuje się w wynikach ale nie otwiera strony

Nowicjusz ✭
Dziękuję serdecznie, prześlę te wskazówki osobie, która zajmuje się stroną.
Pozdrawiam
Szymon Ściński

Dot.: Link reklamowy ukazuje się w wynikach ale nie otwiera strony

[ Edytowane ]
Najlepszy Współtwórca

Tak jak napisał Adrian. To najprawdopodobniej problem z automatycznym tagowaniem. Jego wyłączenie z poziomu kampanii adwords to tylko obejście problemu, ponieważ pozbędziesz się tym samym danych z analyticsa. Natomiast jeśli zależy Ci na działającej kampanii to wyłącz autotagowanie, włącz kampanie i sprawdź wtedy czy działa strona. Nie musisz klikać w reklamę. Zalecam użycie takiego kodu, który sprawdza poprawność adresów docelowych:

 

//-----------------------------------
// Find Broken Urls In Your Account
// Created By: Russ Savage
// FreeAdWordsScripts.com
//-----------------------------------
function main() {
  // You can add more if you want: http://goo.gl/VhIX
  var BAD_CODES = [404,500];
  var TO = ['Twój mail 1'/*,'Twój mail 2'*/];
  var SUBJECT = 'Broken Url Report- Nazwa raportu - Zalecam dodanie chociaż nazwy domeny jeśli spodziewasz się większej ilości raportów' + _getDateString();
  var HTTP_OPTIONS = {
    muteHttpExceptions:true
  };
    
  //Let's look at ads and keywords for urls
  var iters = [
    //For Ad Level Urls
    AdWordsApp.ads()
      .withCondition("Status = 'ENABLED'")
      .withCondition("AdGroupStatus = 'ENABLED'")
      .withCondition("CampaignStatus = 'ENABLED'")
      .get(),
    //For Keyword Level Urls
    AdWordsApp.keywords()
      .withCondition("Status = 'ENABLED'")
      .withCondition("DestinationUrl != ''")
      .withCondition("AdGroupStatus = 'ENABLED'")
      .withCondition("CampaignStatus = 'ENABLED'")
      .get()
    ];
   
  var already_checked = {};
  var bad_entities = [];
  for(var x in iters) {
    var iter = iters[x];
    while(iter.hasNext()) {
      var entity = iter.next();
      if(entity.getDestinationUrl() == null) { continue; }
      var url = entity.getDestinationUrl();
      if(url.indexOf('{') >= 0) {
        //Let's remove the value track parameters
        url = url.replace(/\{[0-9a-zA-Z]+\}/g,'');
      }
      if(already_checked[url]) { continue; }
      var response_code;
      try {
        Logger.log("Testing url: "+url);
        response_code = UrlFetchApp.fetch(url, HTTP_OPTIONS).getResponseCode();
      } catch(e) {
        //Something is wrong here, we should know about it.
        bad_entities.push({e : entity, code : -1});
      }
      if(BAD_CODES.indexOf(response_code) >= 0) {
        //This entity has an issue.  Save it for later.
        bad_entities.push({e : entity, code : response_code});
      }
      already_checked[url] = true;
    }
  }
  var column_names = ['Type','CampaignName','AdGroupName','Id','Headline/KeywordText','ResponseCode','DestUrl'];
  var attachment = column_names.join(",")+"\n";
  for(var i in bad_entities) {
    attachment += _formatResults(bad_entities[i],",");
  }
  if(bad_entities.length > 0) {
    var options = { attachments: [Utilities.newBlob(attachment, 'text/csv', 'bad_urls_'+_getDateString()+'.csv')] };
    var email_body = "There are " + bad_entities.length + " urls that are broken. See attachment for details.";
      
    for(var i in TO) {
      MailApp.sendEmail(TO[i], SUBJECT, email_body, options);
    }
  } 
}
  
//Formats a row of results separated by SEP
function _formatResults(entity,SEP) {
  var e = entity.e;
  if(typeof(e['getHeadline']) != "undefined") {
    //this is an ad entity
    return ["Ad",
            e.getCampaign().getName(),
            e.getAdGroup().getName(),
            e.getId(),
            e.getHeadline(),
            entity.code,
            e.getDestinationUrl()
           ].join(SEP)+"\n";
  } else {
    // and this is a keyword
    return ["Keyword",
            e.getCampaign().getName(),
            e.getAdGroup().getName(),
            e.getId(),
            e.getText(),
            entity.code,
            e.getDestinationUrl()
           ].join(SEP)+"\n";
  }
}
  
//Helper function to format todays date
function _getDateString() {
  return Utilities.formatDate((new Date()), AdWordsApp.currentAccount().getTimeZone(), "yyyy-MM-dd");
}

 

Po zapisaniu kodu musisz go autoryzować i zalecam ustawienie harmonogramu co godzinę.

 

ScreenShot252.jpg

 

Na screenie widać też nadaną nazwę raportowi - to coś innego niż wpisany tekst w kodzie. Na screenie nazwa to oznaczenie danego kodu w adwordsie. Nazwa raportu w kodzie to tytuł z jakim przyjdzie do Ciebie mail jeśli ze stronami docelowymi będzie coś nie tak.

 

 

Takie skrypty znajdują się w zakładce w lewym menu w Operacje zbiorcze

 

ScreenShot253.jpg

 

 

Po rozwinięciu w skryptach

 

ScreenShot254.jpg

 

P. S. Na pewno nie zostawiaj kampanii bez tagowania. Potraktuj to jak etap chwilowy. Bardzo często sam problem leży po stronie serwera i wystarczy odpowiednio go skonfigurować. Postaraj się zadbać o automatycznie tagowanie ze względow analizy kampanii.

Dominik Myślak

Dot.: Link reklamowy ukazuje się w wynikach ale nie otwiera strony

[ Edytowane ]
Profesjonalista ✭

To, że skrypt nie obsługuje gclid to zgodzę się - programista mógł nie przewidzieć takiego parametru (pomijając to, że powinien przewidzieć sytuację w której do skryptu trafia nieobsługiwany parametr i obsłużyć to inaczej niż wyrzucając np "Record not found!").

 

Błąd o którym pisał Szymon "Cannot modify header information..." to już inna bajka i jest związany z tym o czym pisałem wcześniej: próba modyfikacji nagłówków po wysłaniu czegokolwiek do przeglądarki. Czemu działało wcześniej? Bo np inny serwer mógł mieć z automatu ustawiony output buffering, bo np wcześniej skrypt nie dostawał parametru i nigdy nie wykonywał się akurat ten kawałek kodu, bo... wróżenie z kuli.
W każdym bądź razie usunięcie autotagowania AdWords będzie pewną protezą, która pozwoli na to żeby kampania działała ale nie pozwoli na zbieranie danych i tak jak wszyscy nie polecałbym tego rozwiązania.

Lepiej spojrzeć na skrypt i coś z tym zrobić - raczej nie powinno to zająć dużo czasu osobie która ma pojęcie o php. W generowanym html'u strony jakieś meta tagi trafiają poza head... są zdublowane... dla mnie to oczywista oczywistość, że trzeba się tym zająć i spać spokojnie Emotikon: Szczęśliwy