キャンペーン登録
前提条件¶
キャンペーンを登録するためのAPIと同期するには、認証トークン(API KEY)を発行する必要があります。すでにキーを持っている場合は、追加の権限をリクエストしてください。認証トークンのリクエストと発行方法については、Hive サーバーAPI > 通知 > プッシュ v4 > 認証を参照してください。
キャンペーン登録のためのAPI¶
基本データとリクエスト変数¶
メソッド | POST | ||||||
URL | /push/campaigns | ||||||
区分 | フィールド名 | 説明 | タイプ | 必須 | |||
---|---|---|---|---|---|---|---|
sound | ヘッダー | Content-Type | application/json;charset=utf-8 | ||||
Authorization | bearer {{API KEY}} | - | |||||
ボディ | id | キャンペーン編集のための必須フィールド | 整数 | △ | |||
status | キャンペーン編集のための必須フィールド | 整数 | △ | ||||
company | 会社
| 文字列 | O | ||||
companyIndex | 会社コード(AppCenterに登録された会社番号) | 整数 | O | ||||
Description | キャンペーンの説明 | 文字列 | O | ||||
notice | 通知を送信するかどうか | ブール値 | X | ||||
Type | 送信タイプ
| 文字列 | O | ||||
targetingId | ターゲティングID ターゲティングキャンペーンの場合の必須フィールド | 整数 | △ | ||||
registrant | name | 登録者名 | 文字列 | X | |||
id | 登録者ID | 文字列 | O | ||||
reservation | localizing | ローカル時間を考慮するかどうか (一度に送信/個別に送信) | ブール値 | O | |||
startDate | 定期送信の期間 (YYYY-MM-DD) | 文字列 | O | ||||
endDate | 文字列 | O | |||||
time | プッシュ送信の時間 (HH:mm) | 文字列 | O | ||||
repeat | プッシュを定期的に送信するかどうか | ブール値 | O | ||||
weekday | 週末以外の定期送信の日 | 整数[] | X | ||||
skip | 定期送信の期間中にプッシュ送信をスキップする日 | 文字列[] | X | ||||
distribution | enable | 分散送信するかどうか | ブール値 | X | |||
interval | 分散送信の間隔 | 整数 | X | ||||
count | 分散送信の回数 | 整数 | X | ||||
continents | 選択した大陸による情報リスト (参照: 国コード) CampaignContinent構造および例を確認してください | CampaignContinent[] | O | ||||
countries | 選択した国の情報 (参照: 国コード) | 文字列[] | O | ||||
game | gameindex | ゲームインデックス | 整数 | O | |||
serverIds | サーバーIDのリスト | 文字列[] | X | ||||
apps[] | appindex | アプリインデックス | 整数 | O | |||
appid | AppId | 文字列 | O | ||||
defaultLanguage | デフォルト設定言語(言語コードを参照) | 文字列 | O | ||||
notification | {{LANGUAGE}} | メッセージ情報 メッセージ構造と例を以下で確認してください | メッセージ | X | |||
option | badge | プッシュ通知用のバッジ | 整数 | X | |||
overwrite | プッシュを上書きするかどうか | ブール値 | X | ||||
collapseKey | プッシュを上書きするためのキー値 | 文字列 | X | ||||
engagement | ユーザーエンゲージメント | 文字列 | X | ||||
comment | コメント | 文字列 | X | ||||
groupKey | ユーザーがiOSまたはAndroid OS環境で通知を受信したときに、グループ内で通知を公開するためのグループキーの値です。デバイスOSで選択された通知設定がデフォルトで適用されます。このオプションの詳細については、以下のドキュメントを参照してください。 | 文字列 | X | ||||
android | icon | プッシュ通知がユーザーのデバイスに表示されるときに公開されるアイコン画像ファイル名です。画像ファイルは/src/main/res/drawableに配置する必要があります。サポートされている画像ファイル形式についてはこちらを参照してください。画像ファイルの代わりにWeb上の画像を公開したい場合は、画像ファイル名の代わりにこのフィールドに画像URLを入力してください。このフィールドが空白の場合、アプリアイコン画像が公開されます。 | 文字列 | X | |||
sound | プッシュ通知がユーザーのデバイスに表示されるときに再生される通知音ファイルの名前です。アプリバンドルに含まれる音源ファイルを指定でき、音源ファイルは/src/main/res/rawに配置する必要があります。このフィールドが空白の場合、システムのデフォルト音声ファイルが使用されます。 | 文字列 | X | ||||
priority | Androidデバイスに送信されるメッセージの優先度です。この優先度は、メッセージが送信されるタイミングを制御するFCMの概念です。NORMALまたはHIGHの値を持つことができ、デフォルトはNORMALです。詳細については、Firebaseガイドを参照してください。
| enum(NORMAL, HIGH) | X | ||||
ios | sound | これは、プッシュ通知がユーザーのデバイスに表示されたときに再生される通知音のソースファイルの名前です。サウンドファイルはアプリコンテナのLibrary/Soundsまたはアプリのメインバンドルに存在する必要があります。このフィールドが空の場合、自動的に「default」に設定され、ユーザーのAppleデバイスのシステムデフォルトサウンドソースが使用されます。 td> | String | X |
Note
option
についての詳細は、それぞれの市場のガイドラインを参照してください。
(オプションフィールドはFacebookには適用されません。)
-
iOS: リモート通知の生成
-
Android: FirebaseNotification
CampaignContinent 構造¶
部門 | フィールド名 | 説明 | タイプ | 必須 |
---|---|---|---|---|
CampaignContinent | 大陸 | 大陸の種類 | 文字列 | O |
countries | 大陸内の国のコード | 文字列[] | O |
キャンペーン大陸の例¶
[
{
"name": "Africa",
"countries": [
"Algeria",
"Angola",
"Benin",
"Sudan",
"Swaziland",
"Tanzania",
"Togo",
"Tunisia",
"Zambia",
"Zimbabwe"
]
}
]
メッセージ構造¶
部門 | フィールド名 | 説明 | タイプ | 必須 | |
メッセージ | android | title | タイトル | 文字列 | O |
message | メッセージ | 文字列 | O | ||
messageExpanded | 展開されたメッセージ | 文字列 | X | ||
imageUrl | 画像URL | 文字列 | X | ||
ticker | ティッカー | 文字列 | X | ||
summaryText | 要約メッセージ | 文字列 | X | ||
iOS | title | タイトル | 文字列 | O | |
message | メッセージ | 文字列 | O | ||
mediaUrl | 画像URL | 文字列 | X | title | タイトル(1~30文字以内) | 文字列 | O |
body | 本文(10~180文字以内) | 文字列 | O | ||
media | 画像URL | 文字列 | O |
メッセージの例¶
{
"ko": {
"android": {
"messageExpanded": "(Ad) TEST(Block: Available in settings)",
"ticker": "gg",
"title": "(Ad)test",
"message": "(Ad) test (Restriction: Available in settings)",
"summaryText": "",
"imageUrl": ""
},
"ios": {
"mediaUrl": "",
"title": "Push",
"message": "(Ad) TEST (Block: Available in settings)"
},
"facebook": {
"title" : "Title",
"body" : "Push Message Body",
"media" : “https://image.newdaily.co.kr/site/data/img/2022/05/13/2022051300019_0.jpg”
}
}
}
出力結果¶
ヘッダー | コンテンツタイプ | application/json;charset=utf-8 | |
UUID | {{UUID}} | ||
ボディ | 成功した場合、ボディは空です |
応答ステートコード¶
キー | 値 | 説明 |
---|---|---|
200 | 成功 | (ボディは空です) |
400 | 不正なリクエスト | POSTデータが省略されています JSON形式エラー 必要な要素が省略されているか無効です ボディ内の理由メッセージで追加確認可能 |
401 | 認証されていません | リクエストメッセージの認証ヘッダーが省略されているか無効です 認証トークン(APIキー)が登録されていません 関連APIへのアクセス権限がありません |
403 | 禁止されています | 認証ヘッダーの認証スキームが「Bearer」ではありません(Bearerのみサポート) |
404 | 見つかりません | リクエストURLが間違っています |
500 | 内部サーバーエラー | サーバー上の内部エラー |
502 | 不正なゲートウェイ | プッシュゲートウェイサーバーが過負荷です ネットワーク接続が間違っています |
503 | サービス利用不可 | APIサーバーまたは認証サーバーがフリーズしています |
サンプルコード¶
キャンペーン登録¶
- 呼び出し
curl -v -L
-H "Content-Type: application/json"
-H "Authorization: Bearer {API KEY}"
-d '{"description":"TEST","status":1,"company":"gcp", "companyIndex" : 3, "type":"B","targetingId":0,"reservation":{"localizing":false,"startDate":"2025-11-06","endDate":"2025-11-06","time":"17:00:00","repeat":false,"periodType":"","weekday":[],"skip":[]},"game":{"gameName":"스탭 바이 스탭","gameindex":592,"serverIds":[],"apps":[{"appindex":20002,"appid":"com.gcp.stepbystep.android.google.global.normal","versions":[]}],"serverAll":true},"distribution":{"enable":false,"interval":0,"count":0},"defaultLanguage":"ko","option":{"badge":1,"engagement":"","overwrite":false,"collapseKey":"0","comment":"","groupKey": "", "android":{"icon":"","sound":"","vibration":1},"ios":{"sound":""}},"timestamp":{"time":0,"date":""},"registrant":{"id":"soollung","name":"박기찬"},"notification":{"ko":{"android":{"title":"TEST","message":"(광고) TEST (수신거부: 설정에서 변경 가능)","messageExpanded":"","ticker":"","summaryText":"","imageUrl":""},"ios":{"title":"TEST","message":"(광고) TEST (수신거부: 설정에서 변경 가능)","mediaUrl":""},"facebook":{"title":"TEST", "body":"TEST MESSAGE BODY", "media": "https://image.newdaily.co.kr/site/data/img/2022/05/13/2022051300019_0.jpg"}}},"countries":["KR"],"continents":[{"name":"Africa","countries":[]},{"name":"Americas","countries":[]},{"name":"Asia","countries":["South Korea"]},{"name":"Europe","countries":[]},{"name":"Oceania","countries":[]},{"name":"Polar","countries":[]}]}'
https://sandbox-notification.qpyou.cn/push/campaigns
- リクエスト
> POST /push/campaigns HTTP/1.1
> User-Agent: curl/7.29.0
> Host: sandbox-notification.qpyou.cn
> Accept: */*
> Content-Type: application/json
> Authorization: Bearer {API KEY}
> Content-Length: 1314
> Expect: 100-continue
- レスポンス
< HTTP/1.1 100 Continue
< HTTP/1.1 200 OK
< Content-Length: 1491
< Content-Type: application/json
<: 3d18420b-4cf3-48a8-a3bf-6c9ac6cbe86a
<
{
"uuid": "3d18420b-4cf3-48a8-a3bf-6c9ac6cbe86a",
"status": 1,
"modify": true,
"id": 532,
"type": "B",
"company": "gcp",
"companyIndex": 3,
"description": "TEST",
"targetingId": 0,
"reservation": {
"localizing": false,
"startDate": "2025-11-06",
"endDate": "2025-11-06",
"time": "17:00:00",
"repeat": false
},
"distribution": {
"count": 0,
"interval": 0,
"enable": false
},
"continents": [
{
"name": "Africa",
"countries": []
},
{
"name": "Americas",
"countries": []
},
{
"name": "Asia",
"countries": [
"South Korea"
]
},
{
"name": "Europe",
"countries": []
},
{
"name": "Oceania",
"countries": []
},
{
"name": "Polar",
"countries": []
}
],
"countries": [
"KR"
],
"lastEndTime": 1762448400,
"tasks": {
"17:00:00": {
"startTime": 1762448400,
"endTime": 1762448400,
"time": "17:00:00",
"gmtOffset": 32400,
"zones": [
"Asia/Seoul"
]
}
},
"game": {
"gameindex": 592,
"gameName": "Step By Step",
"apps": [
{
"appid": "com.gcp.stepbystep.android.google.global.normal",
"appindex": 20002
}
]
},
"defaultLanguage": "ko",
"notification": {
"ko": {
"android": {
"messageExpanded": "",
"ticker": "",
"summaryText": "",
"imageUrl": "",
"title": "TEST",
"message": "(Ad) TEST (Opt out: can be modified in the settings)"
},
"ios": {
"title": "TEST",
"message": "(Ad) TEST (Opt out: can be modified in the settings)",
"mediaUrl": ""
},
"facebook": {
"media": "https://image.newdaily.co.kr/site/data/img/2022/05/13/2022051300019_0.jpg",
"title": "TEST",
"body": "TEST MESSAGE BODY"
}
}
},
"option": {
"badge": 1,
"engagement": "",
"overwrite": false,
"collapseKey": "0",
"comment": "",
"groupKey": "",
"android": {
"icon": "",
"vibration": "1",
"sound": ""
},
"ios": {
"sound": ""
}
},
"timestamp": {
"date": "2023-05-22 15:19:24.726",
"time": 1684736364726
},
"registrant": {
"name": "Park Ki Chan",
"id": "soollung"
},
"dryRun": false,
"debug": false
}
キャンペーンの変更¶
- 呼び出し
curl -v -L
-H "Content-Type: application/json"
-H "Authorization: Bearer {API KEY}"
-d '{"description":"TEST","status":1,"company":"gcp", "companyIndex" : 3, "type":"B","targetingId":0,"reservation":{"localizing":false,"startDate":"2025-11-06","endDate":"2025-11-06","time":"17:00:00","repeat":false,"periodType":"","weekday":[],"skip":[]},"game":{"gameName":"스탭 바이 스탭","gameindex":592,"serverIds":[],"apps":[{"appindex":20002,"appid":"com.gcp.stepbystep.android.google.global.normal","versions":[]}],"serverAll":true},"distribution":{"enable":false,"interval":0,"count":0},"defaultLanguage":"ko","option":{"badge":1,"engagement":"","overwrite":false,"collapseKey":"0","comment":"","groupKey": "", "android":{"icon":"","sound":"","priority":"high"},"ios":{"sound":""}},"timestamp":{"time":0,"date":""},"registrant":{"id":"soollung","name":"박기찬"},"notification":{"ko":{"android":{"title":"TEST","message":"(광고) TEST (수신거부: 설정에서 변경 가능)","messageExpanded":"","ticker":"","summaryText":"","imageUrl":""},"ios":{"title":"TEST","message":"(광고) TEST (수신거부: 설정에서 변경 가능)","mediaUrl":""},"facebook":{"title":"TEST", "body":"TEST MESSAGE BODY", "media": "https://image.newdaily.co.kr/site/data/img/2022/05/13/2022051300019_0.jpg"}}},"countries":["KR"],"continents":[{"name":"Africa","countries":[]},{"name":"Americas","countries":[]},{"name":"Asia","countries":["South Korea"]},{"name":"Europe","countries":[]},{"name":"Oceania","countries":[]},{"name":"Polar","countries":[]}]}'
https://sandbox-notification.qpyou.cn/push/campaigns
- リクエスト
> POST /push/campaigns HTTP/1.1
> User-Agent: curl/7.29.0
> Host: sandbox-notification.qpyou.cn
> Accept: */*
> Content-Type: application/json
> Authorization: Bearer {API KEY}
> Content-Length: 1314
> Expect: 100-continue
- 応答
< HTTP/1.1 100 Continue
< HTTP/1.1 200 OK
< Content-Length: 1491
< Content-Type: application/json
< UUID: 65420989-ab96-4587-b19a-195fe13f9086
<
{
"uuid": "65420989-ab96-4587-b19a-195fe13f9086",
"status": 1,
"id": 475,
"type": "B",
"company": "gcp",
"companyIndex": 3,
"description": "TEST475",
"targetingId": 0,
"reservation": {
"localizing": false,
"startDate": "2020-11-06",
"endDate": "2020-11-06",
"time": "17:00:00",
"repeat": false
},
"distribution": {
"count": 0,
"interval": 0,
"enable": false
},
"continents": [{
"name": "Africa",
"countries": []
}, {
"name": "Americas",
"countries": []
}, {
"name": "Asia",
"countries": ["South Korea"]
}, {
"name": "Europe",
"countries": []
}, {
"name": "Oceania",
"countries": []
}, {
"name": "Polar",
"countries": []
}],
"countries": ["KR"],
"lastEndTime": 1604682000,
"tasks": {
"17:00:00": {
"startTime": 1604682000,
"endTime": 1604682000,
"time": "17:00:00",
"gmtOffset": 32400,
"zones": ["Asia/Seoul"]
}
},
"game": {
"gameindex": 592,
"gameName": "스탭바이스탭",
"apps": [{
"appid": "com.gcp.stepbystep.android.google.global.normal",
"appindex": 20002
}]
},
"defaultLanguage": "ko",
"notification": {
"ko": {
"android": {
"title": "TEST",
"message": "(광고) TEST (수신거부: 설정에서 변경 가능)",
"messageExpanded": "",
"ticker": "",
"summaryText": "",
"imageUrl": ""
},
"ios": {
"title": "TEST",
"message": "(광고) TEST (수신거부: 설정에서 변경 가능)",
"mediaUrl": ""
},
"facebook": {
"title": "TEST",
"body": "TEST MESSAGE BODY",
"media": "https://image.newdaily.co.kr/site/data/img/2022/05/13/2022051300019_0.jpg"
}
}
},
"option": {
"badge": 1,
"engagement": "",
"overwrite": false,
"collapseKey": "0",
"comment": "",
"android": {
"icon": "",
"sound": "",
"priority": "high"
},
"ios": {
"sound": ""
},
"groupKey": "test"
},
"timestamp": {
"date": "2020-03-23 11:03:43.094",
"time": 1584929023094
},
"registrant": {
"name": "박기찬",
"id": "soollung"
},
"dryRun": false,
"debug": false
}
国コード¶
大陸 | 国 | コード | 国 | コード |
---|---|---|---|---|
アフリカ | アンゴラ | AO | マダガスカル | MG |
ブルキナファソ | BF | マリ | ML | |
ブルンジ | BI | モーリタニア | MR | |
ベナン | BJ | モーリシャス | MU | |
ボツワナ | BW | マラウイ | MW | |
コンゴ民主共和国 | CD | モザンビーク | MZ | |
中央アフリカ共和国 | CF | ナミビア | NA | |
コンゴ共和国 | CG | ニジェール | NE | |
コートジボワール | CI | ナイジェリア | NG | |
カメルーン | CM | レユニオン | RE | |
カーボベルデ | CV | ルワンダ | RW | |
ジブチ | DJ | セーシェル | SC | |
アルジェリア | DZ | スーダン | SD | |
エジプト | EG | セントヘレナ | SH | |
西サハラ | EH | シエラレオネ | SL | |
エリトリア | ER | セネガル | SN | |
エチオピア | ET | ソマリア | SO | |
ガボン | GA | 南スーダン | SS | |
ガーナ | GH | サントメ・プリンシペ | ST | |
ガンビア | GM | スワジランド | SZ | |
ギニア | GN | チャド | TD | |
赤道ギニア | GQ | フランス領南方地域 | TF | |
ギニアビサウ | GW | トーゴ | TG | |
英領インド洋地域 | IO | チュニジア | TN | |
ケニア | KE | タンザニア | TZ | |
コモロ | KM | ウガンダ | UG | |
リベリア | LR | マヨット | YT | |
レソト | LS | 南アフリカ | ZA | |
リビア | LY | ザンビア | ZM | |
モロッコ | MA | ジンバブエ | ZW | |
アメリカ大陸 | アンティグア・バーブーダ | AG | ホンジュラス | HN |
アンギラ | AI | ハイチ | HT | |
アルゼンチン | AR | ジャマイカ | JM | |
アルバ | AW | セントクリストファー・ネイビス | KN | |
バルバドス | BB | ケイマン諸島 | KY | |
サン・バルテルミー | BL | セントルシア | LC | |
バミューダ | BM | サン・マルタン | MF | |
ボリビア | BO | マルティニーク | MQ | |
ボネール、セントユースタティウス、サバ | BQ | モントセラト | MS | |
ブラジル | BR | メキシコ | MX | |
バハマ | BS | ニカラグア | NI | |
ベリーズ | BZ | パナマ | PA | |
カナダ | CA | ペルー | PE | |
チリ | CL | サン・ピエール島とミクロン | PM | |
コロンビア | CO | プエルトリコ | PR | |
コスタリカ | CR | パラグアイ | PY | |
キューバ | CU | スリナム | SR | |
キュラソー | CW | エルサルバドル | SV | |
ドミニカ | DM | シント・マールテン | SX | |
ドミニカ共和国 | DO | タークス・カイコス諸島 | TC | |
エクアドル | EC | トリニダード・トバゴ | TT | |
フォークランド諸島 | FK | アメリカ合衆国の小離島 | UM | |
グレナダ | GD | アメリカ合衆国 | US | |
フランス領ギアナ | GF | ウルグアイ | UY | |
グリーンランド | GL | セントビンセントおよびグレナディーン諸島 | VC | |
グアドループ | GP | ベネズエラ | VE | |
南ジョージアおよび南サンドイッチ諸島 | GS | 英領バージン諸島 | VG | |
グアテマラ | GT | 米領バージン諸島 | VI | |
ガイアナ | GY | |||
アジア | アラブ首長国連邦 | AE | レバノン | LB |
アフガニスタン | AF | スリランカ | LK | |
アルメニア | AM | ミャンマー | MM | |
アゼルバイジャン | AZ | モンゴル | MN | |
バングラデシュ | BD | マカオ | MO | |
バーレーン | BH | モルディブ | MV | |
ブルネイ | BN | マレーシア | MY | |
ブータン | BT | ネパール | NP | |
中国 | CN | オマーン | OM | |
ジョージア | GE | フィリピン | PH | |
香港 | HK | パキスタン | PK | |
インドネシア | ID | パレスチナ地域 | PS | |
イスラエル | IL | カタール | QA | |
インド | IN | サウジアラビア | SA | |
イラク | IQ | シンガポール | SG | |
イラン | IR | シリア | SY | |
ヨルダン | JO | タイ | TH | |
日本 | JP | タジキスタン | TJ | |
キルギス | KG | 東ティモール | TL | |
カンボジア | KH | トルクメニスタン | TM | |
北朝鮮 | KP | トルコ | TR | |
韓国 | KR | 台湾 | TW | |
クウェート | KW | ウズベキスタン | UZ | |
カザフスタン | KZ | ベトナム | VN | |
ラオス | LA | イエメン | YE | |
ヨーロッパ | アンドラ | AD | アイスランド | IS |
アルバニア | AL | イタリア | IT | |
オーストリア | AT | ジャージー | JE | |
オーランド諸島 | AX | リヒテンシュタイン | LI | |
ボスニア・ヘルツェゴビナ | BA | リトアニア | LT | |
ベルギー | BE | ルクセンブルク | LU | |
ブルガリア | BG | ラトビア | LV | |
ベラルーシ | BY | モナコ | MC | |
スイス | CH | モルドバ | MD | |
キプロス | CY | モンテネグロ | ME | |
チェコ共和国 | CZ | マケドニア | MK | |
ドイツ | DE | マルタ | MT | |
デンマーク | DK | オランダ | NL | |
エストニア | EE | ノルウェー | NO | |
スペイン | ES | ポーランド | PL | |
フィンランド | FI | ポルトガル | PT | |
フェロー諸島 | FO | ルーマニア | RO | |
フランス | FR | セルビア | RS | |
イギリス | GB | ロシア | RU | |
ガーンジー | GG | スウェーデン | SE | |
ジブラルタル | GI | スロベニア | SI | |
ギリシャ | GR | スヴァールバル諸島およびヤンマイエン島 | SJ | |
クロアチア | HR | スロバキア | SK | |
ハンガリー | HU | サンマリノ | SM | |
アイルランド | IE | ウクライナ | UA | |
マン島 | IM | バチカン | VA | |
オセアニア | アメリカ領サモア | AS | ニウエ | NU |
オーストラリア | AU | ニュージーランド | NZ | |
ココス諸島 | CC | フランス領ポリネシア | PF | |
クック諸島 | CK | パプアニューギニア | PG | |
クリスマス島 | CX | ピトケアン | PN | |
フィジー | FJ | パラオ | PW | |
ミクロネシア | FM | ソロモン諸島 | SB | |
グアム | GU | トケラウ | TK | |
キリバス | KI | トンガ | TO | |
マーシャル諸島 | MH | ツバル | TV | |
北マリアナ諸島 | MP | バヌアツ | VU | |
ニューカレドニア | NC | ウォリス・フツナ | WF | |
ノーフォーク島 | NF | サモア | WS | |
ナウル | NR | |||
極地 | 南極大陸 | AQ |
言語コード¶
言語コード | 言語 |
---|---|
ko | 韓国語 |
zh-hans | 中国語 (簡体字) |
zh-hant | 中国語 (繁体字) |
en | 英語 |
ja | 日本語 |
ar | アラビア語 |
fr | フランス語 |
de | ドイツ語 |
es | スペイン語 |
pt | ポルトガル語 |
th | タイ語 |
it | イタリア語 |
ru | ロシア語 |
id | インドネシア語 |
vi | ベトナム語 |
tr | トルコ語 |