top of page

Updated: Nov 14, 2025


Japan is the second largest Asian region regarding ad spending in the digital market, second only to China, according to a Statista report published in March 2025. According to Statista, within the advertising market in Japan, 64% of total ad spending will come from digital sources in 2030. Japanese advertisers are increasingly using digital platforms to target tech-savvy consumers, driving a shift towards online spending. Although it's not too late for new businesses to gain a share of the Japanese market, it's important to first learn about its unique background and culture.


Digital Marketing and Advertising in Japan

You may already know that Dentsu is the most powerful advertising agency, especially in traditional media. In recent years, they have further expanded globally through a series of acquisitions. Hakuhodo is the second largest ad agency in Japan, and they have traditionally had a stronger presence in print advertising. In the web media space, CyberAgent has also risen to prominence - originally from Ameba, a popular blogging platform. Global agencies such as Ogilvy and GroupM are present in Japan, and there are also many of boutique marketing agencies that may support your entry into the Japan market.


If you have an existing SEO-friendly website in English or another language, it's possible to manage the launch and optimization of a Japanese site independently. Remember that alongside standard international SEO techniques (hreflang, localized URLs), you must also adhere to best practices unique to the Japanese market.


Hosting Server

The first question you might ask yourself is, should you use a Japanese hosting server? There isn't a definitive answer to this question among SEO professionals, but one thing to keep in mind is that the server location can affect page speed, which of course can affect SEO.


According to Google Search Central way back in 2007, the web server's IP address is a factor for search results. If you are targeting Japanese SEO, you might have some advantage if you use a rental hosting server located in Japan.


Later in 2015, John Mueller gave a slightly different statement in the webmasters forum.

For search, specifically for geotargeting, the server's location plays a very small role, in many cases it's irrelevant. If you use a ccTLD or a gTLD together with Webmaster Tools, then we'll mainly use the geotargeting from there, regardless of where your server is located. You definitely don't need to host your website in any specific geographic location -- use what works best for you, and give us that information via a ccTLD or Webmaster Tools.

Top-Level Domain

The best top-level domains for Japanese sites are .co.jp and .jp.


.co.jp is available for companies registered in Japan, so it indicates that the business is legitimate and trustworthy. But if you're an existing global company with an online presence, you may keep the same corporate site and add a Japanese version, so for example https://www.datachai.com/ja/


If you use a generic top-level domain (.com, .net, .info, etc.) you can use the country targeting tool in Google Search Console to tell Google that you are targeting Japan.


URL Structure

From an SEO perspective it's fine to use either Japanese characters or Roman alphabets. I would recommend using Roman alphabets though, because it's easier to share the link via email or social media. URLs that contain Japanese characters could have encoding issues when they are copied and shared.


Google Search Central's John Mueller has confirmed that you can include Japanese keywords in the URL with Romaji (Roman alphabets to spell Japanese words). For example, https://www.datachai.com/nihongo



Japanese Search Engine

If you're coming from English SEO, the good news is that you probably don't need to learn a new search engine. The main search engines used in Japan are Google and Yahoo. These days Google is more popular, and generally young and tech-savvy people are using it. From a Japanese SEO perspective, you can just focus on optimizing for Google, because Yahoo is also powered by Google's algorithm.


SEO Tools

ahrefs, SEMrush, and keyword planner in Google ads are all useful for Japanese keyword research. The SEO data is not quite as accurate as for English, but I've found it to be good enough. In my experience, SEMrush tends to be better for technical and competitive metrics of Japanese sites, while ahrefs is more reliable for search volume.


As far as I know, there isn't a Japanese equivalent to the well-loved platforms like ahrefs and SEMrush in English. There is one called mieru-ca but even the cheapest plan is around $1,000 monthly. Some Japanese marketers prefer mieru-ca because the UI is more intuitive for them. However, that is simply an issue of the website design, not related to the accuracy of SEO data provided.


Keyword Research

The fundamentals of English keyword research generally translate to Japanese, but there are some cultural nuances to be aware of. For example, while English speakers often use "near me" searches (ex. "digital marketing meet up near me", "best ramen near me"), English, the Japanese people tend to search for their actual location (ex. "SEO agency in Tokyo", "cafe in Osaka"). In addition, native Japanese speakers often use abbreviated words, such as konbini for convenience store, sutaba for Starbucks, and DX for digital transformation.


