Ejemplo n.º 1
0
    public function testTrackPageView()
    {
        $viewer = CMTest_TH::createUser();
        $environment = new CM_Frontend_Environment(CM_Site_Abstract::factory(), $viewer);
        $client = new CMService_AdWords_Client();
        $pushConversion = new ReflectionMethod($client, '_pushConversion');
        $pushConversion->setAccessible(true);
        $pushConversion->invoke($client, $viewer, CMService_AdWords_Conversion::fromJson('{"google_conversion_id":123456,"google_conversion_language":"en","google_conversion_format":"1","google_conversion_color":"666666","google_conversion_label":"label","google_remarketing_only":true,"google_conversion_value":123,"google_conversion_currency":"USD","google_custom_params":{"a":1,"b":2}}'));
        $pushConversion->invoke($client, $viewer, CMService_AdWords_Conversion::fromJson('{"google_conversion_id":789}'));
        $this->assertSame('', $client->getJs());
        $this->assertSame(<<<EOD
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion_async.js" charset="utf-8"></script>
EOD
, $client->getHtml($environment));
        $client->trackPageView($environment, '/');
        $this->assertSame(<<<EOD
window.google_trackConversion({"google_conversion_id":123456,"google_conversion_language":"en","google_conversion_format":"1","google_conversion_color":"666666","google_conversion_label":"label","google_remarketing_only":true,"google_conversion_value":123,"google_conversion_currency":"USD","google_custom_params":{"a":1,"b":2}});window.google_trackConversion({"google_conversion_id":789});
EOD
, $client->getJs());
        $this->assertSame(<<<EOD
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion_async.js" charset="utf-8"></script><script type="text/javascript">
/* <![CDATA[ */
window.google_trackConversion({"google_conversion_id":123456,"google_conversion_language":"en","google_conversion_format":"1","google_conversion_color":"666666","google_conversion_label":"label","google_remarketing_only":true,"google_conversion_value":123,"google_conversion_currency":"USD","google_custom_params":{"a":1,"b":2}});window.google_trackConversion({"google_conversion_id":789});
//]]>
</script>
EOD
, $client->getHtml($environment));
    }
Ejemplo n.º 2
0
 /**
  * @param CM_Model_User                $user
  * @param CMService_AdWords_Conversion $conversion
  */
 protected function _pushConversion(CM_Model_User $user, CMService_AdWords_Conversion $conversion)
 {
     $conversionJson = $conversion->toJson();
     $this->_pushTrackingData($user, ['conversion' => $conversionJson]);
 }
Ejemplo n.º 3
0
 /**
  * @param array $conversionData
  * @return CMService_AdWords_Conversion
  */
 public static function fromArray(array $conversionData)
 {
     $conversion = new CMService_AdWords_Conversion();
     $conversion->setId(isset($conversionData['google_conversion_id']) ? $conversionData['google_conversion_id'] : null);
     $conversion->setLanguage(isset($conversionData['google_conversion_language']) ? $conversionData['google_conversion_language'] : null);
     $conversion->setFormat(isset($conversionData['google_conversion_format']) ? $conversionData['google_conversion_format'] : null);
     $conversion->setColor(isset($conversionData['google_conversion_color']) ? $conversionData['google_conversion_color'] : null);
     $conversion->setLabel(isset($conversionData['google_conversion_label']) ? $conversionData['google_conversion_label'] : null);
     $conversion->setRemarketingOnly(isset($conversionData['google_remarketing_only']) ? $conversionData['google_remarketing_only'] : null);
     $conversion->setConversionValue(isset($conversionData['google_conversion_value']) ? $conversionData['google_conversion_value'] : null);
     $conversion->setConversionCurrency(isset($conversionData['google_conversion_currency']) ? $conversionData['google_conversion_currency'] : null);
     $conversion->setCustomParameterList(isset($conversionData['google_custom_params']) ? $conversionData['google_custom_params'] : null);
     return $conversion;
 }
Ejemplo n.º 4
0
    public function testFromJson()
    {
        $conversion = CMService_AdWords_Conversion::fromJson('{}');
        $this->assertSame(null, $conversion->getId());
        $this->assertSame(null, $conversion->getLanguage());
        $this->assertSame(null, $conversion->getFormat());
        $this->assertSame(null, $conversion->getColor());
        $this->assertSame(null, $conversion->getLabel());
        $this->assertSame(null, $conversion->getRemarketingOnly());
        $this->assertSame(null, $conversion->getConversionValue());
        $this->assertSame(null, $conversion->getConversionCurrency());
        $this->assertSame(null, $conversion->getCustomParameterList());
        $conversion = CMService_AdWords_Conversion::fromJson(<<<EOD
{
    "google_conversion_id": 123456,
    "google_conversion_language": "en",
    "google_conversion_format": "1",
    "google_conversion_color": "666666",
    "google_conversion_label": "label",
    "google_remarketing_only": true,
    "google_conversion_value": 123,
    "google_conversion_currency": "USD",
    "google_custom_params": {
        "a": 1,
        "b": 2
    }
}
EOD
);
        $this->assertSame(123456, $conversion->getId());
        $this->assertSame('en', $conversion->getLanguage());
        $this->assertSame('1', $conversion->getFormat());
        $this->assertSame('666666', $conversion->getColor());
        $this->assertSame('label', $conversion->getLabel());
        $this->assertSame(true, $conversion->getRemarketingOnly());
        $this->assertSame(123.0, $conversion->getConversionValue());
        $this->assertSame('USD', $conversion->getConversionCurrency());
        $this->assertSame(['a' => 1, 'b' => 2], $conversion->getCustomParameterList());
    }