mirror of
https://github.com/plausible/analytics.git
synced 2024-11-22 10:43:38 +03:00
Acquisition channel (#4489)
* WIP * Add acquisition channel * Add detection for gclid and msclkid * Add GA4 source categories file as external resource
This commit is contained in:
parent
90b81b615f
commit
d56d6998df
@ -26,6 +26,7 @@ defmodule Plausible.ClickhouseEventV2 do
|
|||||||
# Session attributes
|
# Session attributes
|
||||||
field :referrer, :string
|
field :referrer, :string
|
||||||
field :referrer_source, :string
|
field :referrer_source, :string
|
||||||
|
field :channel, Ch, type: "LowCardinality(String)"
|
||||||
field :utm_medium, :string
|
field :utm_medium, :string
|
||||||
field :utm_source, :string
|
field :utm_source, :string
|
||||||
field :utm_campaign, :string
|
field :utm_campaign, :string
|
||||||
@ -70,6 +71,7 @@ defmodule Plausible.ClickhouseEventV2 do
|
|||||||
:session_id,
|
:session_id,
|
||||||
:referrer,
|
:referrer,
|
||||||
:referrer_source,
|
:referrer_source,
|
||||||
|
:channel,
|
||||||
:utm_medium,
|
:utm_medium,
|
||||||
:utm_source,
|
:utm_source,
|
||||||
:utm_campaign,
|
:utm_campaign,
|
||||||
|
@ -58,6 +58,7 @@ defmodule Plausible.ClickhouseSessionV2 do
|
|||||||
field :utm_term, :string
|
field :utm_term, :string
|
||||||
field :referrer, :string
|
field :referrer, :string
|
||||||
field :referrer_source, :string
|
field :referrer_source, :string
|
||||||
|
field :channel, Ch, type: "LowCardinality(String)"
|
||||||
|
|
||||||
field :country_code, Ch, type: "LowCardinality(FixedString(2))"
|
field :country_code, Ch, type: "LowCardinality(FixedString(2))"
|
||||||
field :subdivision1_code, Ch, type: "LowCardinality(String)"
|
field :subdivision1_code, Ch, type: "LowCardinality(String)"
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
defmodule Plausible.Ingestion.Acquisition do
|
defmodule Plausible.Ingestion.Acquisition do
|
||||||
@moduledoc false
|
@moduledoc false
|
||||||
|
@external_resource "priv/ga4-source-categories.csv"
|
||||||
|
@source_categories Application.app_dir(:plausible, "priv/ga4-source-categories.csv")
|
||||||
|
|> File.read!()
|
||||||
|
|> NimbleCSV.RFC4180.parse_string(skip_headers: false)
|
||||||
|
|> Enum.map(fn [source, category] -> {source, category} end)
|
||||||
|
|> Enum.into(%{})
|
||||||
|
|
||||||
def init() do
|
def init() do
|
||||||
:ets.new(__MODULE__, [
|
:ets.new(__MODULE__, [
|
||||||
@ -24,4 +30,149 @@ defmodule Plausible.Ingestion.Acquisition do
|
|||||||
_ -> source
|
_ -> source
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def get_channel(request, source) do
|
||||||
|
cond do
|
||||||
|
cross_network?(request) -> "Cross-network"
|
||||||
|
paid_shopping?(request, source) -> "Paid Shopping"
|
||||||
|
paid_search?(request, source) -> "Paid Search"
|
||||||
|
paid_social?(request, source) -> "Paid Social"
|
||||||
|
paid_video?(request, source) -> "Paid Video"
|
||||||
|
display?(request) -> "Display"
|
||||||
|
paid_other?(request) -> "Paid Other"
|
||||||
|
organic_shopping?(request, source) -> "Organic Shopping"
|
||||||
|
organic_social?(request, source) -> "Organic Social"
|
||||||
|
organic_video?(request, source) -> "Organic Video"
|
||||||
|
search_source?(source) -> "Organic Search"
|
||||||
|
email?(request) -> "Email"
|
||||||
|
affiliates?(request) -> "Affiliates"
|
||||||
|
audio?(request) -> "Audio"
|
||||||
|
sms?(request) -> "SMS"
|
||||||
|
mobile_push_notifications?(request, source) -> "Mobile Push Notifications"
|
||||||
|
referral?(request, source) -> "Referral"
|
||||||
|
true -> "Direct"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
defp cross_network?(request) do
|
||||||
|
String.contains?(request.query_params["utm_campaign"] || "", "cross-network")
|
||||||
|
end
|
||||||
|
|
||||||
|
defp paid_shopping?(request, source) do
|
||||||
|
(shopping_source?(source) or shopping_campaign?(request.query_params["utm_campaign"])) and
|
||||||
|
paid_medium?(request.query_params["utm_medium"])
|
||||||
|
end
|
||||||
|
|
||||||
|
defp paid_search?(request, source) do
|
||||||
|
(search_source?(source) and paid_medium?(request.query_params["utm_medium"])) or
|
||||||
|
(source == "Google" and !!request.query_params["gclid"]) or
|
||||||
|
(source == "Bing" and !!request.query_params["msclkid"])
|
||||||
|
end
|
||||||
|
|
||||||
|
defp paid_social?(request, source) do
|
||||||
|
social_source?(source) and paid_medium?(request.query_params["utm_medium"])
|
||||||
|
end
|
||||||
|
|
||||||
|
defp paid_video?(request, source) do
|
||||||
|
video_source?(source) and paid_medium?(request.query_params["utm_medium"])
|
||||||
|
end
|
||||||
|
|
||||||
|
defp display?(request) do
|
||||||
|
request.query_params["utm_medium"] in [
|
||||||
|
"display",
|
||||||
|
"banner",
|
||||||
|
"expandable",
|
||||||
|
"interstitial",
|
||||||
|
"cpm"
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
defp paid_other?(request) do
|
||||||
|
paid_medium?(request.query_params["utm_medium"])
|
||||||
|
end
|
||||||
|
|
||||||
|
defp organic_shopping?(request, source) do
|
||||||
|
shopping_source?(source) or shopping_campaign?(request.query_params["utm_campaign"])
|
||||||
|
end
|
||||||
|
|
||||||
|
defp organic_social?(request, source) do
|
||||||
|
social_source?(source) or
|
||||||
|
request.query_params["utm_medium"] in [
|
||||||
|
"social",
|
||||||
|
"social-network",
|
||||||
|
"social-media",
|
||||||
|
"sm",
|
||||||
|
"social network",
|
||||||
|
"social media"
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
defp organic_video?(request, source) do
|
||||||
|
video_source?(source) or String.contains?(request.query_params["utm_medium"] || "", "video")
|
||||||
|
end
|
||||||
|
|
||||||
|
defp referral?(request, source) do
|
||||||
|
request.query_params["utm_medium"] in ["referral", "app", "link"] or
|
||||||
|
!!source
|
||||||
|
end
|
||||||
|
|
||||||
|
@email_tags ["email", "e-mail", "e_mail", "e mail"]
|
||||||
|
defp email?(request) do
|
||||||
|
String.contains?(request.query_params["utm_source"] || "", @email_tags) or
|
||||||
|
String.contains?(request.query_params["utm_medium"] || "", @email_tags)
|
||||||
|
end
|
||||||
|
|
||||||
|
defp affiliates?(request) do
|
||||||
|
request.query_params["utm_medium"] == "affiliate"
|
||||||
|
end
|
||||||
|
|
||||||
|
defp audio?(request) do
|
||||||
|
request.query_params["utm_medium"] == "audio"
|
||||||
|
end
|
||||||
|
|
||||||
|
defp sms?(request) do
|
||||||
|
request.query_params["utm_source"] == "sms" or
|
||||||
|
request.query_params["utm_medium"] == "sms"
|
||||||
|
end
|
||||||
|
|
||||||
|
defp mobile_push_notifications?(request, source) do
|
||||||
|
medium = request.query_params["utm_medium"] || ""
|
||||||
|
|
||||||
|
String.ends_with?(medium, "push") or
|
||||||
|
String.contains?(medium, ["mobile", "notification"]) or
|
||||||
|
source == "firebase"
|
||||||
|
end
|
||||||
|
|
||||||
|
# # Helper functions for source and medium checks
|
||||||
|
defp shopping_source?(nil), do: false
|
||||||
|
|
||||||
|
defp shopping_source?(source) do
|
||||||
|
@source_categories[String.downcase(source)] == "SOURCE_CATEGORY_SHOPPING"
|
||||||
|
end
|
||||||
|
|
||||||
|
defp shopping_campaign?(campaign_name) do
|
||||||
|
Regex.match?(~r/^(.*(([^a-df-z]|^)shop|shopping).*)$/, campaign_name || "")
|
||||||
|
end
|
||||||
|
|
||||||
|
defp search_source?(nil), do: false
|
||||||
|
|
||||||
|
defp search_source?(source) do
|
||||||
|
@source_categories[String.downcase(source)] == "SOURCE_CATEGORY_SEARCH"
|
||||||
|
end
|
||||||
|
|
||||||
|
defp social_source?(nil), do: false
|
||||||
|
|
||||||
|
defp social_source?(source) do
|
||||||
|
@source_categories[String.downcase(source)] == "SOURCE_CATEGORY_SOCIAL"
|
||||||
|
end
|
||||||
|
|
||||||
|
defp video_source?(nil), do: false
|
||||||
|
|
||||||
|
defp video_source?(source) do
|
||||||
|
@source_categories[String.downcase(source)] == "SOURCE_CATEGORY_VIDEO"
|
||||||
|
end
|
||||||
|
|
||||||
|
defp paid_medium?(medium) do
|
||||||
|
Regex.match?(~r/^(.*cp.*|ppc|retargeting|paid.*)$/, medium || "")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -250,9 +250,12 @@ defmodule Plausible.Ingestion.Event do
|
|||||||
|
|
||||||
defp put_referrer(%__MODULE__{} = event) do
|
defp put_referrer(%__MODULE__{} = event) do
|
||||||
ref = parse_referrer(event.request.uri, event.request.referrer)
|
ref = parse_referrer(event.request.uri, event.request.referrer)
|
||||||
|
source = get_referrer_source(event.request, ref)
|
||||||
|
channel = Plausible.Ingestion.Acquisition.get_channel(event.request, source)
|
||||||
|
|
||||||
update_session_attrs(event, %{
|
update_session_attrs(event, %{
|
||||||
referrer_source: get_referrer_source(event.request, ref),
|
channel: channel,
|
||||||
|
referrer_source: source,
|
||||||
referrer: clean_referrer(ref)
|
referrer: clean_referrer(ref)
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
@ -95,6 +95,7 @@ defmodule Plausible.Session.CacheStore do
|
|||||||
pageviews: if(event.name == "pageview", do: 1, else: 0),
|
pageviews: if(event.name == "pageview", do: 1, else: 0),
|
||||||
events: 1,
|
events: 1,
|
||||||
referrer: Map.get(session_attributes, :referrer),
|
referrer: Map.get(session_attributes, :referrer),
|
||||||
|
channel: Map.get(session_attributes, :channel),
|
||||||
referrer_source: Map.get(session_attributes, :referrer_source),
|
referrer_source: Map.get(session_attributes, :referrer_source),
|
||||||
utm_medium: Map.get(session_attributes, :utm_medium),
|
utm_medium: Map.get(session_attributes, :utm_medium),
|
||||||
utm_source: Map.get(session_attributes, :utm_source),
|
utm_source: Map.get(session_attributes, :utm_source),
|
||||||
|
820
priv/ga4-source-categories.csv
Normal file
820
priv/ga4-source-categories.csv
Normal file
@ -0,0 +1,820 @@
|
|||||||
|
source,source category
|
||||||
|
360.cn,SOURCE_CATEGORY_SEARCH
|
||||||
|
43things,SOURCE_CATEGORY_SOCIAL
|
||||||
|
43things.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
51.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
5ch.net,SOURCE_CATEGORY_SOCIAL
|
||||||
|
Google Shopping,SOURCE_CATEGORY_SHOPPING
|
||||||
|
Hatena,SOURCE_CATEGORY_SOCIAL
|
||||||
|
IGShopping,SOURCE_CATEGORY_SHOPPING
|
||||||
|
ImageShack,SOURCE_CATEGORY_SOCIAL
|
||||||
|
aax-us-east.amazon-adsystem.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
aax.amazon-adsystem.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
academia.edu,SOURCE_CATEGORY_SOCIAL
|
||||||
|
activerain,SOURCE_CATEGORY_SOCIAL
|
||||||
|
activerain.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
activeworlds,SOURCE_CATEGORY_SOCIAL
|
||||||
|
activeworlds.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
addthis,SOURCE_CATEGORY_SOCIAL
|
||||||
|
addthis.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
airg.ca,SOURCE_CATEGORY_SOCIAL
|
||||||
|
alibaba,SOURCE_CATEGORY_SHOPPING
|
||||||
|
alibaba.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
alice,SOURCE_CATEGORY_SEARCH
|
||||||
|
allnurses.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
allrecipes.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
alumniclass,SOURCE_CATEGORY_SOCIAL
|
||||||
|
alumniclass.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
amazon,SOURCE_CATEGORY_SHOPPING
|
||||||
|
amazon.co.uk,SOURCE_CATEGORY_SHOPPING
|
||||||
|
amazon.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
ameba.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ameblo.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
americantowns,SOURCE_CATEGORY_SOCIAL
|
||||||
|
americantowns.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
amp.reddit.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ancestry.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
anobii,SOURCE_CATEGORY_SOCIAL
|
||||||
|
anobii.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
answerbag,SOURCE_CATEGORY_SOCIAL
|
||||||
|
answerbag.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
answers.yahoo.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
aol,SOURCE_CATEGORY_SEARCH
|
||||||
|
aolanswers,SOURCE_CATEGORY_SOCIAL
|
||||||
|
aolanswers.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
apps.facebook.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
apps.shopify.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
ar.pinterest.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ar.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
artstation.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ask,SOURCE_CATEGORY_SEARCH
|
||||||
|
askubuntu,SOURCE_CATEGORY_SOCIAL
|
||||||
|
askubuntu.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
asmallworld.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
at.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
athlinks,SOURCE_CATEGORY_SOCIAL
|
||||||
|
athlinks.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
au.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
auone,SOURCE_CATEGORY_SEARCH
|
||||||
|
avg,SOURCE_CATEGORY_SEARCH
|
||||||
|
away.vk.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
awe.sm,SOURCE_CATEGORY_SOCIAL
|
||||||
|
b.hatena.ne.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
baby-gaga,SOURCE_CATEGORY_SOCIAL
|
||||||
|
baby-gaga.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
babyblog.ru,SOURCE_CATEGORY_SOCIAL
|
||||||
|
babylon,SOURCE_CATEGORY_SEARCH
|
||||||
|
badoo,SOURCE_CATEGORY_SOCIAL
|
||||||
|
badoo.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
baidu,SOURCE_CATEGORY_SEARCH
|
||||||
|
bebo,SOURCE_CATEGORY_SOCIAL
|
||||||
|
bebo.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
beforeitsnews,SOURCE_CATEGORY_SOCIAL
|
||||||
|
beforeitsnews.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
bharatstudent,SOURCE_CATEGORY_SOCIAL
|
||||||
|
bharatstudent.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
biglobe,SOURCE_CATEGORY_SEARCH
|
||||||
|
biglobe.co.jp,SOURCE_CATEGORY_SEARCH
|
||||||
|
biglobe.ne.jp,SOURCE_CATEGORY_SEARCH
|
||||||
|
biip.no,SOURCE_CATEGORY_SOCIAL
|
||||||
|
bing,SOURCE_CATEGORY_SEARCH
|
||||||
|
biswap.org,SOURCE_CATEGORY_SOCIAL
|
||||||
|
bit.ly,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blackcareernetwork.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blackplanet,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blackplanet.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blip.fm,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blog.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blog.feedspot.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blog.goo.ne.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blog.naver.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blog.twitch.tv,SOURCE_CATEGORY_VIDEO
|
||||||
|
blog.yahoo.co.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blogg.no,SOURCE_CATEGORY_SOCIAL
|
||||||
|
bloggang.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blogger,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blogger.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blogher,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blogher.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
bloglines,SOURCE_CATEGORY_SOCIAL
|
||||||
|
bloglines.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blogs.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blogsome,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blogsome.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blogspot,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blogspot.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blogster,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blogster.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blurtit,SOURCE_CATEGORY_SOCIAL
|
||||||
|
blurtit.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
bookmarks.yahoo.co.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
bookmarks.yahoo.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
br.pinterest.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
br.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
brightkite,SOURCE_CATEGORY_SOCIAL
|
||||||
|
brightkite.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
brizzly,SOURCE_CATEGORY_SOCIAL
|
||||||
|
brizzly.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
business.facebook.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
buzzfeed,SOURCE_CATEGORY_SOCIAL
|
||||||
|
buzzfeed.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
buzznet,SOURCE_CATEGORY_SOCIAL
|
||||||
|
buzznet.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ca.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
cafe.naver.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
cafemom,SOURCE_CATEGORY_SOCIAL
|
||||||
|
cafemom.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
camospace,SOURCE_CATEGORY_SOCIAL
|
||||||
|
camospace.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
canalblog.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
care.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
care2,SOURCE_CATEGORY_SOCIAL
|
||||||
|
care2.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
caringbridge.org,SOURCE_CATEGORY_SOCIAL
|
||||||
|
catster,SOURCE_CATEGORY_SOCIAL
|
||||||
|
catster.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
cbnt.io,SOURCE_CATEGORY_SOCIAL
|
||||||
|
cellufun,SOURCE_CATEGORY_SOCIAL
|
||||||
|
cellufun.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
centerblog.net,SOURCE_CATEGORY_SOCIAL
|
||||||
|
centrum.cz,SOURCE_CATEGORY_SEARCH
|
||||||
|
ch.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
chat.zalo.me,SOURCE_CATEGORY_SOCIAL
|
||||||
|
checkout.shopify.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
checkout.stripe.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
chegg.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
chicagonow,SOURCE_CATEGORY_SOCIAL
|
||||||
|
chicagonow.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
chiebukuro.yahoo.co.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
cl.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
classmates,SOURCE_CATEGORY_SOCIAL
|
||||||
|
classmates.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
classquest,SOURCE_CATEGORY_SOCIAL
|
||||||
|
classquest.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
cn.bing.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
cnn,SOURCE_CATEGORY_SEARCH
|
||||||
|
co.pinterest.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
co.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
cocolog-nifty,SOURCE_CATEGORY_SOCIAL
|
||||||
|
cocolog-nifty.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
comcast,SOURCE_CATEGORY_SEARCH
|
||||||
|
conduit,SOURCE_CATEGORY_SEARCH
|
||||||
|
copainsdavant.linternaute.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
couchsurfing.org,SOURCE_CATEGORY_SOCIAL
|
||||||
|
cozycot,SOURCE_CATEGORY_SOCIAL
|
||||||
|
cozycot.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
cr.shopping.naver.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
cr2.shopping.naver.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
crackle,SOURCE_CATEGORY_VIDEO
|
||||||
|
crackle.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
cross.tv,SOURCE_CATEGORY_SOCIAL
|
||||||
|
crunchyroll,SOURCE_CATEGORY_SOCIAL
|
||||||
|
crunchyroll.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
curiositystream,SOURCE_CATEGORY_VIDEO
|
||||||
|
curiositystream.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
cyworld,SOURCE_CATEGORY_SOCIAL
|
||||||
|
cyworld.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
cz.pinterest.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
d.hatena.ne.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
d.tube,SOURCE_CATEGORY_VIDEO
|
||||||
|
dailymotion,SOURCE_CATEGORY_VIDEO
|
||||||
|
dailymotion.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
dailystrength.org,SOURCE_CATEGORY_SOCIAL
|
||||||
|
dashboard.twitch.tv,SOURCE_CATEGORY_VIDEO
|
||||||
|
daum,SOURCE_CATEGORY_SEARCH
|
||||||
|
daum.net,SOURCE_CATEGORY_SEARCH
|
||||||
|
de.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
deluxe.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
deviantart,SOURCE_CATEGORY_SOCIAL
|
||||||
|
deviantart.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
dianping,SOURCE_CATEGORY_SOCIAL
|
||||||
|
dianping.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
digg,SOURCE_CATEGORY_SOCIAL
|
||||||
|
digg.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
diigo,SOURCE_CATEGORY_SOCIAL
|
||||||
|
diigo.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
discover.hubpages.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
disneyplus,SOURCE_CATEGORY_VIDEO
|
||||||
|
disneyplus.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
disqus,SOURCE_CATEGORY_SOCIAL
|
||||||
|
disqus.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
dk.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
dogpile,SOURCE_CATEGORY_SEARCH
|
||||||
|
dogpile.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
dogster,SOURCE_CATEGORY_SOCIAL
|
||||||
|
dogster.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
dol2day,SOURCE_CATEGORY_SOCIAL
|
||||||
|
dol2day.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
doostang,SOURCE_CATEGORY_SOCIAL
|
||||||
|
doostang.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
dopplr,SOURCE_CATEGORY_SOCIAL
|
||||||
|
dopplr.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
douban,SOURCE_CATEGORY_SOCIAL
|
||||||
|
douban.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
draft.blogger.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
draugiem.lv,SOURCE_CATEGORY_SOCIAL
|
||||||
|
drugs-forum,SOURCE_CATEGORY_SOCIAL
|
||||||
|
drugs-forum.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
duckduckgo,SOURCE_CATEGORY_SEARCH
|
||||||
|
dzone,SOURCE_CATEGORY_SOCIAL
|
||||||
|
dzone.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ebay,SOURCE_CATEGORY_SHOPPING
|
||||||
|
ebay.co.uk,SOURCE_CATEGORY_SHOPPING
|
||||||
|
ebay.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
ebay.com.au,SOURCE_CATEGORY_SHOPPING
|
||||||
|
ebay.de,SOURCE_CATEGORY_SHOPPING
|
||||||
|
ecosia.org,SOURCE_CATEGORY_SEARCH
|
||||||
|
edublogs.org,SOURCE_CATEGORY_SOCIAL
|
||||||
|
elftown,SOURCE_CATEGORY_SOCIAL
|
||||||
|
elftown.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
email.seznam.cz,SOURCE_CATEGORY_SEARCH
|
||||||
|
eniro,SOURCE_CATEGORY_SEARCH
|
||||||
|
epicurious.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
es.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
espanol.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
etsy,SOURCE_CATEGORY_SHOPPING
|
||||||
|
etsy.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
everforo.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
exalead.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
exblog.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
excite.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
extole,SOURCE_CATEGORY_SOCIAL
|
||||||
|
extole.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
facebook,SOURCE_CATEGORY_SOCIAL
|
||||||
|
facebook.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
faceparty,SOURCE_CATEGORY_SOCIAL
|
||||||
|
faceparty.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fandom.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fanpop,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fanpop.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fark,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fark.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fast.wistia.net,SOURCE_CATEGORY_VIDEO
|
||||||
|
fb,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fb.me,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fc2,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fc2.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
feedspot,SOURCE_CATEGORY_SOCIAL
|
||||||
|
feministing,SOURCE_CATEGORY_SOCIAL
|
||||||
|
feministing.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fi.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
filmaffinity,SOURCE_CATEGORY_SOCIAL
|
||||||
|
filmaffinity.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
firmy.cz,SOURCE_CATEGORY_SEARCH
|
||||||
|
flickr,SOURCE_CATEGORY_SOCIAL
|
||||||
|
flickr.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
flipboard,SOURCE_CATEGORY_SOCIAL
|
||||||
|
flipboard.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
folkdirect,SOURCE_CATEGORY_SOCIAL
|
||||||
|
folkdirect.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
foodservice,SOURCE_CATEGORY_SOCIAL
|
||||||
|
foodservice.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
forums.androidcentral.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
forums.crackberry.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
forums.imore.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
forums.nexopia.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
forums.webosnation.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
forums.wpcentral.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fotki,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fotki.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fotolog,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fotolog.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
foursquare,SOURCE_CATEGORY_SOCIAL
|
||||||
|
foursquare.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fr.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
free.facebook.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
friendfeed,SOURCE_CATEGORY_SOCIAL
|
||||||
|
friendfeed.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fruehstueckstreff.org,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fubar,SOURCE_CATEGORY_SOCIAL
|
||||||
|
fubar.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
gaiaonline,SOURCE_CATEGORY_SOCIAL
|
||||||
|
gaiaonline.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
gamerdna,SOURCE_CATEGORY_SOCIAL
|
||||||
|
gamerdna.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
gather.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
geni.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
getpocket.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
glassboard,SOURCE_CATEGORY_SOCIAL
|
||||||
|
glassboard.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
glassdoor,SOURCE_CATEGORY_SOCIAL
|
||||||
|
glassdoor.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
globo,SOURCE_CATEGORY_SEARCH
|
||||||
|
go.mail.ru,SOURCE_CATEGORY_SEARCH
|
||||||
|
godtube,SOURCE_CATEGORY_SOCIAL
|
||||||
|
godtube.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
goldenline.pl,SOURCE_CATEGORY_SOCIAL
|
||||||
|
goldstar,SOURCE_CATEGORY_SOCIAL
|
||||||
|
goldstar.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
goo.gl,SOURCE_CATEGORY_SOCIAL
|
||||||
|
gooblog,SOURCE_CATEGORY_SOCIAL
|
||||||
|
goodreads,SOURCE_CATEGORY_SOCIAL
|
||||||
|
goodreads.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
google,SOURCE_CATEGORY_SEARCH
|
||||||
|
google+,SOURCE_CATEGORY_SOCIAL
|
||||||
|
google-play,SOURCE_CATEGORY_SEARCH
|
||||||
|
googlegroups.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
googleplus,SOURCE_CATEGORY_SOCIAL
|
||||||
|
govloop,SOURCE_CATEGORY_SOCIAL
|
||||||
|
govloop.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
gowalla,SOURCE_CATEGORY_SOCIAL
|
||||||
|
gowalla.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
gree.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
groups.google.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
gulli.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
gutefrage.net,SOURCE_CATEGORY_SOCIAL
|
||||||
|
habbo,SOURCE_CATEGORY_SOCIAL
|
||||||
|
habbo.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
help.hulu.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
help.netflix.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
hi5,SOURCE_CATEGORY_SOCIAL
|
||||||
|
hi5.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
hk.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
hootsuite,SOURCE_CATEGORY_SOCIAL
|
||||||
|
hootsuite.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
houzz,SOURCE_CATEGORY_SOCIAL
|
||||||
|
houzz.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
hoverspot,SOURCE_CATEGORY_SOCIAL
|
||||||
|
hoverspot.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
hr.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
hu.pinterest.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
hubculture,SOURCE_CATEGORY_SOCIAL
|
||||||
|
hubculture.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
hubpages.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
hulu,SOURCE_CATEGORY_VIDEO
|
||||||
|
hulu.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
hyves.net,SOURCE_CATEGORY_SOCIAL
|
||||||
|
hyves.nl,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ibibo,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ibibo.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
id.pinterest.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
id.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
id.twitch.tv,SOURCE_CATEGORY_VIDEO
|
||||||
|
identi.ca,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ig,SOURCE_CATEGORY_SOCIAL
|
||||||
|
imageshack.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
imageshack.us,SOURCE_CATEGORY_SOCIAL
|
||||||
|
imvu,SOURCE_CATEGORY_SOCIAL
|
||||||
|
imvu.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
in.pinterest.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
in.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
incredimail,SOURCE_CATEGORY_SEARCH
|
||||||
|
insanejournal,SOURCE_CATEGORY_SOCIAL
|
||||||
|
insanejournal.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
instagram,SOURCE_CATEGORY_SOCIAL
|
||||||
|
instagram.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
instapaper,SOURCE_CATEGORY_SOCIAL
|
||||||
|
instapaper.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
internations.org,SOURCE_CATEGORY_SOCIAL
|
||||||
|
interpals.net,SOURCE_CATEGORY_SOCIAL
|
||||||
|
intherooms,SOURCE_CATEGORY_SOCIAL
|
||||||
|
intherooms.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
iq.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
iqiyi,SOURCE_CATEGORY_VIDEO
|
||||||
|
iqiyi.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
irc-galleria.net,SOURCE_CATEGORY_SOCIAL
|
||||||
|
is.gd,SOURCE_CATEGORY_SOCIAL
|
||||||
|
it.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
italki,SOURCE_CATEGORY_SOCIAL
|
||||||
|
italki.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
jammerdirect,SOURCE_CATEGORY_SOCIAL
|
||||||
|
jammerdirect.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
jappy.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
jappy.de,SOURCE_CATEGORY_SOCIAL
|
||||||
|
jobs.netflix.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
justin.tv,SOURCE_CATEGORY_VIDEO
|
||||||
|
kaboodle.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
kakao,SOURCE_CATEGORY_SOCIAL
|
||||||
|
kakao.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
kakaocorp.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
kaneva,SOURCE_CATEGORY_SOCIAL
|
||||||
|
kaneva.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
kin.naver.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
kvasir,SOURCE_CATEGORY_SEARCH
|
||||||
|
l.facebook.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
l.instagram.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
l.messenger.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
last.fm,SOURCE_CATEGORY_SOCIAL
|
||||||
|
lens.google.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
librarything,SOURCE_CATEGORY_SOCIAL
|
||||||
|
librarything.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
lifestream.aol.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
line,SOURCE_CATEGORY_SOCIAL
|
||||||
|
line.me,SOURCE_CATEGORY_SOCIAL
|
||||||
|
linkedin,SOURCE_CATEGORY_SOCIAL
|
||||||
|
linkedin.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
listal,SOURCE_CATEGORY_SOCIAL
|
||||||
|
listal.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
listography,SOURCE_CATEGORY_SOCIAL
|
||||||
|
listography.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
lite.qwant.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
livedoor.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
livedoorblog,SOURCE_CATEGORY_SOCIAL
|
||||||
|
livejournal,SOURCE_CATEGORY_SOCIAL
|
||||||
|
livejournal.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
lm.facebook.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
lnkd.in,SOURCE_CATEGORY_SOCIAL
|
||||||
|
lycos,SOURCE_CATEGORY_SEARCH
|
||||||
|
m.alibaba.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
m.baidu.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
m.blog.naver.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
m.cafe.naver.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
m.facebook.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
m.kin.naver.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
m.naver.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
m.search.naver.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
m.shopping.naver.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
m.sogou.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
m.twitch.tv,SOURCE_CATEGORY_VIDEO
|
||||||
|
m.vk.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
m.yelp.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
m.youtube.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
mail.rambler.ru,SOURCE_CATEGORY_SEARCH
|
||||||
|
mail.yandex.ru,SOURCE_CATEGORY_SEARCH
|
||||||
|
malaysia.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
mbga.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
medium.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
meetin.org,SOURCE_CATEGORY_SOCIAL
|
||||||
|
meetup,SOURCE_CATEGORY_SOCIAL
|
||||||
|
meetup.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
meinvz.net,SOURCE_CATEGORY_SOCIAL
|
||||||
|
meneame.net,SOURCE_CATEGORY_SOCIAL
|
||||||
|
menuism.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
mercadolibre,SOURCE_CATEGORY_SHOPPING
|
||||||
|
mercadolibre.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
mercadolibre.com.ar,SOURCE_CATEGORY_SHOPPING
|
||||||
|
mercadolibre.com.mx,SOURCE_CATEGORY_SHOPPING
|
||||||
|
message.alibaba.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
messages.google.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
messages.yahoo.co.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
messenger,SOURCE_CATEGORY_SOCIAL
|
||||||
|
messenger.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
mix.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
mixi.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
mobile.facebook.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
mocospace,SOURCE_CATEGORY_SOCIAL
|
||||||
|
mocospace.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
mouthshut,SOURCE_CATEGORY_SOCIAL
|
||||||
|
mouthshut.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
movabletype,SOURCE_CATEGORY_SOCIAL
|
||||||
|
movabletype.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
msearch.shopping.naver.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
msn,SOURCE_CATEGORY_SEARCH
|
||||||
|
msn.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
mubi,SOURCE_CATEGORY_SOCIAL
|
||||||
|
mubi.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
music.youtube.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
mx.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
my.opera.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
myanimelist.net,SOURCE_CATEGORY_SOCIAL
|
||||||
|
myheritage,SOURCE_CATEGORY_SOCIAL
|
||||||
|
myheritage.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
mylife,SOURCE_CATEGORY_SOCIAL
|
||||||
|
mylife.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
mymodernmet,SOURCE_CATEGORY_SOCIAL
|
||||||
|
mymodernmet.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
myspace,SOURCE_CATEGORY_SOCIAL
|
||||||
|
myspace.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
najdi,SOURCE_CATEGORY_SEARCH
|
||||||
|
naver,SOURCE_CATEGORY_SEARCH
|
||||||
|
naver.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
netflix,SOURCE_CATEGORY_VIDEO
|
||||||
|
netflix.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
netvibes,SOURCE_CATEGORY_SOCIAL
|
||||||
|
netvibes.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
news.google.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
news.ycombinator.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
newsshowcase,SOURCE_CATEGORY_SOCIAL
|
||||||
|
nexopia,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ngopost.org,SOURCE_CATEGORY_SOCIAL
|
||||||
|
niconico,SOURCE_CATEGORY_SOCIAL
|
||||||
|
nicovideo.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
nightlifelink,SOURCE_CATEGORY_SOCIAL
|
||||||
|
nightlifelink.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ning,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ning.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
nl.pinterest.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
nl.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
nl.shopping.net,SOURCE_CATEGORY_SHOPPING
|
||||||
|
no.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
no.shopping.net,SOURCE_CATEGORY_SHOPPING
|
||||||
|
ntp.msn.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
nz.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
odnoklassniki.ru,SOURCE_CATEGORY_SOCIAL
|
||||||
|
odnoklassniki.ua,SOURCE_CATEGORY_SOCIAL
|
||||||
|
offer.alibaba.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
okwave.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
old.reddit.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
one.walmart.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
onet,SOURCE_CATEGORY_SEARCH
|
||||||
|
onet.pl,SOURCE_CATEGORY_SEARCH
|
||||||
|
oneworldgroup.org,SOURCE_CATEGORY_SOCIAL
|
||||||
|
onstartups,SOURCE_CATEGORY_SOCIAL
|
||||||
|
onstartups.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
opendiary,SOURCE_CATEGORY_SOCIAL
|
||||||
|
opendiary.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
order.shopping.yahoo.co.jp,SOURCE_CATEGORY_SHOPPING
|
||||||
|
oshiete.goo.ne.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
out.reddit.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
over-blog.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
overblog.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
paper.li,SOURCE_CATEGORY_SOCIAL
|
||||||
|
partners.shopify.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
partyflock.nl,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pe.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
ph.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
photobucket,SOURCE_CATEGORY_SOCIAL
|
||||||
|
photobucket.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinboard,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinboard.in,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pingsta,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pingsta.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.at,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.ca,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.ch,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.cl,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.co.kr,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.co.uk,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.com.au,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.com.mx,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.de,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.es,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.fr,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.it,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.nz,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.ph,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.pt,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.ru,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pinterest.se,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pixiv.net,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pl.pinterest.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pl.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
play.google.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
playahead.se,SOURCE_CATEGORY_SOCIAL
|
||||||
|
player.twitch.tv,SOURCE_CATEGORY_VIDEO
|
||||||
|
player.vimeo.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
plurk,SOURCE_CATEGORY_SOCIAL
|
||||||
|
plurk.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
plus.google.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
plus.url.google.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pocket.co,SOURCE_CATEGORY_SOCIAL
|
||||||
|
posterous,SOURCE_CATEGORY_SOCIAL
|
||||||
|
posterous.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pro.homeadvisor.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
pulse.yahoo.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
qapacity,SOURCE_CATEGORY_SOCIAL
|
||||||
|
qapacity.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
quechup,SOURCE_CATEGORY_SOCIAL
|
||||||
|
quechup.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
quora,SOURCE_CATEGORY_SOCIAL
|
||||||
|
quora.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
qwant,SOURCE_CATEGORY_SEARCH
|
||||||
|
qwant.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
qzone.qq.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
rakuten,SOURCE_CATEGORY_SEARCH
|
||||||
|
rakuten.co.jp,SOURCE_CATEGORY_SEARCH
|
||||||
|
rambler,SOURCE_CATEGORY_SEARCH
|
||||||
|
rambler.ru,SOURCE_CATEGORY_SEARCH
|
||||||
|
ravelry,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ravelry.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
reddit,SOURCE_CATEGORY_SOCIAL
|
||||||
|
reddit.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
redux,SOURCE_CATEGORY_SOCIAL
|
||||||
|
redux.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
renren,SOURCE_CATEGORY_SOCIAL
|
||||||
|
renren.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
researchgate.net,SOURCE_CATEGORY_SOCIAL
|
||||||
|
reunion,SOURCE_CATEGORY_SOCIAL
|
||||||
|
reunion.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
reverbnation,SOURCE_CATEGORY_SOCIAL
|
||||||
|
reverbnation.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
rtl.de,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ryze,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ryze.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
s3.amazonaws.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
salespider,SOURCE_CATEGORY_SOCIAL
|
||||||
|
salespider.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
scoop.it,SOURCE_CATEGORY_SOCIAL
|
||||||
|
screenrant,SOURCE_CATEGORY_SOCIAL
|
||||||
|
screenrant.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
scribd,SOURCE_CATEGORY_SOCIAL
|
||||||
|
scribd.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
scvngr,SOURCE_CATEGORY_SOCIAL
|
||||||
|
scvngr.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
se.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
se.shopping.net,SOURCE_CATEGORY_SHOPPING
|
||||||
|
search-results,SOURCE_CATEGORY_SEARCH
|
||||||
|
search.aol.co.uk,SOURCE_CATEGORY_SEARCH
|
||||||
|
search.aol.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
search.google.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
search.smt.docomo.ne.jp,SOURCE_CATEGORY_SEARCH
|
||||||
|
search.ukr.net,SOURCE_CATEGORY_SEARCH
|
||||||
|
secondlife,SOURCE_CATEGORY_SOCIAL
|
||||||
|
secondlife.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
secureurl.ukr.net,SOURCE_CATEGORY_SEARCH
|
||||||
|
serverfault,SOURCE_CATEGORY_SOCIAL
|
||||||
|
serverfault.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
seznam,SOURCE_CATEGORY_SEARCH
|
||||||
|
seznam.cz,SOURCE_CATEGORY_SEARCH
|
||||||
|
sg.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
shareit,SOURCE_CATEGORY_SOCIAL
|
||||||
|
sharethis,SOURCE_CATEGORY_SOCIAL
|
||||||
|
sharethis.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
shop.app,SOURCE_CATEGORY_SHOPPING
|
||||||
|
shopify,SOURCE_CATEGORY_SHOPPING
|
||||||
|
shopify.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
shopping.naver.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
shopping.yahoo.co.jp,SOURCE_CATEGORY_SHOPPING
|
||||||
|
shopping.yahoo.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
shopzilla,SOURCE_CATEGORY_SHOPPING
|
||||||
|
shopzilla.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
shvoong.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
simplycodes.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
sites.google.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
skype,SOURCE_CATEGORY_SOCIAL
|
||||||
|
skyrock,SOURCE_CATEGORY_SOCIAL
|
||||||
|
skyrock.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
slashdot.org,SOURCE_CATEGORY_SOCIAL
|
||||||
|
slideshare.net,SOURCE_CATEGORY_SOCIAL
|
||||||
|
smartnews.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
snapchat,SOURCE_CATEGORY_SOCIAL
|
||||||
|
snapchat.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
so.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
social,SOURCE_CATEGORY_SOCIAL
|
||||||
|
sociallife.com.br,SOURCE_CATEGORY_SOCIAL
|
||||||
|
socialvibe,SOURCE_CATEGORY_SOCIAL
|
||||||
|
socialvibe.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
sogou,SOURCE_CATEGORY_SEARCH
|
||||||
|
sogou.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
sp-web.search.auone.jp,SOURCE_CATEGORY_SEARCH
|
||||||
|
spaces.live.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
spoke,SOURCE_CATEGORY_SOCIAL
|
||||||
|
spoke.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
spruz,SOURCE_CATEGORY_SOCIAL
|
||||||
|
spruz.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ssense.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
stackapps,SOURCE_CATEGORY_SOCIAL
|
||||||
|
stackapps.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
stackexchange,SOURCE_CATEGORY_SOCIAL
|
||||||
|
stackexchange.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
stackoverflow,SOURCE_CATEGORY_SOCIAL
|
||||||
|
stackoverflow.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
stardoll.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
startsiden,SOURCE_CATEGORY_SEARCH
|
||||||
|
startsiden.no,SOURCE_CATEGORY_SEARCH
|
||||||
|
stickam,SOURCE_CATEGORY_SOCIAL
|
||||||
|
stickam.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
store.shopping.yahoo.co.jp,SOURCE_CATEGORY_SHOPPING
|
||||||
|
stripe,SOURCE_CATEGORY_SHOPPING
|
||||||
|
stripe.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
studivz.net,SOURCE_CATEGORY_SOCIAL
|
||||||
|
suche.aol.de,SOURCE_CATEGORY_SEARCH
|
||||||
|
suomi24.fi,SOURCE_CATEGORY_SOCIAL
|
||||||
|
superuser,SOURCE_CATEGORY_SOCIAL
|
||||||
|
superuser.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
sweeva,SOURCE_CATEGORY_SOCIAL
|
||||||
|
sweeva.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
t.co,SOURCE_CATEGORY_SOCIAL
|
||||||
|
t.me,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tagged,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tagged.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
taggedmail,SOURCE_CATEGORY_SOCIAL
|
||||||
|
taggedmail.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
talkbiznow,SOURCE_CATEGORY_SOCIAL
|
||||||
|
talkbiznow.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
taringa.net,SOURCE_CATEGORY_SOCIAL
|
||||||
|
techmeme,SOURCE_CATEGORY_SOCIAL
|
||||||
|
techmeme.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ted,SOURCE_CATEGORY_VIDEO
|
||||||
|
ted.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
tencent,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tencent.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
terra,SOURCE_CATEGORY_SEARCH
|
||||||
|
th.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
tiktok,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tiktok.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tinyurl,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tinyurl.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
toolbox,SOURCE_CATEGORY_SOCIAL
|
||||||
|
toolbox.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
touch.facebook.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tr.pinterest.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tr.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
travellerspoint,SOURCE_CATEGORY_SOCIAL
|
||||||
|
travellerspoint.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tripadvisor,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tripadvisor.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
trombi,SOURCE_CATEGORY_SOCIAL
|
||||||
|
trombi.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
trustpilot,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tudou,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tudou.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tuenti,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tuenti.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tumblr,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tumblr.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tut.by,SOURCE_CATEGORY_SEARCH
|
||||||
|
tw.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
tweetdeck,SOURCE_CATEGORY_SOCIAL
|
||||||
|
tweetdeck.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
twitch,SOURCE_CATEGORY_VIDEO
|
||||||
|
twitch.tv,SOURCE_CATEGORY_VIDEO
|
||||||
|
twitter,SOURCE_CATEGORY_SOCIAL
|
||||||
|
twitter.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
twoo.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
typepad,SOURCE_CATEGORY_SOCIAL
|
||||||
|
typepad.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
uk.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
uk.shopping.net,SOURCE_CATEGORY_SHOPPING
|
||||||
|
ukr,SOURCE_CATEGORY_SEARCH
|
||||||
|
unblog.fr,SOURCE_CATEGORY_SOCIAL
|
||||||
|
urbanspoon.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
us.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
ushareit.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
ushi.cn,SOURCE_CATEGORY_SOCIAL
|
||||||
|
utreon,SOURCE_CATEGORY_VIDEO
|
||||||
|
utreon.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
vampirefreaks,SOURCE_CATEGORY_SOCIAL
|
||||||
|
vampirefreaks.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
vampirerave,SOURCE_CATEGORY_SOCIAL
|
||||||
|
vampirerave.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
veoh,SOURCE_CATEGORY_VIDEO
|
||||||
|
veoh.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
vg.no,SOURCE_CATEGORY_SOCIAL
|
||||||
|
viadeo.journaldunet.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
video.ibm.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
vimeo,SOURCE_CATEGORY_VIDEO
|
||||||
|
vimeo.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
virgilio,SOURCE_CATEGORY_SEARCH
|
||||||
|
vk.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
vkontakte.ru,SOURCE_CATEGORY_SOCIAL
|
||||||
|
vn.search.yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
wakoopa,SOURCE_CATEGORY_SOCIAL
|
||||||
|
wakoopa.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
walmart,SOURCE_CATEGORY_SHOPPING
|
||||||
|
walmart.com,SOURCE_CATEGORY_SHOPPING
|
||||||
|
wap.sogou.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
wattpad,SOURCE_CATEGORY_SOCIAL
|
||||||
|
wattpad.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
web.facebook.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
web.skype.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
webmaster.yandex.ru,SOURCE_CATEGORY_SEARCH
|
||||||
|
websearch.rakuten.co.jp,SOURCE_CATEGORY_SEARCH
|
||||||
|
webshots,SOURCE_CATEGORY_SOCIAL
|
||||||
|
webshots.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
wechat,SOURCE_CATEGORY_SOCIAL
|
||||||
|
wechat.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
weebly,SOURCE_CATEGORY_SOCIAL
|
||||||
|
weebly.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
weibo,SOURCE_CATEGORY_SOCIAL
|
||||||
|
weibo.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
wer-weiss-was.de,SOURCE_CATEGORY_SOCIAL
|
||||||
|
weread,SOURCE_CATEGORY_SOCIAL
|
||||||
|
weread.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
whatsapp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
whatsapp.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
wiki.answers.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
wikihow.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
wikitravel.org,SOURCE_CATEGORY_SOCIAL
|
||||||
|
wistia,SOURCE_CATEGORY_VIDEO
|
||||||
|
wistia.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
woot.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
wordpress,SOURCE_CATEGORY_SOCIAL
|
||||||
|
wordpress.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
wordpress.org,SOURCE_CATEGORY_SOCIAL
|
||||||
|
xanga,SOURCE_CATEGORY_SOCIAL
|
||||||
|
xanga.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
xing,SOURCE_CATEGORY_SOCIAL
|
||||||
|
xing.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
yahoo,SOURCE_CATEGORY_SEARCH
|
||||||
|
yahoo-mbga.jp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
yahoo.co.jp,SOURCE_CATEGORY_SEARCH
|
||||||
|
yahoo.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
yammer,SOURCE_CATEGORY_SOCIAL
|
||||||
|
yammer.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
yandex,SOURCE_CATEGORY_SEARCH
|
||||||
|
yandex.by,SOURCE_CATEGORY_SEARCH
|
||||||
|
yandex.com,SOURCE_CATEGORY_SEARCH
|
||||||
|
yandex.com.tr,SOURCE_CATEGORY_SEARCH
|
||||||
|
yandex.fr,SOURCE_CATEGORY_SEARCH
|
||||||
|
yandex.kz,SOURCE_CATEGORY_SEARCH
|
||||||
|
yandex.ru,SOURCE_CATEGORY_SEARCH
|
||||||
|
yandex.ua,SOURCE_CATEGORY_SEARCH
|
||||||
|
yandex.uz,SOURCE_CATEGORY_SEARCH
|
||||||
|
yelp,SOURCE_CATEGORY_SOCIAL
|
||||||
|
yelp.co.uk,SOURCE_CATEGORY_SOCIAL
|
||||||
|
yelp.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
youku,SOURCE_CATEGORY_VIDEO
|
||||||
|
youku.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
youroom.in,SOURCE_CATEGORY_SOCIAL
|
||||||
|
youtube,SOURCE_CATEGORY_VIDEO
|
||||||
|
youtube.com,SOURCE_CATEGORY_VIDEO
|
||||||
|
za.pinterest.com,SOURCE_CATEGORY_SOCIAL
|
||||||
|
zalo,SOURCE_CATEGORY_SOCIAL
|
||||||
|
zen.yandex.ru,SOURCE_CATEGORY_SEARCH
|
||||||
|
zoo.gr,SOURCE_CATEGORY_SOCIAL
|
||||||
|
zooppa,SOURCE_CATEGORY_SOCIAL
|
||||||
|
zooppa.com,SOURCE_CATEGORY_SOCIAL
|
|
@ -1219,6 +1219,731 @@ defmodule PlausibleWeb.Api.ExternalControllerTest do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "acquisition channel tests" do
|
||||||
|
setup do
|
||||||
|
site = insert(:site)
|
||||||
|
{:ok, site: site}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses cross network channel", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com/?utm_campaign=cross-network",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Cross-network"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses paid shopping channel based on campaign/medium", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com/?utm_campaign=shopping&utm_medium=paid",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Paid Shopping"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses paid shopping channel based on referrer source and medium", %{
|
||||||
|
conn: conn,
|
||||||
|
site: site
|
||||||
|
} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_medium=paid",
|
||||||
|
referrer: "https://shopify.com",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Paid Shopping"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses paid shopping channel based on referrer utm_source and medium", %{
|
||||||
|
conn: conn,
|
||||||
|
site: site
|
||||||
|
} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_source=shopify&utm_medium=paid",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Paid Shopping"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses paid search channel based on referrer and medium", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_medium=paid",
|
||||||
|
referrer: "https://duckduckgo.com",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Paid Search"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses paid search channel based on gclid", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?gclid=123identifier",
|
||||||
|
referrer: "https://google.com",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Paid Search"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "is not paid search when gclid is present on non-google referrer", %{
|
||||||
|
conn: conn,
|
||||||
|
site: site
|
||||||
|
} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?gclid=123identifier",
|
||||||
|
referrer: "https://duckduckgo.com",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Organic Search"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses paid search channel based on msclkid", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?msclkid=123identifier",
|
||||||
|
referrer: "https://bing.com",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Paid Search"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "is not paid search when msclkid is present on non-bing referrer", %{
|
||||||
|
conn: conn,
|
||||||
|
site: site
|
||||||
|
} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?msclkid=123identifier",
|
||||||
|
referrer: "https://duckduckgo.com",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Organic Search"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses paid search channel based on utm_source and medium", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_source=google&utm_medium=paid",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Paid Search"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses paid social channel based on referrer and medium", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_medium=paid",
|
||||||
|
referrer: "https://tiktok.com",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Paid Social"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses paid social channel based on utm_source and medium", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_source=tiktok&utm_medium=paid",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Paid Social"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses paid video channel based on referrer and medium", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_medium=paid",
|
||||||
|
referrer: "https://youtube.com",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Paid Video"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses paid video channel based on utm_source and medium", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_source=youtube&utm_medium=paid",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Paid Video"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses display channel", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_medium=banner",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Display"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses paid other channel", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_medium=cpc",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Paid Other"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses organic shopping channel from referrer", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com",
|
||||||
|
referrer: "https://walmart.com",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Organic Shopping"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses organic shopping channel from utm_source", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_source=walmart",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Organic Shopping"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses organic shopping channel from utm_campaign", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_campaign=shop",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Organic Shopping"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses organic social channel from referrer", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com",
|
||||||
|
referrer: "http://facebook.com",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Organic Social"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses organic social channel from utm_source", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_source=twitter",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Organic Social"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses organic social channel from utm_medium", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_medium=social",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Organic Social"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses organic video channel from referrer", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com",
|
||||||
|
referrer: "https://vimeo.com",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Organic Video"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses organic video channel from utm_source", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_source=vimeo",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Organic Video"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses organic video channel from utm_medium", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_medium=video",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Organic Video"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses organic search channel from referrer", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com",
|
||||||
|
referrer: "http://duckduckgo.com",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Organic Search"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses organic search channel from utm_source", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_source=duckduckgo",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Organic Search"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses referral channel from utm_medium", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_medium=referral",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Referral"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses email channel from utm_source", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_source=email",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Email"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses email channel from utm_medium", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_medium=email",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Email"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses affiliates channel from utm_medium", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_medium=affiliate",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Affiliates"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses audio channel from utm_medium", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_medium=audio",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Audio"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses sms channel from utm_source", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_source=sms",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "SMS"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses sms channel from utm_medium", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_medium=sms",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "SMS"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses mobile push notifications channel from utm_medium with push", %{
|
||||||
|
conn: conn,
|
||||||
|
site: site
|
||||||
|
} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_medium=app-push",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Mobile Push Notifications"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses mobile push notifications channel from utm_medium", %{conn: conn, site: site} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com?utm_medium=example-mobile",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Mobile Push Notifications"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses referral channel if session starts with a simple referral", %{
|
||||||
|
conn: conn,
|
||||||
|
site: site
|
||||||
|
} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com",
|
||||||
|
referrer: "https://othersite.com",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Referral"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses direct channel if session starts without referrer or utm tags", %{
|
||||||
|
conn: conn,
|
||||||
|
site: site
|
||||||
|
} do
|
||||||
|
params = %{
|
||||||
|
name: "pageview",
|
||||||
|
url: "http://example.com",
|
||||||
|
domain: site.domain
|
||||||
|
}
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> put_req_header("user-agent", @user_agent)
|
||||||
|
|> post("/api/event", params)
|
||||||
|
|
||||||
|
session = get_created_session(site)
|
||||||
|
|
||||||
|
assert response(conn, 202) == "ok"
|
||||||
|
assert session.channel == "Direct"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "user_id generation" do
|
describe "user_id generation" do
|
||||||
setup do
|
setup do
|
||||||
site = insert(:site)
|
site = insert(:site)
|
||||||
|
Loading…
Reference in New Issue
Block a user