FROM CACHE - de_header
Gelöst

Einrichtung Tracking für Affiliate Partener

HappyMan
Tourist
6 0 1

Moin zusammen,

ich komme leider an 2 Stellen nicht weiter. Ich möchte für eine Affiliate-Plattform mit der ich arbeite das Tracking einbinden und habe hier 2 Stolpersteine:

 

1. Wie erstelle ich einen Directfolder?

2. Ich muss im Code ein Tracking Script hinterlegen. Wo im Code finde ich die Bestellbestätigungsseite?

 

Danke und Grüße

1 AKZEPTIERTE LÖSUNG
r8r
Shopify Expert
2555 327 940

Erfolg.

Hi @HappyMan – das sollte funktionieren:

var ttConversionOptions = ttConversionOptions || [];
ttConversionOptions.push({
  type: 'sales',
  campaignID: 33756,
  productID: 52703,
  transactionID: '{{ order.order_number }}',
  transactionAmount: parseFloat({{ checkout.subtotal_price | divided_by: 100.0 | round: 2 }}).toString().replace(/\./g, ',') || 0,
  // alternativ: transactionAmount: parseFloat({{ checkout.total_price | divided_by: 100.0 | round: 2 }}).toString().replace(/\./g, ',') || 0,
  quantity: '1',
  descrMerchant: encodeURIComponent('Internal order ID: {{ order_id }}'),
  // …
});

Ob du subtotal_price oder total_price benötigst hängt davon ab, was genau du haben willst. Hier die Doku und mein Testbeispiel:

Screenshot 2021-01-27 at 02.57.58.jpg

LG, Mario

★ Ja, man kann mich buchen; schreib mir eine Nachricht!
★ Hinterlass gerne ein Like und markiere meine Antwort gegebenenfalls als Lösung. Ich freue ich mich immer über eine Spende an die (Kinder)krebshilfe oder eine kleine Aufmerksamkeit.
Studio Mitte

Lösung in ursprünglichem Beitrag anzeigen

10 ANTWORTEN 10

r8r
Shopify Expert
2555 327 940

Hi!

Ad 1.) was ist ein Directfolder?

ad 2.) Im Dashboard unter Settigs > Checkout > Additional Scripts

LG, Mario

★ Ja, man kann mich buchen; schreib mir eine Nachricht!
★ Hinterlass gerne ein Like und markiere meine Antwort gegebenenfalls als Lösung. Ich freue ich mich immer über eine Spende an die (Kinder)krebshilfe oder eine kleine Aufmerksamkeit.
Studio Mitte
HappyMan
Tourist
6 0 1

Hi Mario,

 

danke für deine Rückmeldung.

 

Zu Punkt 1: Habe ich den Ansprechpartner auch schon gefragt. Dachte nur ich komme nicht darauf aber dann scheint es in der Tat etwas kryptisch zu sein. Hier mal die vollständige Anweisung von denen:

Erstellt auf  https://happy-man.shop/ neuen Ordner namens "Potenzmittel" und fügen Sie die Datei index.php als Anhang dieser E-Mail ein. Die neue URL für diesen Ordner wird wie folgt lauten: https://happy-man.shop/Potenzmittel

Im Anhang findest du ein Index File diesen bitte wie hier abgebildet auf den Directfolderseite einbauen.

 

Punkt 2 hatte ich in der Zwischenzeit auch gefunden. Trotzdem vielen lieben Dank!

 

Grüße,

Marco

HappyMan
Tourist
6 0 1

Hey,

ich bin ein Stück weiter. Sie meinten einen Redirectfolder. Einen solchen kann man ja relativ leicht anlegen.

Bleibt nur die Frage: Wie baue ich ein php-Index-file bei shopify ein?

Danke und Grüße

r8r
Shopify Expert
2555 327 940

Ah … das macht Sinn.

Also php kannst Du von Shopify leider nicht ausführen lassen. Kannst Du den Inhalt der index.php teilen? Wär interessant zu wissen, was darin passiert – eventuell kann man das mit von Shopify gewährten Mitteln auch erreichen.

Liebe Grüße,
Mario