Written Japanese uses a combination of 3 different alphabets (hiragana, katakana, and kanji) so there's multiple ways of spelling out the same search query. For example, ありがとうございます, 有難うございます, and 有難う御座います can all be read as "arigato gozaimasu" which means thank you in Japanese. Fortunately, Google's algorithm can usually interpret these different spellings as synonymous. So while there's no need to go overkill and list out every spelling variation in the page title or meta description, it may help to use a natural blend of the 2 or 3 most common spellings throughout the body text.


Title and Meta Description

Google counts pixel length, not characters. Regardless of the language, the maximum title length is 560px, and meta description is 990px. You may know that for English, that's approximately 60 characters for the title and 160 characters for the meta description.


Japanese full-width characters are 20 pixels, so the recommended maximum title length would be 28 characters, and meta description would be 49.5 characters, if everything is in Japanese. However, Japanese websites sometimes mix in English words like brand names and loanwords, creating a combination of full and half-width characters that makes manual counting a hassle. In any case, my SEO Meta Length Tag Checker tool makes it easy to check the display length.


Japanese Localization

English proficiency in Japan is not as widespread as in other major economies. All business in Japan is done in Japanese. Simply translating your website is insufficient; you must build trust through genuine localization. Japanese consumers place a high value on credibility and commitment to the Japan market, and one way to demonstrate this is through perfect Japanese localization. 

family mart's company page in Japanese

For example, the company page (kaisha gaiyou) is fundamental and should be adapted to local expectations. See the screenshot of Family Mart's company page above. Instead of values and mission statement, it includes foundational information like the establishment date, corporate address, and capital stock. 


Web Design


You'll immediately notice that the Japanese (left) and American (right) websites of Starbucks have a totally different look and feel. Traditionally, local Japanese websites have displayed as much information as possible on the homepage. However, more and more web developers nowadays are favoring simplistic and minimalist designs. This trend is especially growing among younger generations.


Link Building

If you have extensive resources or connections in digital PR, you may try link building through feature articles or interviews in online media. Cold outreach for backlink exchanges isn't a common practice, so your efforts may not pay off as much as they did for English-speaking markets. Otherwise, try blogging platforms. At the time of writing, links from note, Qiita, and Wantedly count as dofollow.


Japanese SEO Services

Japanese business culture has traditionally valued in-person and phone interactions, and in some industries, it's still uncommon for companies to have sophisticated digital marketing teams. So there's a chance for foreign companies to swoop in and perhaps even get an advantage over the local competition for Japanese SEO.


Although English and Japanese SEO share some similarities, Japanese SEO requires knowing the local nuances to implement it effectively. Finding the right keywords can be especially tricky, due to the Japanese language having 3 different alphabets, along with unique abbreviations and slang.


As a native born and raised in Japan, I have supported numerous businesses in their Japanese SEO strategies —from website development and keyword research to content writing and lead funnel generation. If you are looking to enter the Japan market and require a local expert, feel free to reach out to me.

Query studio is probably my most-used AppExchange App in Salesforce Marketing Cloud (SFMC). It’s a free app for quickly querying SFMC data extensions and data views.

Screenshot of SFMC query studio

The version of SQL used in SFMC is based on, but doesn’t precisely correspond to, SQL Server 2016 capabilities. The main difference from standard SQL is that SFMC supports only SELECT statements. INSERT, UPDATE, and DELETE are not officially supported, because the queries are executed as a part of the backend query and are limited to provide non-breakable functionality. 


Unsupported SQL Functions in SFMC Query Studio

The following SQL functions are either not supported or require adjustments in SFMC Query Studio. 


WITH Clause

SFMC Query Studio only accepts SELECT statements, meaning that WITH clauses, which are one level above, are not supported.


Instead, use subqueries such as the below.

SELECT TOP 10 a.[Subscriber Key],
(
    SELECT TOP 1 COUNT(b.[Subscriber Key]) as ct 
    FROM [testDE] 
    WHERE b.[Subscriber Key] = a.[Subscriber Key]
) as Cnt
FROM [testDE] a

