Google Remarketing Kampagnen

Diskussionen die nicht direkt etwas mit einem Software oder Hardware Problem zu tun haben
Antworten
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Google Remarketing Kampagnen

Beitrag von Kopernikus »

Ich habe mich in den letzten Tagen etwas intensiver mit der Google Adwords Remarketing Kampagne auseinandergesetzt. Anders als bei den anderen Google-internen Werbemassnahmen, stellt das Remarketing komplexere Anforderungen an den Shopbetreiber.

Doch was genau ist Remarketing überhaupt?

Nun am einfachsten kann ich es wie folgt erklären. Vor ca. 1 Jahr interessierte ich mich mal völlig unverbindlich für einen Massage-Sessel bei Amazon.de. Wenige Tage danach verfolgte mich dieser regelrecht auf Schritt und Tritt. D.h. egal auf welchen Seiten ich mich befand, der gewünschte Sessels war immer schon da. Der Trick dabei ist, dass ein cookie auf meinem PC abgelegt wurde und andere Seiten sofort wussten, welches Angebot diese mir unterbreiten können. Diese gezielte Werbung ist gemäss Google eine der effektivsten überhaupt. Für den Webshop-Betreiber ist es aber eine menge Aufwand, da der Einbau einem mal wieder vor diverse Schwierigkeiten stellt. Ich abreite seit 3 Tagen Anleitung um Anleitung durch und muss zugeben, ich bin nur bedingt schlauer geworden. Da müssen diverse Regeln und Tags angelegt werden, damit Google immer weiss, welche Seite sich der Besucher gerade anseht. Das Hauptscript welches mit jeder Seite aufgerufen werden muss, sieht dann so aus:

Code: Alles auswählen

<script type="text/javascript">
var google_tag_params = {
ecomm_prodid: 'REPLACE_WITH_VALUE', 
ecomm_pagetype: 'REPLACE_WITH_VALUE',
ecomm_totalvalue: 'REPLACE_WITH_VALUE'
};
</script>
<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = XXXXXXXXXX;
var google_conversion_label = "YYYYYYYYYY";
var google_custom_params = window.google_tag_params;
var google_remarketing_only = true;
/* ]]> */
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript> 
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/XXXXXXXXXX/?value=0&label=YYYYYYYYYY&guid=ON&script=0"/>
</div>
</noscript>
Was mich aktuell noch vor ein Rätsel stellt, sind die Werte welche z.B: bei "'REPLACE_WITH_VALUE'," integriert werden müssen. Ich möchte ja nicht unbedingt sämtliche ID's meiner Produkte manuell hier eintragen müssen. Wie google selber schreibt, ist von einer Hardcodierung abzuraten. Doch wie geht man dies am besten an? Ich platziere deshalb diesen Beitrag mal hier im Forum. Vielleicht ist noch jemand an dieser Integration interessiert, womit wir Probleme und Lösungen hier besprechen könnten. Was meint Ihr? Interesse?
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Google Remarketing Kampagnen

Beitrag von Kopernikus »

Soeben habe ich eine aktuelle Lösung (heute 1.August publiziert) unter den OSC Contributions gefunden.

Siehe: http://forums.oscommerce.com/topic/3936 ... eting-tag/

Die folgende Function generiert die benötigten Angaben dynamisch:

ecomm_prodid: 'REPLACE_WITH_VALUE',
ecomm_pagetype: 'REPLACE_WITH_VALUE',
ecomm_totalvalue: 'REPLACE_WITH_VALUE'

Code: Alles auswählen

<?php
/*
  $Id: footer.php 1739 2007-12-20 00:52:16Z hpdl $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2003 osCommerce

  Released under the GNU General Public License
*/

  require(DIR_WS_INCLUDES . 'counter.php');
?>
<table border="0" width="100%" cellspacing="0" cellpadding="1">
  <tr class="footer">
    <td class="footer">&nbsp;&nbsp;<?php echo strftime(DATE_FORMAT_LONG); ?>&nbsp;&nbsp;</td>
    <td align="right" class="footer">&nbsp;&nbsp;<?php echo $counter_now . ' ' . FOOTER_TEXT_REQUESTS_SINCE . ' ' . $counter_startdate_formatted; ?>&nbsp;&nbsp;</td>
  </tr>
</table>
<br>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center" class="smallText"><?php echo FOOTER_TEXT_BODY; ?></td>
  </tr>
