コンテンツにスキップ

キャンペーン登録

前提条件

キャンペーンを登録するための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 会社
  • gamevil: Com2uS Holdings
  • com2us: Com2uS
  • gcp: Com2uS Platform
文字列 O
companyIndex 会社コード(AppCenterに登録された会社番号) 整数 O
Description キャンペーンの説明 文字列 O
notice 通知を送信するかどうか ブール値 X
Type 送信タイプ
  • B: バルクプッシュ
  • T: ターゲティングプッシュ
文字列 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ガイドを参照してください。
  • NORMAL = データメッセージのデフォルト優先度。通常の優先度のメッセージは、デバイスがスリープモードでないときに即座に送信されます。デバイスがスリープモードの場合、バッテリーを節約するために、デバイスがスリープモードを終了するまで送信が遅れることがあります。新しいメール通知やUIの同期、バックグラウンドアプリデータの同期など、あまり時間に敏感でないメッセージには、通常の配信優先度を選択してください。
  • HIGH = FCMは高優先度のメッセージを即座に送信しようとし、必要に応じてデバイスを起動し、非常に限られたネットワークアクセスを含むいくつかの限定的な処理を行う場合があります。高優先度のメッセージは通常、ユーザーがアプリや通知と対話することに関連しています。
enum(NORMAL, HIGH) X
ios sound これは、プッシュ通知がユーザーのデバイスに表示されたときに再生される通知音のソースファイルの名前です。サウンドファイルはアプリコンテナのLibrary/Soundsまたはアプリのメインバンドルに存在する必要があります。このフィールドが空の場合、自動的に「default」に設定され、ユーザーのAppleデバイスのシステムデフォルトサウンドソースが使用されます。 td> String X
Note

optionについての詳細は、それぞれの市場のガイドラインを参照してください。

(オプションフィールドはFacebookには適用されません。)

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
facebook 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 トルコ語