This query should validate and run with no issues, returning the expected results. Even if an error persists in SFMC Query Studio ("Unable to create temporary data extension: Field name cannot be blank."), it will definitely work in Automation Studio.


ORDER BY

Anyone who has tried to use ORDER BY in SFMC Query Studio has probably encountered this error before.

An error occurred while checking the query syntax. Errors: The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified.

To get around this, simply add TOP 100 PERCENT or use a subquery to rank fields by subscriber.


LIMIT

Similarly, queries using the LIMIT expression will need to be written using TOP, as SFMC query studio uses T-SQL syntax.


The query below will return an error:

SELECT SubscriberKey, EmailAddress 
    FROM MASTER_IMPORT
        WHERE EmailAddress LIKE "%gmail.com" LIMIT 300

Rewrite it using the TOP expression:

SELECT TOP 300 SubscriberKey, EmailAddress 
FROM MASTER_IMPORT
WHERE EmailAddress LIKE "%gmail.com"

SELECT *

Unfortunately, SFMC Query Studio does not support SELECT *. Instead, you'll need to write out all of the column names that you need. If a column name contains a space, hyphen or is a SQL's reserved keyword, you need to capture it with squared brackets.

SELECT
	ContactKey
	, EmailAddress
	, [External Contact Id]

Using Object Explorer on the right side of SFMC Query Studio, you can type in any DE name, and it will show you all of the fields. I find it useful to copy out the fields to Excel for some formatting, and then copy them back into query.


Single Line Comments

SFMC Query Studio generally does not support the single-line SQL comment using two dashes (–). I've gotten away with very short (one or two words) single line SQL comments, but anything longer and I'm usually met with a prompt to use multi-line comments instead (even if the comment is single-line).


Date Functions

SFMC Query Studio does not support user-defined functions, but there are multiple date functions that are useful on a day-to-day basis for marketing automation purposes. In many cases, GETDATE and DATEADD are all I need.

SELECT subscriberkey
FROM testDE
WHERE createdate < DATEADD(year, -1, GETDATE())

You can also simply hard-code a date in yyyy-mm-dd format.

SELECT subscriberkey
FROM testDE
WHERE createdate < '2024-01-01'

GETDATE gets server time, which for SFMC is Central Standard Time (UTC -6), without changes between standard and daylight savings time. This remains the case even if you update your timezone settings in Setup. To get date data in your desired timezone, use the SYSDATETIMEOFFSET() function.


SFMC Query Studio Results

SFMC query studio allows us to skip the tedious process of setting up a SQL Activity in Automation Studio and manually defining a target Data Extension. Instead, the query results are automatically saved as temporary Data Extensions for quick access.


Navigate to Data Extensions > QueryStudioResults. This is where all of the query outputs are stored for 24 hours. Each result is saved as a separate Data Extension with a timestamped name (e.g., *"QueryStudioResults at 2025-07-21 T0016300000"*), making it easy to identify recent queries.


---

Although SFMC query studio can be a bit buggy at times, it has still been a huge time saver for me. Overall, I’m satisfied with this app, especially since it’s completely free. If you haven’t already, download SFMC query studio and give it a try.

Posted: Nov 25, 2024

Updated: Nov 14, 2025


​​Prophet is an open-source library available in python and R for predictive data analysis, developed by Facebook's Core Data Science Team and released in 2017. 8 years later, it is still evolving through research and community contributions. Ongoing development in Prophet includes further multivariate support, enhanced scalability for large datasets, and community-driven extensions. Active research involves integrating new statistical methods and improving performance in complex, high-frequency datasets.

 

Facebook Prophet’s Core Modeling Framework

Prophet is built on a statistical modeling framework, not a standard machine learning one. It uses an additive model to capture key components of time series data: trend, seasonality, and holidays. The approach relies on curve-fitting rather than optimization of parameters through iterative learning. Although Prophet doesn't inherently use a separate training and test dataset, you can manually split your data into historical data for fitting the model and future data for evaluating the model's performance.


Compared to other models like ARIMA which assume a linear relationship between past and future values, Prophet's strength is that it automatically detects "changepoints" and accordingly adjusts forecasts, making it robust to outliers and flexible in handling seasonality and non-linear trends.

 