★ Ja, man kann mich buchen; schreib mir eine Nachricht!
★ Hinterlass gerne ein Like und markiere meine Antwort gegebenenfalls als Lösung. Ich freue ich mich immer über eine Spende an die (Kinder)krebshilfe oder eine kleine Aufmerksamkeit.
Studio Mitte
HappyMan
Tourist
6 0 1

Hi Mario,

das php-file sieht wie folgt aus:

 

<?php
 
//! Tradetracker Direct Linking Redirect Page.
 
// Set domain name on which the redirect-page runs, WITHOUT "www.".
$domainName = 'happy-man.shop';
 
 
// Set the P3P compact policy.
header('P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
 
if (isset($_GET['tt']))
{
// Set parameters.
$trackingParam = explode('_', $_GET['tt']);
 
$campaignID = isset($trackingParam[0]) ? $trackingParam[0] : '';
$materialID = isset($trackingParam[1]) ? $trackingParam[1] : '';
$affiliateID = isset($trackingParam[2]) ? $trackingParam[2] : '';
$reference = isset($trackingParam[3]) ? $trackingParam[3] : '';
 
$redirectURL = isset($_GET['r']) ? $_GET['r'] : '';
 
// Calculate MD5 checksum.
$checkSum = md5('CHK_' . $campaignID . '::' . $materialID . '::' . $affiliateID . '::' . $reference);
 
// Set tracking data.
$trackingData = $materialID . '::' . $affiliateID . '::' . $reference . '::' . $checkSum . '::' . time();
 
// Set regular tracking cookie.
setcookie('TT2_' . $campaignID, $trackingData, time() + 31536000, '/', empty($domainName) ? null : '.' . $domainName);
 
// Set session tracking cookie.
setcookie('TTS_' . $campaignID, $trackingData, 0, '/', empty($domainName) ? null : '.' . $domainName);
 
// Set tracking group cookie.
if (!empty($trackingGroupID))
setcookie('__tgdat' . $trackingGroupID, $trackingData . '_' . $campaignID, time() + 31536000, '/', empty($domainName) ? null : '.' . $domainName);
 
// Set track-back URL.
$trackBackURL = 'https://tc.tradetracker.net/?c=' . $campaignID . '&m=' . $materialID . '&a=' . $affiliateID . '&r=' . urlencode($reference) . '&u=' . urlencode($redirectURL);
 
// Redirect to TradeTracker.
header('Location: ' . $trackBackURL, true, 301);
}
 
?>
 
Grüße,
 
Marco
r8r
Shopify Expert
2555 327 940

Hi,

also das wird so nicht funktionieren … und nachdem das Script Cookies setzt, die wahrscheinlich dann im Shopkontext ausgelesen werden sollen, wird das auch nicht über einen remote Server funktionieren. Unterstützt der Service denn Shopify laut eigenen Angaben? Würd mich interessieren, ob die was dazu sagen. Ich konnte zu Shopify auf Tradetracker.com gar nichts finden, ausser einen Link auf deren italienischen Seite.

Ich kann mir ehrlich gesagt nur vorstellen, dass man das per Javascript implementieren könnte, aber dann wird das mit dem Redirect-Folder auch nicht so easy. Darüber hinaus müsste dieses Tracking, so wie das aufgebaut ist, jedenfalls in der EU opt-in sein.

Liebe Grüße,
Mario

★ Ja, man kann mich buchen; schreib mir eine Nachricht!
★ Hinterlass gerne ein Like und markiere meine Antwort gegebenenfalls als Lösung. Ich freue ich mich immer über eine Spende an die (Kinder)krebshilfe oder eine kleine Aufmerksamkeit.
Studio Mitte
HappyMan
Tourist
6 0 1

Hi Mario,

danke für deine Antwort. Ist bei mir leider untergegangen. Auch war das ganz Thema etwas on hold.

Wir sind mittlerweile soweit das wir eine Lösung über ein zusätzliches Skript im Checkout anstreben weil alles Andere tatsächlich nicht funktioniert. Wie du schon sagtest.

Leider stellte sich jetzt heraus das deren Skript Probleme hat alle nötigen Informationen auszulesen da die Variable für den "transaction Ammount" bei Shopify wohl eine Andere ist als bei denen.

In deren Skript sieht es so aus:

<script type="text/javascript">

var ttConversionOptions = ttConversionOptions || [];

ttConversionOptions.push({

  type: 'sales',

  campaignID: 33756,

  productID: 52703,

  transactionID: '{{ order.order_number }}',

  transactionAmount: parseFloat({{ subtotal_price | divided_by: 100 }}) || 0,

  quantity: '1',

  descrMerchant: encodeURIComponent('Internal order ID: {{ order_id }}'),

  descrAffiliate....usw

 

In Gelb die betreffende Variable.

Hast du eine Idee wo ich die Variable finde die Shopify an dieser Stelle im Code nutzt?

Danke und Grüße,

Marco

r8r
Shopify Expert
2555 327 940

Hi @HappyMan Marco,

um's richtig zu verstehen – ihr verwendet jetzt die Checkout-Success Seite um den Code zu laden, korrekt?

Kannst Du genau definieren, was transactionAmount sein muss? Sprich, ich nehme an, den Parametern nach zu schliessen, dass das nicht der Warenkorb-Wert sein soll, sondern ein solcher Block pro Produkt benötigt wird, korrekt? Aber …

  • inkl. oder exkl. MwSt?
  • Inkl. oder exkl. etwaiger Rabatte?
  • inkl. oder exkl. Versandkosten?
  • welches Zahlenformat benötigen sie? (Komma/Punkt, Tausendertrennzeichen, …)
  • soll nur ein Zahlenwert übergeben werden oder auch ein Währungskürzel? Wenn ja, welches und wie?

Liebe Grüße,
Mario

★ Ja, man kann mich buchen; schreib mir eine Nachricht!
★ Hinterlass gerne ein Like und markiere meine Antwort gegebenenfalls als Lösung. Ich freue ich mich immer über eine Spende an die (Kinder)krebshilfe oder eine kleine Aufmerksamkeit.
Studio Mitte
HappyMan
Tourist
6 0 1

Hi Mario,

danke für deine Rückmeldung.

Zu den einzelnen Punkten:

  • inkl. oder exkl. MwSt? inklusive
  • Inkl. oder exkl. etwaiger Rabatte? inklusive
  • inkl. oder exkl. Versandkosten? inkl.
  • welches Zahlenformat benötigen sie? (Komma/Punkt, Tausendertrennzeichen, …) KOMMA
  • soll nur ein Zahlenwert übergeben werden oder auch ein Währungskürzel? Wenn ja, welches und wie? Währung nimmt das sich Script sich automatisch.

 

TransactionAmount ist laut der Firma der ENDBETRAG, der dem Kunde am Ende in seinem Warenkorb und Checkout Prozess angezegit wird:

HappyMan_0-1611659353812.jpeg

Grüße,

Marco

r8r
Shopify Expert
2555 327 940

Erfolg.

Hi @HappyMan – das sollte funktionieren:

var ttConversionOptions = ttConversionOptions || [];
ttConversionOptions.push({
  type: 'sales',
  campaignID: 33756,
  productID: 52703,
  transactionID: '{{ order.order_number }}',
  transactionAmount: parseFloat({{ checkout.subtotal_price | divided_by: 100.0 | round: 2 }}).toString().replace(/\./g, ',') || 0,
  // alternativ: transactionAmount: parseFloat({{ checkout.total_price | divided_by: 100.0 | round: 2 }}).toString().replace(/\./g, ',') || 0,
  quantity: '1',
  descrMerchant: encodeURIComponent('Internal order ID: {{ order_id }}'),
  // …
});

Ob du subtotal_price oder total_price benötigst hängt davon ab, was genau du haben willst. Hier die Doku und mein Testbeispiel:

Screenshot 2021-01-27 at 02.57.58.jpg

LG, Mario

★ Ja, man kann mich buchen; schreib mir eine Nachricht!
★ Hinterlass gerne ein Like und markiere meine Antwort gegebenenfalls als Lösung. Ich freue ich mich immer über eine Spende an die (Kinder)krebshilfe oder eine kleine Aufmerksamkeit.
Studio Mitte