Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Google Tag Manager einbinden bei modified eCommerce Shopsoftware

    barchettalito

    • Neu im Forum
    • Beiträge: 3
    Hallo Zusammen,

    ich habe eine Frage, ob sich jemand schon mal daran probiert hat den Google Tag Manager bei einem modified eCommerce Shopsoftware 1.05 Shop zu implementieren oder auch allgemein, ob jemand Erfahrungen damit hat den Tag Manager bei modified einzubinden?

    Viele Grüße,
    Tobi

    Linkback: https://www.modified-shop.org/forum/index.php?topic=38210.0

    Mischko

    • Neu im Forum
    • Beiträge: 2
    Servus,
    gibt´s hierzu allgemeine Erfahrungen vom Einbinden von modified Shops in Google Tag Manager?

    Beste Grüße
    Mischko

    Alfred

    • Experte
    • Beiträge: 2.117
    Macht ein Update auf die aktuellste Version des Shops.
    Da ist bis auf den Tag-Manager alles dabei.
    Dann wird sich jemand finden der den einbaut.

    Mischko

    • Neu im Forum
    • Beiträge: 2
    Hallo Alfred,
    Danke für die Info.
    Wo sollte denn der Script Code vom Google Tag Manager eingebunden werden.
    In der /includes/application_bottom.php ?

    Grüße Mischko

    seba

    • Neu im Forum
    • Beiträge: 17
    Hi Mischko und barchettalito seid ihr in dieser Sache schon weitergekommen?
    Habe genau die gleiche Fragestellung wie ich den GTM bei einem 1.05 Shop implementieren kann.

    Grüße Sebby

    Igotcha

    • Mitglied
    • Beiträge: 195
    Ich bin an dem Thema Google Tagmanager einbauen auch sehr interessiert, aber es geht weniger um den Einbau der beiden Javascripts bei mir, sondern vielmehr um die Übertragung der Conversionwert.

    Aktuell erstellt modified bei Analytics ja die automatische und korrekte Erstellung Conversionwerte.

    Juli Shumska

    • Neu im Forum
    • Beiträge: 1
    Ist die Frage bei der GTM-Installation bisher gelöst? Ich habe das gleiche Problem - ich muss den Tag-Manager in Modified Shop installieren und weiß nicht, wie das geht. Bitte helfen!

    Parker

    • Mitglied
    • Beiträge: 138
    • Geschlecht:
    Ich habe mich damit schon viel herum geärgert, gerade mit den teils widersprüchlichen Angaben in den Leitfäden bei Google Devs und Fehlern in Tag Assistant etc.
    Um nur einfach das Snippet vom GTM  einzubinden, empfehle ich das direkt in nach "<head>" in die Datei /includes/header.php einzubauen. Es soll "unbedingt nach dem geöffneten head -Tag eingesetzt werden" heißt es.

    Ich habe nicht die Zeit für ein vollständiges Tutorial, kann Dir aber schon mal ein paar Tipps geben, wenn es um Stolpersteine geht:
    Wenn Du gtag.js nutzt, kann es gut sein, dass das Conversion Tracking nicht mehr geht, wenn GTM aktiv ist, da die beiden sich nicht vertragen. Dann muss das Conv. Tracking von Google Analytics über GTM laufen.

    Dazu ist dieses Tutorial hilfreich: Google Tag Manager: AdWords Conversion-Tracking

    Nutze für die Implementierung Chrome mit den Extensions "Tag Assistant" und "Datalayer Checker" um zu sehen, ob Deine Änderungen auch funktionieren.

    Für das Conv. Tracking über GTM musst Du die Daten aus dem jeweiligen Warenkorb in der Bestellabschlussseite in einem JavaScript "Data Layer" ausgeben. Da in den Code-Beispielen falsche Eigenschaftsnamen stehen, hier mein Script, welches ich über dem Code-Snippet des GTM in der includs/header.php inkludiere:

    Code: PHP  [Auswählen]
    <?php // GOOGLE CONV. TRACKING
    if (basename($PHP_SELF) == FILENAME_CHECKOUT_SUCCESS) {
      require_once (DIR_FS_INC.'get_order_total.inc.php');
      $total = get_order_total($last_order);
    ?>

    <?php //<!-- BOC Google Tag Manager Data Layer --> ?>
    <script>
        window.dataLayer = window.dataLayer || []
        dataLayer.push({
           'transactionId': '<?php echo $last_order; ?>',
           'transactionAffiliation': '<?php echo $current_domain; ?>',
           'transactionTotal': <?php echo number_format($total, 2, '.', ''); ?>,
           'transactionTax': <?php echo number_format($orders_total_tax["value"], 2, '.', ''); ?>,
           'transactionShipping': <?php echo number_format($orders_total_shipping["value"], 2, '.', ''); ?>,
           'transactionProducts': [
           <?php
                $countitems = 0;
            ?>
           <?php foreach ($order_data as $item) { ?>
               {
                   'sku': '<?php echo $item["PRODUCTS_SKU"]; ?>',
                   'name': '<?php echo $item["PRODUCTS_NAME"].' ('.$item["PRODUCTS_MODEL"].')'; ?>',
                   'category': '<?php echo $item["CAT"]; ?>',
                   'price': <?php echo number_format($item["PRODUCTS_SINGLE_PRICE"], 2, '.', ''); ?>,
                   'quantity': '<?php echo $item["PRODUCTS_QTY"]; ?>'
               }<?php if($countitems != count($order_data) -1) echo ","; $countitems += 1; ?>
           <?php }; unset($item); ?>
            ]
        });

    </script>
    <?php };  ?>

    Die Daten dafür habe ich mir in der /checkout_success.php aus der Datenbank geholt und in Smarty geschoben. Diesen Block habe ich vor dem Abschnitt "// GV Code" eingefügt:

    Code: PHP  [Auswählen]
    $order_query = xtc_db_query("SELECT categories_name, p.products_id, orders_products_id, products_model, products_name, products_price, products_quantity
                                FROM "
    .TABLE_ORDERS_PRODUCTS." p, ".TABLE_PRODUCTS_TO_CATEGORIES." ptc, ".TABLE_CATEGORIES_DESCRIPTION." cd
                                WHERE p.products_id = ptc.products_id AND ptc.categories_id = cd.categories_id AND cd.language_id = 2 AND orders_id='"
    .$last_order."'
                                GROUP BY p.products_id"
    );
    $order_data = array ();
    while ($order_data_values = xtc_db_fetch_array($order_query)) {
        $order_data[] = array ('PRODUCTS_MODEL' => $order_data_values['products_id'],
        'PRODUCTS_SKU' => $order_data_values['products_model'],  
        'PRODUCTS_NAME' => $order_data_values['products_name'],
        'CAT' => $order_data_values['categories_name'],
        'PRODUCTS_SINGLE_PRICE' => $order_data_values['products_price'],
        'PRODUCTS_QTY' => $order_data_values['products_quantity']);
    }
    $smarty->assign('order_data', $order_data);

    Wenn man dann bei GTM und GA alles richtig eingestellt hat, sollte das Conv. Tracking richtig laufen.
    Darüber hinaus kann man noch einiges mehr damit machen, um bestimmte Daten nach GA zu bekommen (z.B. "Kaufverhalten" oder "Produktlistenleistung" analysieren).

    Tut mir Leid, dass ich Dir kein komplettes Tutorial bieten kann, aber vielleicht hilft es Dir ja trotzdem weiter.  :-)

    rakna

    • Fördermitglied
    • Beiträge: 240
    • Geschlecht:
    @Parker,

    Hallo. habe gerade da Skript Eingebungen,
    funkt Super!

    ich bräuchte noch die Variable für $final_price also den Gesamtpreis, da bei $total  
    Code: PHP  [Auswählen]
    'transactionTotal': <?php echo number_format($total, 2, '.', ''); ?>,
    ja die Versandkosten mit einbezogen werden.

    Ich kann einfach nicht finden wo dies generiert wird.

    Danke im Voraus

    rakna

    Parker

    • Mitglied
    • Beiträge: 138
    • Geschlecht:
    Da das alles schon länger her ist, möchte ich kurz erwähnen, dass ich den GTM inzwischen rausgeworfen habe und auf gtag.js umgestiegen bin. Spätestens als es an das Einbinden des Consentmanagers gegangen ist, habe ich die Nase voll gehabt.

    So weit ich aber noch weiß, müsste GTM das berücksichtigen, da Du ja neben "transactionTotal" ja auch separat "transactionShipping" und "transactionTax" angeben kannst (schau mal hier). Das sollte dann schon funktionieren... glaube ich.

    Ansonsten habe ich es für ein Exportscript, welches meine Bestellungen an ein ETL liefert, so gemacht, dass ich alle Positionen aus der Bestellung und die Steuern etc. selbst ausrechne. Ansonsten könntest ja ggf. auch einfach die Versandkosten abziehen, falls Dir das hilft.Achte nur darauf, dass modified alle Positionen des Total-Blocks inkl. Steuern in die Datenbank schreibt. Aber die Steuersumme steht ja auch drin und lässt sich einfach abziehen (Achtung, die Versandkosten haben auch Steuern drauf  ;-) ).

    Ich hoffe, ich konnte Dir damit ein wenig weiterhelfen! Viel Erfolg @rakna  :-)

    rakna

    • Fördermitglied
    • Beiträge: 240
    • Geschlecht:
    @Parker,
    Danke für die schnelle Antwort,

    Ich brauch die Angabe " $final_price" vielleicht heißt die Variable auch nur " $price" da es ja noch sigle_preis gibt
    NICHT für den Tag-Manager sondern für ein anderes Tracking-System (adcell) in dem ich nur die ID und den Gesamtpreis übergeben soll.

    Wenn ich deinen Vorschlag übernehme, was mir auch schon in den Sinn kam, wird ja dann generell Z.B. 6.90 Euro abgezogen selbst bei Versandkostenfreier Lieferung, das ist nicht so gut für mich.

    Was ich brauche ist nur
    Code: PHP  [Auswählen]
    <?php echo number_format($DiePreisvariableGesamt, 2, '.', ''); ?>,

    Danke im Voraus
    rakna

    Parker

    • Mitglied
    • Beiträge: 138
    • Geschlecht:
    @raknaWie gesagt müsste man die Summe heraus rechnen. Aber Du musst ja nicht pauschal die Versandkosten abziehen, denn Du kannst ja auf die Tatsächlichen Versandkosten der jeweiligen Bestellung zugreifen.
    Das sollte dann in
    Code: PHP  [Auswählen]
    $orders_total_shipping["value"]
    stehen und diesen Wert könntest Du von der Summe abziehen (wie gesagt, achte nur auf brutto und netto).

    Ansonsten bliebe noch, an die einzelnen Positionen des Summenblocks aus der Datenbank zu kommen. Diese finden sich in der Tabelle "orders_total". Das entsprechende PHP-Script dafür könntest Du, meine ich, in "includes/extra/checkout/checkout_process_end/" ablegen und die daraus gewonnen Werte sollten Dir dann zur Verfügung stehen.

    Ich kenne adcell nicht, aber vielleicht wäre es ja sogar hilfreich, Positionen wie Rabatte und Versandkosten separat zu übergeben und diese auszuwerten...

    rakna

    • Fördermitglied
    • Beiträge: 240
    • Geschlecht:
    Hallo,
     Danke für die schnelle Antwort aber bei diesem Aufruf ist Shipping immer 0.00,

    Code: PHP  [Auswählen]
    <script async src="https://www.googletagmanager.com/gtag/js?id=AW-1xxxxxxxxxx"></script>
    <script>
        window.dataLayer = window.dataLayer || []
        dataLayer.push({
           'transactionId': '323804',
           'transactionAffiliation': 'www.xxxx.de',
           'transactionTotalVoll': 7.65,
           'transactionTotal': 0.00,//ich
           'transactionTax': 0.00,      
           'transactionShipping': 0.00,
           'transactionProducts': [
                             {
                   'sku': 'Haken',
                   'name': 'Befestigungshaken für etc. (1744)',
                   'category': 'Teichrand',
                   'price': '0.15',
                   'quantity': '5'
               }               ]
        });
       

    </script>


    <script type="text/javascript" src="https://t.adcell.com/t/track.js?pid=xxxx&eventid=xxxxx&referenz=323804&betrag=7.65" async>
    </script>

    rakna

    rakna

    • Fördermitglied
    • Beiträge: 240
    • Geschlecht:
    Hallo,

    die Variablen:
    Code: PHP  [Auswählen]
           'transactionTax': <?php echo number_format($orders_total_tax["value"], 2, '.', ''); ?>,
           'transactionShipping': <?php echo number_format($orders_total_shipping["value"], 2, '.', ''); ?>,

    können so nicht ausgelesen werden, diese sind als Text-Block in der DB hinterlegt!
    siehe Bild

    Grüße
    rakna

    Parker

    • Mitglied
    • Beiträge: 138
    • Geschlecht:
    Zitat
    können so nicht ausgelesen werden, diese sind als Text-Block in der BD hinterlegt!
    siehe Bild
    Öhm.... aber da steht es doch  :-? Du referenziert die Bestellung über die Spalte "orders_id" und dann die Zeile die Du haben möchtest über die Spalte "class". Den Wert bekommst Du aus der Spalte "value". Das müsstest Du halt nur programmieren.

    Versuche es mal hiermit:

    Code: PHP  [Auswählen]
    <?php
    if (basename($PHP_SELF) == FILENAME_CHECKOUT_SUCCESS) {
        $raknas_total_block_query = xtc_db_query("SELECT value, class FROM " . TABLE_ORDERS_TOTAL . " WHERE orders_id = '" . $last_order . "'");
        $raknas_total_block = [];
        while ($total_line = xtc_db_fetch_array($raknas_total_block_query)) {
          $raknas_total_block[$total_line['class']] = $total_line['value'];
        }}
    ?>
    das sollte Dir den ganzen Total-Block in "$raknas_total_block" so zur Verfügung stellen:

    Code: PHP  [Auswählen]
    array(5) {
      ["ot_subtotal"]=>
      string(7) "84.3000"
      ["ot_shipping"]=>
      string(6) "6.9000"
      ["ot_payment"]=>
      string(7) "-1.6860"
      ["ot_tax"]=>
      string(7) "14.2913"
      ["ot_total"]=>
      string(7) "89.5140"
    }
    Hilft Dir das weiter?  :-)
               
    anything