Oddly enough, one of the main draws of Prophet is also one of its core weaknesses. Its approach for handling changepoints can result in both underfitting and overfitting. In this post, I will share the methods that I previously used when implementing prophet for weekly revenue forecasting.


The first step is not specific to Prophet. Follow best practice and do a simple plot of your historical data before jumping into the forecast. The visual may help you to notice any unexpected trends or gaps that could skew the forecast. Although Prophet is inherently robust to outliers, you should still manually exclude data that is obviously "wrong" or unhelpful, such as internal test campaigns or an unwanted spike in reseller activity. It's usually easier to do the data cleansing before putting data in Prophet.


External Regressors

Prophet is designed for univariate time series analysis. Multiple variables can be added as external regressors.


The business that I was looking at did sales at seemingly random times throughout the year, so I couldn’t just use holiday or yearly seasonality. Instead, I relied almost solely on variables (“flags”) to indicate whether a sale occurred that week, and whether a sale started or ended that week.

model.add_regressor('sale_y_n', prior_scale=40.0)

For multiple related output variables, just model each one separately as univariate time series, or use the forecast values of one variable as inputs to the next. You can also consider more advanced models like VAR or LSTM.


Hyperparameter Tuning

In the previous code snippet, I had set prior_scale=40.0, indicating that this regressor should be heavily factored.


In Prophet, the below hyperparameters are set as default, so you may need to tune them to balance underfitting and overfitting.

changepoint_range=0.8
changepont_prior_scale=0.05
seasonality_prior_scale=10
holidays_prior_scale=10
fourier_order=10

Holidays

Prophet has built-in holidays for some countries, but is quite limited. f the country that you are looking for is not included in Prophet, use python-holidays to add them manually. Below is an example where I extracted Japan's public holiday dates from 2023 to 2025.

years = [2023, 2024, 2025]
jp_holidays = holidays.Japan(years=years)
japan_holidays = pd.DataFrame({
'ds': list(jp_holidays.keys()),
'holiday': list(jp_holidays.values())
})
model = Prophet(holidays=japan_holidays)

Data Normalization

Since Prophet is a statistical model, it does not require the same level of data flattening as machine learning models. However, some data normalization may be beneficial depending on what you're working with. In my original dataset, the sale_y_n variable was an integer between 0 and 7, indicating how many day out of that week were within a sale period. The raw scale of 0 to 7 may introduce bias to the forecast, so I first normalized the sale_y_n variable using sklearn MinMaxScaler.

 

Performance Metrics

By default, prophet uses 80% confidence interval, meaning there's an 80% chance that the actual value will fall between yhat_lower and yhat_upper. However, Prophet's performance can be hit or miss depending on the use case. If it's still not working, try multiple approaches and use the best model that performs well on cross-validation, using the following metrics to evaluate the accuracy.

  • Mean absolute error (MAE): measures the average magnitude of errors, using the same unit as the data

  • Root mean squared error (RSME): measures the square root of the average of squared differences. Squaring puts more weight on larger errors, so RSME is a useful metrics when larger errors are especially costly. What constitutes a "good" RMSE depends

  • Mean absolute percentage error (MAPE): measures the average of the absolute percentage errors, expressed as a percentage. Generally MAPE under 10% is considered very good, 0-20% is considered good, and even up to 50% can also be acceptable in some use cases.


When evaluating the accuracy of your model's predictions follow the parsimony gradient - start with the simplest model and end at the most complex as needed. The simplest option is a naive model, or a seasonal naive model if you have significant seasonality or repetitive sales patterns. Another straightforward method is to use a simple average or exponential smoothing with seasonal adjustments. For greater flexibility, look into machine learning models such as XGBoost, LightGBM, or Random Forest Regressor.


Related Resources for Facebook Prophet


To learn more about Facebook Prophet, visit its website for tutorials and further documentation about forecasting. Also, check out the Github repo for examples and runnable notebooks.


For further reading, I recommend Forecasting Time Series Data with Facebook Prophet by Greg Rafferty. This is a beginner-friendly book that starts off with a brief introduction to time series methods that are used across the forecasting domain, then goes on to concepts and hands-on code examples that you can use right away.


bottom of page