# Recept: telefonos konverzió több üzlethelyszínhez

> Google Ads telefonhívás-konverzió követése több üzlethelyszínre, helyszínenként saját telefonszámmal és konverziós címkével.

Ez a recept a Google Ads telefonhívás-konverziót követi több üzlethelyszínre, mindegyikhez saját telefonszámmal és saját konverziós címkével. A Pixel Manager beállításai között megadható **Phone Conversion Number** mező ugyanis csak egy számot és egy címkét tud tárolni.

## Mikor kell ez a recept?

Ha például hét üzleted van, mindegyiknek saját telefonszáma, helyszínenként külön szám és külön konverziós címke kell. A recept a [Command queue](https://hub.hellowp.io/hu/plugins/woocommerce-pixel-manager/fejlesztoknek-command-queue/) és a hozzájárulás-kezelés segítségével oldja meg, hogy minden helyszín száma a megfelelő időpontban, és csak hozzájárulás után legyen követve.

> **A Google oldalanként egy számot követ.** A Google weboldali hívásfigyelése a megjelenített telefonszámot egy Google-átirányító számra cseréli, hogy a hívásokat a hirdetéskattintásokhoz rendelje. Az alap gtag JavaScripttel ez oldalanként egyetlen számra működik. A támogatott modell tehát: minden helyszínnek saját oldala van, és az oldal van hozzárendelve a számhoz.

## Előkészületek

1. A Google Adsben hozz létre helyszínenként egy „Calls from a website” (hívások weboldalról) konverziós műveletet. Mindegyik kap egy konverziós címkét, így egy helyszín teljes konverziós célja például `AW-123456789/AbCdEf123`.
2. Adj minden helyszínnek külön oldalt, amely az adott helyszín telefonszámát mutatja.
3. A Pixel Manager beállításai között hagyd üresen a **Phone Conversion Number** és a **Phone Conversion Label** mezőt, mert ezt a receptet használod az összes helyszínre.

## A kód

Add hozzá a gyermektéma `functions.php` fájljához. Töltsd ki a `$locations` tömböt (soronként egy helyszínoldal), és igazítsd az `is_page()` feltételt az oldalaidhoz.

```php
add_action( 'wp_head', function () {

	$locations = array(
		'contact-new-york' => array( 'number' => '+1 212-555-0100', 'label' => 'AW-123456789/AbCdEf123' ),
		'contact-boston'   => array( 'number' => '+1 617-555-0100', 'label' => 'AW-123456789/GhIjKl456' ),
		'contact-chicago'  => array( 'number' => '+1 312-555-0100', 'label' => 'AW-123456789/MnOpQr789' ),
	);

	$entry = null;
	foreach ( $locations as $page => $data ) {
		if ( is_page( $page ) ) {
			$entry = $data;
			break;
		}
	}
	if ( null === $entry ) {
		return;
	}
	?>
	<script>
	window._pmwq = window._pmwq || [];
	window._pmwq.push( function () {
		var phoneNumber     = <?php echo wp_json_encode( $entry['number'] ); ?>;
		var conversionLabel = <?php echo wp_json_encode( $entry['label'] ); ?>;

		var tries = 0;
		var poll  = setInterval( function () {
			if ( ++tries > 200 ) { clearInterval( poll ); return; }
			if ( typeof window.gtag !== 'function' ) { return; }
			if ( ! pmw.googleConfigConditionsMet || ! pmw.googleConfigConditionsMet( { type: 'marketing' } ) ) { return; }
			gtag( 'config', conversionLabel, { phone_conversion_number: phoneNumber } );
			clearInterval( poll );
		}, 300 );
	} );
	</script>
	<?php
}, 1 );
```

A `number` értéke pontosan egyezzen azzal, ahogy a szám az oldalon megjelenik (ugyanazok a számjegyek, ugyanaz a formátum), különben a Google dinamikus számbeillesztése nem találja meg és nem tudja lecserélni.

## Hogyan működik?

- A Command queue (`window._pmwq`) azonnal lefuttatja a kódot, amint a Pixel Manager API elérhető, akárhogyan és akármikor töltődik be a bővítmény (a szkript halasztásával és a lusta betöltéssel is).
- A lekérdezés (poll) azt kezeli, hogy a `gtag` aszinkron jön létre, és a hozzájárulás késve is megérkezhet. 300 ezredmásodpercenként ellenőrzi, hogy létezik-e a `window.gtag`, és megvan-e a hozzájárulás. Ha igen, egyszer lefuttatja a hívást, majd leáll. Biztonsági korlátként nagyjából 60 másodperc után feladja.
- A hozzájárulást ugyanaz az ellenőrzés kapuzza, amelyet a Pixel Manager a saját Google Ads konverzióihoz használ (`pmw.googleConfigConditionsMet({ type: 'marketing' })`). Ha a Google Consent Mode aktív, ez `true`-t ad, és a hozzájárulást a gtag kezeli. Ha nem aktív, a hívás csak marketing-hozzájárulás után fut le. A telefonhívás-konverzió marketingjel, ezért a `marketing` a helyes kategória.

## Több szám egy oldalon

Ha az összes helyszín számát egyetlen közös oldalon szeretnéd megjeleníteni, az alap gtag címke ezeket nem tudja követni. Erre a Google a speciális, kézi telepítést vagy a Google Tag Managert ajánlja, mert azzal követhető több telefonszám egy weboldalon. Ez a recept ezt nem fedi le, a javasolt megoldás az oldalankénti beállítás.

## Hibaelhárítás

- **A szám nem cserélődik le.** Ellenőrizd, hogy a `number` pontosan egyezik-e az oldalon látható számjegyekkel. A Google számcseréjét kipróbálhatod, ha az oldal URL-jéhez hozzáfűzöd a `#google-wcc-debug` részt.
- **Semmi nem fut le.** Nézd meg, hogy az `is_page()` feltételed illeszkedik-e az oldalra, és hogy a Google Ads pixel aktív-e a Pixel Managerben. A kód csak marketing-hozzájárulás után fut le.
- **A konverzió rossz helyszínhez kerül.** Minden helyszínnek saját konverziós műveletre (saját címkére) és saját oldalra van szüksége a Google Adsben.

Kapcsolódó fejezetek: [Command queue](https://hub.hellowp.io/hu/plugins/woocommerce-pixel-manager/fejlesztoknek-command-queue/), [Eseményszűrők](https://hub.hellowp.io/hu/plugins/woocommerce-pixel-manager/fejlesztoknek-esemenyszurok/), [Google Ads](https://hub.hellowp.io/hu/plugins/woocommerce-pixel-manager/pixelek-google-ads/).