</table>
<?php
  if ($banner = tep_banner_exists('dynamic', '468x50')) {
?>
<br>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center"><?php echo tep_display_banner('static', $banner); ?></td>
  </tr>
</table>
<?php
  }
?>

<!-- MOD: BOF - AdWords Dynamic Remarketing Tag -->
<?php list($page_products_id, $page_type, $page_totalvalue) = tep_get_page_info(); ?>
<script type="text/javascript">
var google_tag_params = {
ecomm_prodid: <?php echo $page_products_id; ?>,
ecomm_pagetype: '<?php echo $page_type; ?>',
ecomm_totalvalue: '<?php echo $page_totalvalue; ?>'
};
</script>
<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = XXXXXXXXXX;
var google_conversion_label = "YYYYYYYYYY";
var google_custom_params = window.google_tag_params;
var google_remarketing_only = true;
/* ]]> */
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/XXXXXXXXXX/?value=0&label=YYYYYYYYYY&guid=ON&script=0"/>
</div>
</noscript> 

<?php 
function tep_get_page_info(){
	$scriptname = ltrim(basename($_SERVER['SCRIPT_NAME']));
	$return = array();
	switch($scriptname){
		case FILENAME_DEFAULT:
			global $category_depth;
			if($category_depth == 'top')
				$return[1] = 'home';
			else
				$return[1] = 'category';
			$return[0] = "''";
			break;
		case FILENAME_PRODUCT_INFO:
			global $_GET, $currency, $currencies;
			if(tep_not_null($_GET['products_id'])){
				$return[0] = "'" . $_GET['products_id'] . "'";
				global $product_info;
				$rate = $currencies->currencies[$currency]['value'];
				$decimal_places = $currencies->currencies[$currency]['decimal_places'];
				$return[2] = number_format(tep_add_tax($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) * $rate, $decimal_places);
				if($new_price = tep_get_products_special_price($product_info['products_id']))
					$return[2] = number_format(tep_add_tax($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])), $decimal_places);
			}else{
				$return[0] = "''";
			}
			$return[1] = 'product';
			break;
		case FILENAME_SHOPPING_CART:
			global $cart, $currency, $currencies;
			if($cart && is_object($cart)){
				$products_id_list = array();
				foreach($cart->contents as $products_id => $products_content)
					$products_id_list[] = "'" . (int)$products_id . "'";
				if(count($products_id_list) <= 0)
					$return[0] = "''";
				elseif(count($products_id_list) == 1)
					$return[0] = $products_id_list[0];
				else
					$return[0] = '[' . implode(',', $products_id_list) . ']';
				$rate = $currencies->currencies[$currency]['value'];
				$decimal_places = $currencies->currencies[$currency]['decimal_places'];
				$return[2] = number_format($cart->show_total() * $rate, $decimal_places);
			}else{
				$return[0] = "''";
			}
			$return[1] = 'cart';
			break;
		case FILENAME_CHECKOUT_SHIPPING:
		case FILENAME_CHECKOUT_PAYMENT:
		case FILENAME_CHECKOUT_CONFIRMATION:
		case FILENAME_CHECKOUT_SUCCESS:
			global $order, $currency, $currencies;
			if($order && is_object($order)){
				$products_id_list = array();
				foreach($order->products as $product)
					$products_id_list[] = "'" . (int)$product['id'] . "'";
				if(count($products_id_list) <= 0)
					$return[0] = "''";
				elseif(count($products_id_list) == 1)
					$return[0] = $products_id_list[0];
				else
					$return[0] = '[' . implode(',', $products_id_list) . ']';
				$rate = $currencies->currencies[$currency]['value'];
				$decimal_places = $currencies->currencies[$currency]['decimal_places'];
				if($scriptname == FILENAME_CHECKOUT_SHIPPING || $scriptname == FILENAME_CHECKOUT_PAYMENT){ // calculate the shipping tax
					if($scriptname == FILENAME_CHECKOUT_PAYMENT){
						require(DIR_WS_CLASSES . 'shipping.php');
						$shipping_modules = new shipping;
					}
					$module = substr($GLOBALS['shipping']['id'], 0, strpos($GLOBALS['shipping']['id'], '_'));
					$shipping_tax = tep_get_tax_rate($GLOBALS[$module]->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
					$order->info['total'] += tep_calculate_tax($order->info['shipping_cost'], $shipping_tax);
				}
				$return[2] = number_format($order->info['total'] * $rate, $decimal_places);
			}else{
				$return[0] = "''";
			}
			$return[1] = 'purchase';
			break;
		case FILENAME_ADVANCED_SEARCH_RESULT:
			$return[0] = "''";
			$return[1] = 'searchresults';
			break;
		default:
			$return[0] = "''";
			$return[1] = 'other';
	}	
	return $return;
}
?>
<!-- MOD: EOF - AdWords Dynamic Remarketing Tag -->
Nun meine Frage: Meine php Kenntnisse sind leider zu besch...eiden um dieses Script für Webs umzuschreiben. Es wäre aber toll, wenn sich das mal kurz jemand angucken könnte. Ich denke man könnte die function auch ins template verlagern. Der Aufwand für die Umschreibung wäre wahrscheinlich nicht allzu gross. Wer hätte auch noch Interesse?
yogi
Administrator
Beiträge: 292
Registriert: Do 6. Mai 2010, 14:16
Shop Version: die aktuelle
Wohnort: Köln
Kontaktdaten:

Re: Google Remarketing Kampagnen

Beitrag von yogi »

Moin Kopernikus,

welche Bedeutung hat dabei das Feld "google_conversion_label"?
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Google Remarketing Kampagnen

Beitrag von Kopernikus »

Hi Yogi

Dazu habe ich folgendes gefunden:

The google_conversion_label is used to associate the AdWords Remarketing request to a specific conversion action within an AdWords account.

https://support.google.com/tagassistant ... el_not_set

Wie ich in der Zwischenzeit herausgefunden habe, gibt es verschiedene Wege wie man Remarketing von Google einsetzen kann. Einer dieser Wege geht z.B. über google Analytics. Dort kann man unter "Conversions" Ziele erfassen, welche dann vom Remarketing verwendet werden können. Die entsprechenden Listen legt man unter Verwaltung / Remarketing direkt im Analytics Konto an. Das ist bestimmt der schnellste und einfachste Weg. Diese Form des Remarketings ist jedoch eher Star.

Interessant wird es, wenn man die dynamische "Merchant Center" (Google Shopping) Funktionalität verwendet. Dann kann man auf das dynamische Remarketing zurückgreifen. Bei dem dynamischen Remarketing trackt Google nicht nur einzelne Produkteseiten, sondern jedes besuchte Produkt. Damit können dem Kunden dann gezielt die Produktebilder präsentiert werden, welche er zuvor mal im Shop besucht hat.
Siehe auch: https://support.google.com/adwords/answer/3124536

Damit dies jedoch funktioniert, muss folgender Code (siehe: https://support.google.com/adwords/answer/3103357) noch integriert werden:

Code: Alles auswählen

<script type="text/javascript">
var google_tag_params = {
ecomm_prodid: 'REPLACE_WITH_VALUE', 
ecomm_pagetype: 'REPLACE_WITH_VALUE',
ecomm_totalvalue: 'REPLACE_WITH_VALUE'
};
</script>
<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = XXXXXXXXXX;
var google_conversion_label = "YYYYYYYYYY";
var google_custom_params = window.google_tag_params;
var google_remarketing_only = true;
/* ]]> */
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript> 
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/XXXXXXXXXX/?value=0&label=YYYYYYYYYY&guid=ON&script=0"/>
</div>
</noscript>
Dieser Code sollte auf jeder Seite verfügbar sein. Das ist eigentlich nicht das Problem, denn ich kann den Code einfach in die index.html rein pflanzen. Das Problem ist, dass z.B. ecomm_prodid: 'REPLACE_WITH_VALUE', die jeweilige Produkt-ID (welche auch an das Merchant Center übergeben wird) erwartet. Hier müsste man also einen dynamischen Code integrieren, welcher diese Info automatisch abruft. Dasselbe gilt für ecomm_pagetype und für ecomm_totalvalue.

Um den Code anschliessend zu testen, empfiehlt es sich, den Google Tag Manager zu integrieren. Verwendet man den Chrome Browser, sieht man sofort, ob der eingebaute Code Google-Konform funktioniert. Den Tag Manager findet man übrigens hier: http://www.google.de/tagmanager/

Grüsse Patrik
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Google Remarketing Kampagnen

Beitrag von Kopernikus »

Wollte mal fragen, ob Du da was herausgefunden hast? ;)
Antworten