请阅读此文,如果:
- 你想快速了解matomo是如何工作的
- 你想为matomo做出点贡献或者想了解它的架构
本文假定你已经对web技术有一定的了解,比如web应用、服务器、HTTP协议、PHP等等
介绍
Matomo主要做一下两件事情:
- 收集并存储分析数据
- 对已经存储的数据出具报表
为了实现上述目的,Matomo由以下几个部分共同参与完成:
- JavaScript追踪器由Matomo提供,可被包含到网页中
- 追踪器可以收集所在网页的数据,然后通过HTTP追踪接口发送给Matomo
- 归档任务运行并预处理数据(实时动态地或通过cron任务)
- 数据通过报表的形式进行展现,它们可以通过WEB接口或者HTTP报表接口来访问
欢迎加入Matomo中文网官方QQ群255820112(点击滚动至本页末可扫描二维码),随时提问,有问必答。
插件体系
Piwik的代码库有以下两部分组成:
- Matomo内核:它提供应用的基础架构和扩展点。
- 插件:它使用内核提供的扩展点来增加新的行为和内容到应用。
插件不仅是为第三方开发者定制开发设计;大部分的matomo功能也是基于插件形式开发的。Matomo内核被设计的尽量小。
这样,就存在两种插件:
- 默认插件:提供Matomo的基本特性,它们随版本一起发布。
- 可选插件:可以被手工安装(复制插件到plugin目录)或在页面中通过Piwik市场进行安装
代码库
下面是Matomo的代码库的主要文件和目录:
config/ #配置文件目录
core/ # Matomo内核类
lang/ # 多语种文件
plugins/ # 插件类及相关的静态文件
tests/
vendor/ # 利用Composer安装的类库
console # 命令行执行文件
index.php # WEB应用和HTTP接口的入口
piwik.php # HTTP追踪API的入口
piwik.js # 集成到网站的javascript
接口
Web应用
WEB应用的入口是根目录下的index.php。这个文件初始化所有事情并调用FrontController类。
前台控制器会基于URL参数将HTTP请求路由到特定插件的控制器。
/index.php?module=CoreHome&action=index&…
在这个例子中,前台控制前会调用CoreHome插件控制器中的index活动方法。
插件控制器会返回一个视图(通常是HTML内容)作为HTTP响应。
用户界面
Piwik的用户界面是基于HTML和JavaScript的。一些页面是由PHP控制器产生的HTML文档(使用Twig模板引擎生成),另外一些Matomo用户界面是基于AngularJS。
AngularJS是前端JavaScript框架,这就意味着用户界面是在客户端浏览器构建的,其中的数据是通过HTTP报表接口(下一章会介绍)获取的,格式为JSON。这也就意味着更好的用户体验,因为Matomo开发者构建了更加动态和更具互动性的应用。
Matomo长远路标的一部分就是将越来越多的Matomo用户界面转移到AngularJS。
HTTP报表接口
HTTP报表接口工作方式上类似于WEB应用。它的角色就是以一种机器可读的格式(XML,JSON,…)服务于报表。
它具有完全相同的入口,并且也是通过前台控制器进行分发。
/index.php?module=API&method=SEO.getRank&…
上面的网址表示插件名称是API,action没被指明则默认指向index。
接下来Piwik\Plugin\API\Controller类会被调用,然后它会将调用分发到目标API,就如同API调用的第二层前端控制器一样。在上述例子中,SEO.getRank代表Piwik\Plugin\SEO\API::getRank()会被调用。
HTTP追踪接口
HTTP接口使得JavaScript追踪器能够提交分析数据到Matomo,然后由Matomo进行保存。
它的入口有别于Matomo的Web应用和HTTP报表接口,它是通过piwik.php文件来完成。
了解更多关于HTTP追踪接口的内容。
命令行
Matomo通过./console提供命令行接口。它是基于Symfony控制台组件开发的。
插件可以开发命令并以以下方式调用
./console visitorgenerator:generate-visits
Command类位于 plugins/*/Commands并可以被Matomo自动监测到。
阅读更多关于Matomo命令行的内容
数据模型,数据处理和数据存储
Matomo让你可以收集数据,然后以报表的形式获取。让我们一起来看看其间Matomo是如何建模、处理和存储数据的。
日志数据:原始分析数据
HTTP追踪接口(如Piwik\Tracker组件)用来获取原始分析数据,我们称之为“日志数据”。
日志数据用Piwik\Tracker\Visit对象来表示,并被存储到下面几张表:
- log_visit:每次访问对应一条记录
- log_action:包含网站上各种类型的行为(如独立url,网页标题,下载网址)
- log_link_visit_action:访客的每个行为对应一条记录(网页浏览)
- log_conversion:包含访问过程中所有的转化(与目标匹配的行为)
- log_conversion_item:包含电子商务转化条目
这些表被设计和优化已达到最快的插入效率,因为追踪接口需要这样才能搞定大流量的网站。
关于这些表的内容(和它们对应的PHP实体)在“Matomo数据库结构”中有详细解释。
归档处理
以上数据库表无法快速获取具有高层次业务逻辑的数据:当数据量比较大的时候,将日志条目聚合到天、周、月会变得繁重。
归档处理会读取日志文件,并将其聚合成 “归档数据”。数据会被聚合并以以下方式存储:
- 天
- 周
- 月
- 年
- 自定义日期范围
归档数据可以是:
- 数值指标:它就是简单的数值(像网页访问数),它们被存储在archive_numeric_*表中,数据以float类型存储。
- 表记录:二维数据(可以是数值类型,也可以是其他任何类型),它用Piwik\DataTable对象来表示。它们被存储在archive_blob_*表中。对象是被序列化成了字符串,并被压缩存储在BLOB类型字段中。存储在数据库中的DataTable对象被称为records,用以区分DataTable。DataTable对象是通过Matomo接口操作和返回的,我们称之为reports。
所有数值指标或表记录都会以按天、按周、按月方式进行处理和存储。就拿入口页面报告来说,数据库中有每天的数据,每周的数据,每月的数据,每年的数据,甚至自定义日期范围对应的数据。这些数据看起来是冗余的,但它带来了读取效率的提高。
由于归档数据需要被快速请求,它们被分割到不同的月份了,所以在数据库中,你可以看到:
- archive_numeric_2014_10: 2014年10月的数值指标
- archive_blob_2014_10:2014年10月的报表
- archive_numeric_2014_11: 2014年11月的数值指标
- archive_blob_2014_11: 2014年11月的报表
归档表的内容在“Matomo数据库结构”中有详细介绍。归档过程在“Matomo归档原理”中有详细介绍。
从归档数据到报表
就像上面所展示的那样,数据会以数值指标或表记录的方式存储。报表(reports)是DataTable对象,它由插件中定义的API类生成。API类访问被持久化的数值指标和记录(records)并将其转化成可呈现的报表。
有时候,一个持久化的记录可以是多个API报告的数据源。
你可以在“Matomo报告”中阅读更多关于报告是如何被创建和服务的内容。
Piwik扩展点
Matomo内核只定义了主要的流程和行为。插件可以基于内核进行扩展和定义,有以下扩展点:
- 注册行为到事件(Events),或触发事件(Events)
- 实现特定类,Matomo可以自动识别它们
- 继承某些抽象基类
你可以在“Piwik扩展点”阅读更多关于此专题的内容。
I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?
sumatriptan uk pharmacy: ventolin uk pharmacy – cymbalta mail order pharmacy
viagra for sale in us: cheap generic india viagra – sildenafil price uk
cheap viagra pills online: VGR Sources – buy generic viagra in india
viagra 4 sale VGR Sources viagra pharmacy cost
viagra for women in india: viagra tablets pharmacy – 2 viagra pills
can i buy sildenafil over the counter in canada: cheapest sildenafil 50 mg – buy viagra in europe
online viagra best: where to buy real viagra – sildenafil over the counter india
https://vgrsources.com/# cheap generic viagra india
buy sildenafil 100mg online VGR Sources sildenafil pharmacy
generic viagra europe: where to buy cheap viagra in canada – generic viagra canada price
cheap real viagra: how do i get viagra online – can you order viagra from canada
generic drug for viagra VGR Sources canadian drugstore viagra
viagra pill cost canada: VGR Sources – sildenafil 25 mg mexico
https://vgrsources.com/# can i buy viagra over the counter
viagra china: buy viagra without a prescription – generic viagra online pharmacy uk
generic viagra pills online VGR Sources order viagra india
where to buy viagra over the counter uk: generic viagra india price – where to buy viagra cheap
viagra india price: sildenafil pills canada – buy viagra online cheap usa
where to get viagra in usa sildenafil tablets online australia viagra 25mg price in india
how to get a prescription for viagra: VGR Sources – sildenafil tablets 120mg
best price viagra canada: VGR Sources – viagra medicine in india
https://vgrsources.com/# buy viagra online mastercard
buying viagra in canada safely: VGR Sources – sildenafil no prescription free shipping
viagra singapore pharmacy VGR Sources sildenafil 5 mg
sildenafil 20 mg tablets price: VGR Sources – how do you get viagra
generic viagra price in india: VGR Sources – price of sildenafil 50 mg
best price for sildenafil: female viagra tablet in india online purchase – viagra online canada mastercard
viagra online europe VGR Sources canadian pharmacy viagra online
buy viagra soft: VGR Sources – viagra 100mg india price
https://vgrsources.com/# chewable sildenafil
viagra gel uk: VGR Sources – purchase viagra online canada
best sildenafil coupon VGR Sources canadian pharmacy generic viagra
how to get a prescription for viagra: sildenafil generic no prescription – sildenafil 100 mg tablet coupon
online pharmacy canada generic viagra: VGR Sources – canadian pharmacy viagra uk
sildenafil 20 mg coupon: VGR Sources – cheap viagra pills
viagra 25mg: VGR Sources – generic viagra buy online
400 mg sildenafil buy generic viagra soft tabs us online pharmacy viagra
where to viagra online: can i buy viagra without a prescription – how to get viagra in mexico
how to buy viagra in india: VGR Sources – sildenafil 90mg
https://vgrsources.com/# buy viagra 100 mg online
generic viagra 50mg price: best online pharmacy uk viagra – how to order viagra in india
sildenafil online pharmacy india: VGR Sources – where to order viagra online
buy viagra online canadian pharmacy: online canadian pharmacy viagra – generic sildenafil citrate
sildenafil prescription prices VGR Sources sildenafil nz pharmacy
viagra for sale uk: buy viagra 100 mg online – how to get viagra
viagra cost in canada: VGR Sources – buy generic viagra in us
https://vgrsources.com/# how to order sildenafil
sildenafil 20 mg tablets price: viagra cheapest – where can i order generic viagra
can i buy viagra over the counter in usa VGR Sources where can i order real viagra
how to get viagra tablets in india: VGR Sources – 100mg sildenafil coupon
can i order viagra online in canada: VGR Sources – sildenafil brand name in india
sildenafil 20 mg pharmacy VGR Sources canada viagra buy
viagra online uk paypal: VGR Sources – sildenafil 50mg for sale
viagra pill price in mexico: how to buy viagra online usa – sildenafil online prices
https://vgrsources.com/# can you order viagra online
best viagra tablets india: buy sildenafil 20 mg – can i buy sildenafil over the counter in uk
cheap viagra 100mg tablets VGR Sources purchase viagra tablets
where can i buy generic viagra: VGR Sources – order viagra online canada
CrestorPharm: CrestorPharm – paxlovid and rosuvastatin
prednisone 5443: where can i buy prednisone without prescription – PredniPharm
PredniPharm PredniPharm buy prednisone 1 mg mexico
Crestor Pharm: CrestorPharm – Crestor Pharm
http://lipipharm.com/# LipiPharm
CrestorPharm: Crestor Pharm – Order rosuvastatin online legally
PredniPharm where can i buy prednisone online without a prescription PredniPharm
Lipi Pharm: lipitor rash – LipiPharm
Rosuvastatin tablets without doctor approval: side effects of crestor 10 mg – CrestorPharm
Crestor Pharm: Crestor 10mg / 20mg / 40mg online – rosuvastatin nursing implications
PredniPharm prednisone sale Predni Pharm
http://semaglupharm.com/# FDA-approved Rybelsus alternative
Semaglu Pharm: semaglutide where to inject – SemagluPharm
Predni Pharm: PredniPharm – prednisone 20 mg tablets
PredniPharm cheap prednisone 20 mg prednisone brand name in india
prednisone 20 mg tablets coupon: Predni Pharm – PredniPharm
https://prednipharm.com/# prednisone 20 mg tablet price
Crestor Pharm rosuvastatin side effects erectile dysfunction Crestor Pharm
LipiPharm: LipiPharm – lipitor manufacturer
Crestor Pharm: does rosuvastatin make you tired – CrestorPharm
Where to buy Semaglutide legally Semaglu Pharm Safe delivery in the US
Crestor mail order USA: Order rosuvastatin online legally – Crestor mail order USA
canada pharmacy prednisone: PredniPharm – PredniPharm
Crestor Pharm: Online statin therapy without RX – CrestorPharm
PredniPharm PredniPharm prednisone 4 mg daily
https://semaglupharm.com/# Where to buy Semaglutide legally
Semaglu Pharm: SemagluPharm – No prescription diabetes meds online
prednisone online for sale PredniPharm Predni Pharm
does lipitor cause headaches: Lipi Pharm – LipiPharm
buy generic prednisone online: Predni Pharm – Predni Pharm
LipiPharm Generic Lipitor fast delivery Lipi Pharm
https://prednipharm.shop/# Predni Pharm
Crestor Pharm: Crestor Pharm – gif crestor
can you buy prednisone over the counter in mexico: prednisone in canada – Predni Pharm
CrestorPharm Crestor Pharm Crestor Pharm
п»їBuy Rybelsus online USA: Where to buy Semaglutide legally – SemagluPharm
LipiPharm: LipiPharm – side effects of missing a dose of lipitor
does rosuvastatin cause weight gain CrestorPharm Best price for Crestor online USA
Online statin drugs no doctor visit: Lipi Pharm – Lipi Pharm
https://semaglupharm.shop/# Semaglu Pharm
can crestor lower blood pressure: Crestor Pharm – Crestor Pharm
п»їBuy Crestor without prescription Order rosuvastatin online legally CrestorPharm
Semaglu Pharm: SemagluPharm – Affordable Rybelsus price
side effect of semaglutide: semaglutide b12 compound – Semaglu Pharm
SemagluPharm: SemagluPharm – tirzepatide vs semaglutide dosage chart
Lipi Pharm: lipitor tablets – FDA-approved generic statins online
https://semaglupharm.com/# Semaglu Pharm
CrestorPharm Best price for Crestor online USA Crestor Pharm
No RX Lipitor online: Cheap Lipitor 10mg / 20mg / 40mg – LipiPharm
https://semaglupharm.shop/# semaglutide & tirzepatide weight loss clinic
Rybelsus online pharmacy reviews: SemagluPharm – rybelsus benefits
No RX Lipitor online Lipi Pharm Lipi Pharm
http://crestorpharm.com/# Crestor 10mg / 20mg / 40mg online
Lipi Pharm: lipitor and grapefruit interaction – Lipi Pharm
https://semaglupharm.com/# generic rybelsus cost
Predni Pharm: 10 mg prednisone – prednisone 20mg for sale
Crestor 10mg / 20mg / 40mg online Affordable cholesterol-lowering pills Crestor Pharm
http://semaglupharm.com/# SemagluPharm
Lipi Pharm: Lipi Pharm – atorvastatin coupon
Safe online pharmacy for Crestor: Crestor Pharm – Crestor Pharm
https://semaglupharm.shop/# Semaglu Pharm
Predni Pharm PredniPharm Predni Pharm
https://crestorpharm.shop/# crestor 10 mg price
PredniPharm: prednisone 5mg over the counter – PredniPharm
Affordable cholesterol-lowering pills: crestor versus atorvastatin – No doctor visit required statins
https://semaglupharm.shop/# Online pharmacy Rybelsus
PredniPharm PredniPharm PredniPharm
Predni Pharm: Predni Pharm – PredniPharm
LipiPharm: when should you take atorvastatin – atorvastatin versus pravastatin
http://semaglupharm.com/# semaglutide before and after 3 months
CrestorPharm п»їBuy Crestor without prescription Crestor Pharm
prednisone 10 mg online: Predni Pharm – how much is prednisone 10mg
rybelsus reddit weight loss: SemagluPharm – rybelsus recall
https://semaglupharm.shop/# Semaglu Pharm
http://semaglupharm.com/# SemagluPharm
Crestor Pharm Crestor Pharm can you have grapefruit with crestor
SemagluPharm: Rybelsus 3mg 7mg 14mg – Semaglu Pharm
5mg semaglutide dosing chart: SemagluPharm – Semaglu Pharm
http://semaglupharm.com/# SemagluPharm
crestor rosuvastatin calcium Crestor Pharm rosuvastatin and osteoporosis
SemagluPharm: Semaglu Pharm – semaglutide ban
Semaglu Pharm: SemagluPharm – Semaglu Pharm
https://semaglupharm.com/# another name for rybelsus
https://prednipharm.com/# prednisone uk over the counter
No doctor visit required statins Buy cholesterol medicine online cheap CrestorPharm
SemagluPharm: Where to buy Semaglutide legally – SemagluPharm
Predni Pharm: prednisone buy no prescription – prednisone brand name in india
https://semaglupharm.com/# SemagluPharm
where is crestor made CrestorPharm Affordable cholesterol-lowering pills
Meds From Mexico Meds From Mexico Meds From Mexico
https://canadapharmglobal.com/# canadian pharmacy online store
buying prescription drugs in mexico: medicine in mexico pharmacies – mexican border pharmacies shipping to usa
India Pharm Global: world pharmacy india – buy prescription drugs from india
northwest pharmacy canada legal to buy prescription drugs from canada canadian pharmacy meds review
http://canadapharmglobal.com/# precription drugs from canada
https://indiapharmglobal.com/# cheapest online pharmacy india
reputable mexican pharmacies online: mexican pharmaceuticals online – п»їbest mexican online pharmacies
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me? https://accounts.binance.com/fr/register?ref=GJY4VW8W
canadian online pharmacy reviews: canada pharmacy online – legitimate canadian pharmacy
mail order pharmacy india India Pharm Global Online medicine order
https://indiapharmglobal.com/# Online medicine home delivery
Meds From Mexico: Meds From Mexico – Meds From Mexico
India Pharm Global: indian pharmacy online – India Pharm Global
http://canadapharmglobal.com/# reliable canadian pharmacy
India Pharm Global pharmacy website india best india pharmacy
https://indiapharmglobal.com/# India Pharm Global
reputable indian pharmacies: India Pharm Global – India Pharm Global
Meds From Mexico: purple pharmacy mexico price list – pharmacies in mexico that ship to usa
medicin apotek apotek på nätet billigt hur stavas välkommen
http://papafarma.com/# melatonina 5 mg opiniones
lagerstatus apotek: gurkmeja apotek – Svenska Pharma
Papa Farma: Papa Farma – opiniones verificadas es fiable
http://efarmaciait.com/# EFarmaciaIt
apotek se recept Svenska Pharma Svenska Pharma
https://papafarma.shop/# Papa Farma
EFarmaciaIt: EFarmaciaIt – bar farmacia torino
EFarmaciaIt: EFarmaciaIt – cos’ГЁ expose 100 mg
https://papafarma.shop/# Papa Farma
EFarmaciaIt monodose significato EFarmaciaIt
gliatilin flaconcini prezzo: EFarmaciaIt – fucidin crema cosa serve
http://papafarma.com/# farmacias en sevilla la nueva
Svenska Pharma: Svenska Pharma – Svenska Pharma
Rask Apotek Rask Apotek ringorm behandling apotek
Svenska Pharma: apotek hudkrГ¤m – meadow svenska
http://svenskapharma.com/# Svenska Pharma
cos’ГЁ expose 100 mg tiche 25 fucicort crema prezzo amazon
https://raskapotek.com/# Rask Apotek
https://efarmaciait.shop/# EFarmaciaIt
EFarmaciaIt: emla crema prezzo farmacia – EFarmaciaIt
Svenska Pharma Svenska Pharma sГ¶ndagsГ¶ppna apotek
Papa Farma: Papa Farma – Papa Farma
http://svenskapharma.com/# Svenska Pharma
Rask Apotek: apotek munnsГҐr – Rask Apotek
medrol a che serve vitamina c brucia pelle farmacia on line spedizione gratuita
http://svenskapharma.com/# sverige hopp apotek flashback
hurtigtest apotek korona: apotek ГҐpen sГёndag – Rask Apotek
https://efarmaciait.com/# gentalyn bambini
Svenska Pharma: Svenska Pharma – Svenska Pharma
apotek toppen Svenska Pharma apoteker
https://svenskapharma.shop/# mediciner på nätet
a cosa serve ismigen: coupon amicafarmacia – EFarmaciaIt
Svenska Pharma: visir apotek – Svenska Pharma
https://svenskapharma.com/# Svenska Pharma
finasteride compresse enterogermina ГЁ detraibile foglietto illustrativo zoely
medicina vertiserc: delecit flaconcini – nicetile 500 mg compresse prezzo
https://svenskapharma.shop/# aminosyror lista
Rask Apotek: Rask Apotek – apotek ГҐpningstider
https://raskapotek.com/# bomullsdotter apotek
Papa Farma Papa Farma parafarmacias on line
Pharma Jetzt Pharma Jetzt lavita login
Pharma Jetzt: pet apotheke – PharmaJetzt
https://medicijnpunt.shop/# Medicijn Punt
MedicijnPunt: MedicijnPunt – medicatie apotheek
http://pharmaconfiance.com/# lysopaine covid
Pharma Confiance Pharma Confiance pharmacie de garde caen
https://pharmajetzt.shop/# Pharma Jetzt
MedicijnPunt: MedicijnPunt – MedicijnPunt
MedicijnPunt: medicijn online – apotheek recept
https://medicijnpunt.shop/# apteka internetowa holandia
Grifulvin V: ingles pharmacy – Pharma Connect USA
onlien apotheke PharmaJetzt shopapptheke
http://medicijnpunt.com/# MedicijnPunt
Pharma Confiance: flagyl creme – Pharma Confiance
http://medicijnpunt.com/# MedicijnPunt
PharmaConnectUSA: PharmaConnectUSA – Pharma Connect USA
PharmaConnectUSA Pharma Connect USA online pharmacy ativan
apotheke luitpold: apotheke online gГјnstig – apotheek online
http://pharmaconnectusa.com/# PharmaConnectUSA
apotheke versandkostenfrei ab 10 euro: apotheke online bestellen – PharmaJetzt
https://pharmaconnectusa.shop/# wal mart store pharmacy
Pharma Connect USA PharmaConnectUSA augmentin online pharmacy
constipation aprГЁs imodium: gГ©lule amoxicilline – panier pour dГ©ambulateur
https://pharmajetzt.shop/# Pharma Jetzt
trimix online pharmacy: cobix generic celebrex pharmacy – zofran pharmacy
Pharma Confiance Pharma Confiance stock pharmacie
https://pharmajetzt.shop/# online apotheke germany
Pharma Confiance: Pharma Confiance – Pharma Confiance
Pharma Connect USA: PharmaConnectUSA – diazepam online pharmacy
https://pharmaconnectusa.shop/# Pharma Connect USA
homГ©opathie bain de bretagne Pharma Confiance wegovy en ligne
https://pharmaconnectusa.shop/# Pharma Connect USA
PharmaConnectUSA: people’s pharmacy lipitor – PharmaConnectUSA
test dyslexie adulte gratuit en ligne: Pharma Confiance – commande viagra cialis
mediherz versandapotheke online shop bestellen PharmaJetzt shop apothek
https://pharmaconfiance.shop/# parapharmacie grenoble
Pharma Confiance: ceinture dg femme – Pharma Confiance
Pharma Confiance: pharmacie en ligne sans frais de port – gbd 100
apotheke obline luitpold-apotheke selbitz medikamente
http://pharmaconfiance.com/# Pharma Confiance
https://pharmaconnectusa.com/# PharmaConnectUSA
percocet online pharmacy no prescription: kaiser permanente pharmacy – rx care pharmacy zephyrhills fl
Pharma Connect USA: PharmaConnectUSA – rite aid pharmacy hours
https://pharmaconnectusa.shop/# Pharma Connect USA
pharmacie dabo magasin matГ©riel mГ©dical autour de moi pharmacie d’argouges
Pharma Connect USA: pharmacy store layout design – PharmaConnectUSA
bestellen medicijnen: farmacie online – medicatie bestellen apotheek
http://pharmajetzt.com/# versandapotheke deutschland
Medicijn Punt: de online apotheek – MedicijnPunt
luitpold apotheke bad steben online-shop: online apotehke – apotal apotheke online bestellen
get cialis from online pharmacy dutasteride from dr reddy’s or inhouse pharmacy PharmaConnectUSA
Pharma Jetzt: internet apotheke test – PharmaJetzt
apo med: apotheke versandapotheke – PharmaJetzt
https://medicijnpunt.com/# online pharmacy nl
beste online apotheek: Medicijn Punt – MedicijnPunt
https://medicijnpunt.com/# Medicijn Punt
Pharma Jetzt: apptheke online – Pharma Jetzt
http://pharmaconnectusa.com/# Pharma Connect USA
Pharma Confiance Pharma Confiance brosse Г dent Г©lectrique sonique
Pharma Confiance: meilleure pharmacie en ligne – pharmagold
http://pharmaconfiance.com/# actualités pharmacie
online medicine shopping: online pharmacy legit – PharmaConnectUSA
MedicijnPunt bestellen apotheek MedicijnPunt
apotheke obline: Pharma Jetzt – Pharma Jetzt
http://pharmajetzt.com/# Pharma Jetzt
MedicijnPunt: onlineapotheek – MedicijnPunt
http://pharmajetzt.com/# PharmaJetzt
Pharma Confiance Pharma Confiance metronidazole traitement
Pharma Connect USA: advair pharmacy price – Pharma Connect USA
http://pharmaconfiance.com/# Pharma Confiance
medik: Pharma Jetzt – PharmaJetzt
http://pharmaconfiance.com/# Pharma Confiance
Pharma Confiance Pharma Confiance Pharma Confiance
https://medicijnpunt.shop/# medicijnen op recept
Medicijn Punt: apteka nl online – holland apotheke
versand apotheke: apoheke online – apotheke medikamentencheck
fortГ© pharma collagГЁne avis Pharma Confiance Pharma Confiance
https://pharmajetzt.com/# PharmaJetzt
domperidone pharmacy online: Pharma Connect USA – pharmacy choice loratadine
valacyclovir hcl online pharmacy: safe online pharmacy – Pharma Connect USA
https://pharmajetzt.com/# Pharma Jetzt
Pharma Confiance pharmacie en ligne top 10 boutique nose
http://pharmaconnectusa.com/# online pharmacy cytotec no prescription
Pharma Jetzt: Pharma Jetzt – PharmaJetzt
pseudoephedrine kopen in nederland: medicijnen zonder recept – MedicijnPunt
https://pharmajetzt.shop/# onlien apotheke
express pharmacy generic viagra mexico pharmacy Pharma Connect USA
PharmaJetzt: online shop apotheke – PharmaJetzt
https://medicijnpunt.shop/# online medicijnen bestellen apotheek
MedicijnPunt: MedicijnPunt – Medicijn Punt
medicijnen online kopen inloggen apotheek MedicijnPunt
http://medicijnpunt.com/# Medicijn Punt
Pharma Connect USA: Pharma Connect USA – finpecia inhouse pharmacy
medicijnen bestellen bij apotheek: medicijnen bestellen online – MedicijnPunt
Pharma Confiance: viagra medicament – laboratoire charcot lyon 5
https://medicijnpunt.shop/# Medicijn Punt
pharmacie de garde lyon 9 pharmacie o Pharma Confiance
cipro pharmacy: Pharma Connect USA – Imdur
internet viagra pharmacy: Pharma Connect USA – pharmacy rx one reviews
https://medicijnpunt.com/# apotheek winkel 24 review
https://pharmaconfiance.com/# Pharma Confiance
Pharma Connect USA: prime rx pharmacy software – senior rx care pharmacy
online pharmacy netherlands: Medicijn Punt – online apotheke
https://pharmaconfiance.com/# Pharma Confiance
rx software pharmacy: lorazepam pharmacy online – cheapest order pharmacy viagra
Pharma Connect USA: veterinary online pharmacy – seroquel xr online pharmacy
https://medicijnpunt.shop/# Medicijn Punt
inloggen apotheek Medicijn Punt pharmacy nl
PharmaConnectUSA: reliable online pharmacy reviews – percocet online pharmacy no prescription
online pharmacy quick delivery: PharmaConnectUSA – target pharmacy cephalexin
https://pharmaconfiance.shop/# Pharma Confiance
apotek online: aotheke – PharmaJetzt
viagra sans ordonnance quel pays: Pharma Confiance – Pharma Confiance
Medicijn Punt MedicijnPunt online apotheker
https://medicijnpunt.com/# apotheek apotheek
https://pharmaconfiance.shop/# Pharma Confiance
MedicijnPunt: Medicijn Punt – pillen bestellen
п»їmedicijnen bestellen: MedicijnPunt – internetapotheek
Pharma Confiance: Pharma Confiance – livraison doliprane
farmacia near me pharmacie paris 15 Pharma Confiance
https://medicijnpunt.shop/# Medicijn Punt
klack 95: onlie apotheke – shopapoteke
target pharmacy omeprazole: pharmacy viagra sans ordonnance – rxmedico online pharmacy
viagra online france: Pharma Confiance – grande pharmacie autour de moi
https://medicijnpunt.shop/# apotheek aan huis
https://medicijnpunt.com/# MedicijnPunt
luitpold apotheke bad steben PharmaJetzt Pharma Jetzt
pharmacy nl: MedicijnPunt – MedicijnPunt
Medicijn Punt: online apotheker – Medicijn Punt
https://pharmaconfiance.com/# faut il une ordonnance pour acheter du viagra
billiger apotheke: medikamente bestellen ohne rezept – Pharma Jetzt
MedicijnPunt: mijn medicijnen bestellen – onl8ne drogist
Medicijn Punt recept medicijnen online apotheek nederland
qatar pharmacy cialis: Pharma Connect USA – pharmacy store
https://pharmajetzt.com/# apotheke germany
Pharma Connect USA: Pharma Connect USA – PharmaConnectUSA
Pharma Jetzt Pharma Jetzt versand apotheke auf rechnung
Medicijn Punt: Medicijn Punt – medicatie apotheek
https://pharmajetzt.com/# apotal.de versandapotheke
MedicijnPunt: MedicijnPunt – Medicijn Punt
inline apotheke: Pharma Jetzt – versandkosten shop apotheke
Pharma Confiance meilleur dd Pharma Confiance
https://pharmaconfiance.shop/# Pharma Confiance
Pharma Confiance: pharmacie au tour de moi – Pharma Confiance
http://pharmaconfiance.com/# kétoconazole gel
MedicijnPunt: pil online bestellen – Medicijn Punt
PharmaJetzt: shop apotheken online – PharmaJetzt
canada drugs canadian pharmacy drugs online best canadian online pharmacy reviews
https://canrxdirect.shop/# online canadian pharmacy
canadian pharmacy review: canadianpharmacy com – canadian pharmacy world
https://canrxdirect.com/# canadian pharmacy world reviews
escrow pharmacy canada: CanRx Direct – canadian pharmacy checker
mexico pharmacies prescription drugs medicine in mexico pharmacies mexican border pharmacies shipping to usa
mexico drug stores pharmacies: TijuanaMeds – п»їbest mexican online pharmacies
legal canadian pharmacy online: cheapest pharmacy canada – canadapharmacyonline
http://canrxdirect.com/# pharmacy com canada
https://tijuanameds.com/# TijuanaMeds
TijuanaMeds medicine in mexico pharmacies TijuanaMeds
reputable mexican pharmacies online: TijuanaMeds – purple pharmacy mexico price list
https://indimedsdirect.com/# IndiMeds Direct
https://tijuanameds.shop/# mexican pharmaceuticals online
TijuanaMeds TijuanaMeds buying prescription drugs in mexico
TijuanaMeds: TijuanaMeds – TijuanaMeds
https://indimedsdirect.com/# IndiMeds Direct
best online pharmacy india: buy medicines online in india – IndiMeds Direct
canadian 24 hour pharmacy CanRx Direct reliable canadian pharmacy reviews
https://tijuanameds.shop/# TijuanaMeds
mexican pharmaceuticals online: TijuanaMeds – TijuanaMeds
https://tijuanameds.shop/# п»їbest mexican online pharmacies
canadian pharmacy 365: best canadian pharmacy to buy from – canadian pharmacy no scripts
reputable canadian online pharmacies CanRx Direct canadian pharmacy online
https://canrxdirect.com/# legit canadian pharmacy online
buy medicines online in india: IndiMeds Direct – top 10 online pharmacy in india
Farmacia Asequible: farmacia cerca de mi 24 horas – Farmacia Asequible
RxFree Meds: online pharmacy delhi – RxFree Meds
http://rxfreemeds.com/# RxFree Meds
enclomiphene price enclomiphene for sale enclomiphene for sale
farmacia cerca de mo: Farmacia Asequible – como saber en que farmacia hay un medicamento
https://rxfreemeds.shop/# Maxalt
https://enclomiphenebestprice.com/# enclomiphene testosterone
drogueria madrid: Farmacia Asequible – precio de movicol
RxFree Meds RxFree Meds RxFree Meds
enclomiphene buy: enclomiphene testosterone – enclomiphene
enclomiphene: enclomiphene – enclomiphene for sale
https://rxfreemeds.shop/# discount pharmacy card
enclomiphene for men enclomiphene citrate enclomiphene best price
http://rxfreemeds.com/# RxFree Meds
Farmacia Asequible: Farmacia Asequible – farmacia algeciras
mebendazole boots pharmacy: online pharmacy no presc uk – RxFree Meds
https://rxfreemeds.com/# india pharmacy ambien
Farmacia Asequible farmacia 24h madrid Farmacia Asequible
Atorlip-10: metronidazole online pharmacy – RxFree Meds
RxFree Meds: ziprasidone online pharmacy – ez pharmacy
cbd store mГЎlaga casenlax comprar online Farmacia Asequible
https://enclomiphenebestprice.com/# enclomiphene online
oregon board of pharmacy: RxFree Meds – offshore pharmacy no prescription
enclomiphene buy: enclomiphene for men – enclomiphene for sale
https://enclomiphenebestprice.com/# enclomiphene buy
pharmacy bangkok viagra RxFree Meds RxFree Meds
opiniones zzzquil: mycostatin precio sin receta – Farmacia Asequible
http://farmaciaasequible.com/# Farmacia Asequible
Farmacia Asequible: Farmacia Asequible – comprar farmacia en madrid
RxFree Meds RxFree Meds cialis pharmacy coupon
https://farmaciaasequible.shop/# Farmacia Asequible
RxFree Meds: participating lipitor pharmacy – RxFree Meds
rite aid pharmacy abilify: brooks pharmacy store locator – RxFree Meds
http://farmaciaasequible.com/# Farmacia Asequible
Farmacia Asequible Farmacia Asequible Farmacia Asequible
productos parafarmacia online wegovy espaГ±a precio Farmacia Asequible
http://farmaciaasequible.com/# farmacia sol
RxFree Meds: RxFree Meds – RxFree Meds
RxFree Meds RxFree Meds domperidone online pharmacy
http://enclomiphenebestprice.com/# enclomiphene price
enclomiphene best price: enclomiphene – enclomiphene
comprar cialis entrega rГЎpida: farmacia poligono – farmacia cerca de mi abierta ahora
Farmacia Asequible farmacia 24 horas lugo Farmacia Asequible
10 ml: Farmacia Asequible – farmacia barata cordoba
https://farmaciaasequible.shop/# Farmacia Asequible
Farmacia Asequible: la farmacia barata – Farmacia Asequible
https://enclomiphenebestprice.com/# enclomiphene for sale
RxFree Meds RxFree Meds RxFree Meds
provigil generic online pharmacy: RxFree Meds – RxFree Meds
http://rxfreemeds.com/# montelukast pharmacy
RxFree Meds RxFree Meds online pharmacy fincar
viagra from usa pharmacy: venlafaxine pharmacy – target pharmacy store
best retail pharmacy viagra price: RxFree Meds – bupropion pharmacy prices
https://enclomiphenebestprice.com/# enclomiphene
http://enclomiphenebestprice.com/# buy enclomiphene online
Farmacia Asequible Farmacia Asequible Farmacia Asequible
Farmacia Asequible: Farmacia Asequible – Farmacia Asequible
https://rxfreemeds.shop/# ed pills online pharmacy
enclomiphene price enclomiphene price buy enclomiphene online
RxFree Meds: pharmacy online usa – RxFree Meds
enclomiphene testosterone: enclomiphene for sale – enclomiphene best price
http://enclomiphenebestprice.com/# enclomiphene testosterone
Farmacia Asequible: Farmacia Asequible – Farmacia Asequible
https://farmaciaasequible.shop/# Farmacia Asequible
https://rxfreemeds.shop/# RxFree Meds
enclomiphene best price: enclomiphene for men – enclomiphene buy
farmacias cerca de mi: codigo promocional dodot amazon – Farmacia Asequible
Farmacia Asequible senshio precio amazon Farmacia Asequible
http://farmaciaasequible.com/# farmacia piña
enclomiphene online: enclomiphene price – enclomiphene for sale
enclomiphene for men enclomiphene for men enclomiphene
https://farmaciaasequible.shop/# Farmacia Asequible
https://enclomiphenebestprice.com/# enclomiphene for men
Farmacia Asequible: farmacio online – Farmacia Asequible
buy enclomiphene online: enclomiphene online – enclomiphene best price
https://rxfreemeds.shop/# rx discount pharmacy dade city fl
buy enclomiphene online: enclomiphene online – enclomiphene best price
http://enclomiphenebestprice.com/# buy enclomiphene online
Farmacia Asequible: Farmacia Asequible – Farmacia Asequible
atorvastatin online pharmacy RxFree Meds accutane online pharmacy
https://enclomiphenebestprice.com/# enclomiphene testosterone
lortab pharmacy online: RxFree Meds – pharmacy usa store
pharmacy selling viagra: sildenafil citrate pharmacy – RxFree Meds
https://farmaciaasequible.com/# Farmacia Asequible
farmacia palma Farmacia Asequible ozempic price in spain
king soopers pharmacy: RxFree Meds – viagra australia pharmacy
venta farmacia alicante: farmacias de – farmГ cia i parafarmГ cia
https://enclomiphenebestprice.com/# enclomiphene for men
Farmacia Asequible Farmacia Asequible Farmacia Asequible
http://rxfreemeds.com/# RxFree Meds
RxFree Meds: RxFree Meds – platinum rx pharmacy
enclomiphene for sale: enclomiphene citrate – enclomiphene citrate
https://farmaciaasequible.com/# Farmacia Asequible
Farmacia Asequible: Farmacia Asequible – farmacias mas baratas online
enclomiphene citrate: enclomiphene best price – enclomiphene citrate
Farmacia Asequible Farmacia Asequible Farmacia Asequible
http://enclomiphenebestprice.com/# enclomiphene for sale
RxFree Meds: RxFree Meds – meijer pharmacy cipro
Farmacia Asequible cual es la mejor farmacia online Farmacia Asequible
https://rxfreemeds.shop/# RxFree Meds
online pharmacy ativan no prescription: hydrochlorothiazide online pharmacy – RxFree Meds
https://enclomiphenebestprice.com/# enclomiphene for men
best rx pharmacy software us pharmacy viagra no prescription RxFree Meds
enclomiphene: enclomiphene for men – enclomiphene testosterone
https://farmaciaasequible.shop/# farmà cia cerca de mi
https://rxfreemeds.shop/# dog pharmacy online
farmacia piГ±a Farmacia Asequible para farmacia
RxFree Meds: RxFree Meds – online viagra pharmacy
pharmacy store requirements: RxFree Meds – Aebgjoync
https://enclomiphenebestprice.shop/# buy enclomiphene online
MexiMeds Express reputable mexican pharmacies online medication from mexico pharmacy
best online pharmacy viagra: mail order pharmacy india – giant eagle pharmacy
trusted canadian pharmacy: MediSmart Pharmacy – canadian pharmacy meds
https://medismartpharmacy.shop/# allmed rx specialty pharmacy
https://indomedsusa.com/# indian pharmacy
MexiMeds Express pharmacies in mexico that ship to usa mexican mail order pharmacies
local pharmacy prices viagra: MediSmart Pharmacy – amlodipine pharmacy prices
mexico drug stores pharmacies: buying prescription drugs in mexico – pharmacies in mexico that ship to usa
https://indomedsusa.shop/# best india pharmacy
reputable mexican pharmacies online: MexiMeds Express – best online pharmacies in mexico
discount pharmacy mexico gastro health international pharmacy domperidone
https://meximedsexpress.com/# MexiMeds Express
MexiMeds Express: mexico pharmacies prescription drugs – MexiMeds Express
https://meximedsexpress.com/# MexiMeds Express
fluconazole online pharmacy: MediSmart Pharmacy – springbok pharmacy viagra
online pharmacy tadalafil 20mg MediSmart Pharmacy lortab pharmacy online
http://medismartpharmacy.com/# cialis bangkok pharmacy
world pharmacy india: IndoMeds USA – IndoMeds USA
MexiMeds Express: MexiMeds Express – buying prescription drugs in mexico
https://medismartpharmacy.com/# venlafaxine xr online pharmacy
IndoMeds USA IndoMeds USA indian pharmacies safe
https://meximedsexpress.com/# mexican online pharmacies prescription drugs
medicine in mexico pharmacies: buying from online mexican pharmacy – MexiMeds Express
pharmacy viagra jokes: MediSmart Pharmacy – schedule rx pharmacy one source
price chopper pharmacy mexican border pharmacies female viagra pharmacy
http://meximedsexpress.com/# MexiMeds Express
canadian pharmacies: MediSmart Pharmacy – best canadian pharmacy
mexican online pharmacies prescription drugs: MexiMeds Express – mexican rx online
http://indomedsusa.com/# IndoMeds USA
https://meximedsexpress.shop/# MexiMeds Express
reputable indian online pharmacy IndoMeds USA IndoMeds USA
buying drugs from canada: MediSmart Pharmacy – canada pharmacy
rx crossroads pharmacy phone number: Tadalis SX – local pharmacy prices viagra
http://indomedsusa.com/# reputable indian pharmacies
buy ultram from trusted pharmacy azithromycin boots pharmacy rite aid pharmacy viagra prices
Thank you, your article surprised me, there is such an excellent point of view. Thank you for sharing, I learned a lot.