コンテンツにスキップ

ユーザー獲得とは何ですか?

ユーザーがHive SDKが提供する招待機能を使って、自分の招待URLやQRコードをSNSで共有することで、新しいユーザーを引き付けることができます。招待した友達と招待された友達の両方に報酬が与えられます。招待されたユーザーがゲームをインストールし、特定の条件(条件と報酬はHive Consoleで設定できます)を満たすと、例えば特定のレベルに達することなどです。

招待の対象はHiveユーザーに限定されません。ユニークな招待URLとQRコードが各ユーザーに発行され、他のユーザーを招待したユーザーを特定します。

iOSユーザーが招待URLを介して参加すると、マッチングの損失を防ぐために次の通知ページが表示されます。

UAはユーザーに達成しやすい目標を提供し、彼らの興味とエンゲージメントを高めるために適切な報酬を与えるべきです。

UAの機能

  • ゲームの招待URL/QRコードを発行して共有する
  • インストールあたりのコスト (CPI)、友達がゲームをインストールした場合にユーザーと招待された友達の両方に報酬が与えられる
  • アクションあたりのコスト (CPA)、友達がゲームをプレイ中にミッションを達成した場合にユーザーと招待された友達の両方に報酬が与えられる

UA 招待プロセス

報酬を得るには、ITEMを実装する必要があります。

ユーザー獲得キャンペーンの登録

Hive コンソールで UA キャンペーンを登録できます。2 種類のキャンペーンを提供しています。

  • 友達招待による達成キャンペーン - 招待された友達がキャンペーンの目標を達成すると、ユーザーと新しい友達の両方が報酬を得ます
  • ミッション達成によるキャンペーン - ミッションを完了した友達の数が設定された数に達すると、ユーザーと新しい友達の両方が報酬を得ます

キャンペーンを設定する方法の詳細については、Hive コンソールプロモーションを参照してください。

ユーザー獲得の実装

ゲーム内でUAのための招待状とキャンペーンUIを実装し、ユーザーにアプリのインストールを促します。

キャンペーン情報と招待URL/QRコードを受け取る

招待URL/QRコードとキャンペーン情報を受け取るには、PromotionクラスのgetAppInvitationData()メソッドを呼び出してください。Hive SDKからの情報に基づいて招待ページまたはキャンペーン画面を作成できます。

以下は、Hive SDKにURL/QRコードおよびキャンペーン情報をリクエストするためのサンプルコードです。

API リファレンス: hive.Promotion.getAppInvitationData

using hive;    
    Promotion.getAppInvitationData((ResultAPI result, AppInvitationData appInvitationData) => {    
        if (result.isSuccess()) {    
            // call successful    
        }    
});
#include "HivePromotion.h"

FHivePromotion::GetAppInvitationData(FHivePromotionOnAppInvitationDataDelegate::CreateLambda([this](const FHiveResultAPI& Result, const FHiveAppInvitationData& AppInvitationData) {
        if (Result.IsSuccess()) {
                // API  call success
        }
}));

APIリファレンス: Promotion::getAppInvitationData

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    Promotion::getAppInvitationData([=](ResultAPI result, AppInvitationData appInvitationData) {    
        if (result.isSuccess()) {    
        // call successful    
        }    
});

API リファレンス: Promotion.getAppInvitationData

import com.hive.Promotion    
    import com.hive.ResultAPI    
    Promotion.getAppInvitationData(object : Promotion.AppInvitationDataListener {    
         override fun onAppInvitationData(result: ResultAPI, appInvitationData: Promotion.AppInvitationData?) {    
             if (result.isSuccess) {    
                 // call successful    
             }    
         }    
})

APIリファレンス: com.hive.Promotion.getAppInvitationData

import com.hive.Promotion;    
    import com.hive.ResultAPI;    
    Promotion.INSTANCE.getAppInvitationData((result, appInvitationData) -> {    
         if (result.isSuccess()) {    
             // call successful    
         }    
});

APIリファレンス: PromotionInterface .getAppInvitationData

import HIVEService    
    PromotionInterface.getAppInvitationData() { result, appInvitationData in    
        if result.isSuccess() {    
        // call successful    
        }    
}

APIリファレンス: HIVEPromotion:getAppInvitationData

#import <HIVEService/HIVEService-Swift.h>    
    [HIVEPromotion getAppInvitationData: ^(HIVEResultAPI *result, HIVEAppInvitationData *appInvitationData) {    
        if ([result isSuccess]) {    
        // call successful    
        }    
}];

getAppInvitationData()メソッドを呼び出した後、データはAppInivitationDataオブジェクトを介して送信されます。

AppInvitationDataオブジェクトの構成

フィールド名 説明 タイプ
qrcode ゲームへの招待のためのQRコード画像(ビットマップ画像をHEXA文字列タイプとして保存) 文字列
inviteMessage ゲームへの招待メッセージ 文字列
inviteCommonLink ゲームへの招待リンク 文字列
inviteHivemsgLink Hive メッセージによるゲームへの招待リンク 文字列
eachCampaignList キャンペーンが完了するたびに報酬を得るためのキャンペーンリスト AppInvitationCampaignリスト
stageCampaignList ユーザーが招待目標を達成したときに報酬を得るためのキャンペーンリスト AppInvitationCampaignStageリスト

ソーシャルメディアによるメディアファイルの共有

Hive SDKは、キャンペーン情報の受信と招待URL/QRコードでは利用できないソーシャルメディアによる共有機能を提供します。以下のSNSとともに、Hive SDK v4.11.7で提供されるPromotionクラスのshowUAShare()メソッドを使用してください。

  • カカオトーク
  • LINE
  • フェイスブック
  • フェイスブックメッセンジャー
  • WhatsApp
  • WeChat

Hive SDK v4.11.2以降、v4.11.7より前のバージョンでは、PlatformHelperクラスのshareText()およびshareMedia()メソッドを使用することで、この機能が利用可能です。

Warning
  • 上記に挙げた以外の他のソーシャルメディアでプロモーションAPIを実装することは可能ですが、Hive SDKはその実装を保証することはできません。他の種類のソーシャルメディアを使用する前に必ずテストしてください。
  • Facebookは短いテキストの共有をサポートしておらず、ウェブURLタイプのみです。
  • ユーザーはFacebookやLINEを使用してメディアを即座に共有することはできません。追加のアクションとして、登録/送信ボタンをタップする必要があります。
  • Android
  • iOS

メディアファイルの共有は、ファイルがユーザーのデバイスに保存されている場合にのみ利用可能です。URLを共有するには、テキスト共有機能を使用するか、URLからファイルをダウンロードしてください。以下は、ソーシャルメディアによるファイル共有を実装するためのサンプルコードです。

APIリファレンス: hive .Promotion.showUAShare

using hive;    
    // 招待メッセージ    
    String inviteMessage = appInvitationData.inviteMessage;    
    // 招待リンク    
    String inviteCommonLink = appInvitationData.inviteCommonLink;    
    Promotion.showUAShare(inviteMessage, inviteCommonLink, (ResultAPI result) => {    
         if (result.isSuccess()) {    
            // 成功した呼び出し    
        }    
});
#include "HivePromotion.h"

FString 招待メッセージ = TEXT("InviteMessage"); // AppInvitationData.InviteMessage;
FString 招待リンク = TEXT("InviteLink"); // AppInvitationData.InviteCommonLink;

FHivePromotion::ShowUAShare(InviteMessage, InviteLink, FHivePromotionOnUAShareDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
        if (Result.IsSuccess()) {
                // API call success
        }
}));

APIリファレンス: Promotion ::showUAShare

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    // 招待メッセージ    
    string inviteMessage = appInvitationData.inviteMessage.c_str();    
    // 招待リンク    
    string inviteCommonLink = appInvitationData.inviteCommonLink.c_str();    
    Promotion::showUAShare(inviteMessage, inviteCommonLink, [=](ResultAPI const &result) {    
        if (result.isSuccess()) {    
        // 呼び出し成功    
        }    
});

APIリファレンス: Promotion.showUAShare

import com.hive.Promotion    
    import com.hive.ResultAPI    
    // 招待メッセージ    
    val invitationMessage = appInvitationData?.inviteMessage ?: ""    
    // 招待リンク    
    val inviteCommonLink = appInvitationData?.inviteCommonLink ?: ""    
    Promotion.showUAShare(invitationMessage, inviteCommonLink, object: Promotion.PromotionShareListener{    
         override fun onPromotionShare(result: ResultAPI) {    
             if (result.isSuccess) {    
                 // 呼び出し成功    
             }    
         }    
})

APIリファレンス: com .hive.Promotion.showUAShare

import com.hive.Promotion;    
    import com.hive.ResultAPI;    
    // 招待メッセージ    
    String inviteMessage = appInvitationData.getInviteMessage();    
    // 招待リンク    
    String inviteCommonLink = appInvitationData.getInviteCommonLink();    
    Promotion.INSTANCE.showUAShare(inviteMessage, inviteCommonLink, result -> {    
         if (result.isSuccess()) {    
             // 成功した呼び出し    
         }    
});

APIリファレンス: PromotionInterface.showUAShare

import HIVEService    
    // 招待メッセージ    
    let inviteMessage = appInvitationData.inviteMessage    
    // 招待リンク    
    let inviteCommonLink = appInvitationData.inviteCommonLink    
    PromotionInterface.showUAShare(inviteMessage, inviteCommonLink) { result in    
        if result.isSucces() {    
        // 呼び出し成功    
        }    
}

APIリファレンス: HIVEPromotion ::showUAShare:inviteLink:handler:

#import <HIVEService/HIVEService-Swift.h>    
    // 招待メッセージ    
    NSString *inviteMessage = appInvitationData.inviteMessage;    
    // 招待リンク    
    NSString *inviteCommonLink = appInvitationData.inviteCommonLink;    

    [HIVEPromotion showUAShare: inviteMessage inviteLink: inviteCommonLink handler: ^(HIVEResultAPI *result) {    
         if ([result isSuccess]) {    
            // call successful    
            }    
}];

招待画面のデザイン

ユーザーが友達をゲームに招待するための招待画面が表示されます。招待画面を設計するには、AppInvitationDataオブジェクトのqrcodeまたはinviteCommonLinkを利用してください。getAppInvitationData()メソッド呼び出しの結果として渡されるAppInvitationDataオブジェクトのqrcodeまたはinviteCommonLinkを使用して、ゲーム内にゲーム招待画面を実装できます。招待ページには制限はありませんが、以下の情報は明確に記載する必要があります。

  • 次の内容を含むキャンペーン; 招待が達成しなければならない目標、目標の説明、その目標を達成することによる報酬、招待が完了した回数、目標を達成するために必要な招待の数。
  • 次の内容を含む招待; 招待できる友達のリストと、実際の招待を送信するための方法または手順を指定します。

キャンペーンと招待は、ゲームプランに応じて異なる画面で構成される場合があります。または、同じ画面にまとめて構成される場合もあります。

  • inviteCommonLinkを使用した初期画面の例

    招待URLを上記の例画面のように表示し、ユーザーがURLをクリップボードにコピーできるようにゲーム内のUIを設計することをお勧めします。

キャンペーン画面の設計

AppInvitationDataクラスはeachCampaignListstageCampaignList変数を定義します。eachCampaignList変数のデータ型はAppInvitationCampaignクラスであり、stageCampaignListのデータ型は**AppInvitationCampaignState**です。それぞれがキャンペーンとキャンペーン達成情報を含みます。 キャンペーン画面は以下の情報を使用して構成されます。

AppInvitationCampaignオブジェクトの構成

No. フィールド名 説明 タイプ
1 title キャンペーンタイトル 文字列
2 description キャンペーン説明 文字列
3 imgUrl キャンペーンアイコンの画像URL 文字列
item 報酬情報(‘key’と‘value’のデータタイプでJSONまたはHashMap形式。’key’はキャンペーン設定によって異なる) Map
4 count キャンペーン達成数 整数
5 limit キャンペーン対象の最大数 整数
6 goalCount 達成情報(すべてのレベルの達成数) 整数
- order キャンペーンが表示される順序 整数
- campaignId キャンペーンID(Hive サーバーによって発行されたユニークなキャンペーンID) 整数

AppInvitationCampaignStageオブジェクトの構成

No. フィールド名 説明 タイプ
1 title キャンペーンタイトル 文字列
2 description キャンペーン説明 文字列
3 imgUrl キャンペーンアイコンの画像URL 文字列
item 報酬情報(‘key’と‘value’のデータ型でJSONまたはHashMap形式。’key’はキャンペーン設定に応じて多様) Map
4 count 達成したキャンペーンの数 整数
5 limit キャンペーン対象の最大数 整数
6 goalCount 達成情報(すべてのレベルを達成した数) 整数
goalTotal 達成情報(報酬を得るために必要なすべてのレベルを達成する数) 整数
- order キャンペーンが公開される順序 整数
- campaignId キャンペーンID(Hive サーバーによって発行されたユニークなキャンペーンID) 整数

UA送信者の情報を確認中

ユーザー獲得送信者の情報は、クライアントAPIでも利用可能です。 新しいユーザーが最初に受け取ったUAリンクをクリックしてアプリをインストールし、実行します。その後、SDKの初期化とログインを実装します。次に、**Promotion**クラスでsetEngagementReady(true)メソッドを呼び出します。その後、getAppInvitationSenderInfoメソッドを呼び出すことで、UA送信者の情報をAppInvitationSenderInfoオブジェクトを通じて確認できます。

以下はUA送信者の情報を確認するためのサンプルコードです。

API リファレンス: Promotion .getAppInvitationSenderInfo

using hive;    
    Promotion.getAppInvitationSenderInfo((result, senderInfo) => {    
        if (!result.isSuccess()) {    
            return;    
        }    
        if (senderInfo != null && !string.IsNullOrEmpty(senderInfo.vid)) {    
        // Successful call and check inviter information    
        }    
});

```c++

include "HivePromotion.h"

FHivePromotion::GetAppInvitationSenderInfo(FHivePromotionOnAppInvitationSenderInfoDelegate::CreateLambda(this { if (Result.IsSuccess()) { //成功した呼び出しと招待者情報の確認
} }));

APIリファレンス: Promotion ::getAppInvitationSenderInfo

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    Promotion::getAppInvitationSenderInfo([this](ResultAPI result, AppInvitationSenderInfo senderInfo) {    
        if (!result.isSuccess()) {    
        return;    
        }    
        if (senderInfo != NULL && !senderInfo.vid.empty()) {    
        // Successful call and check inviter information    
        }    
});

APIリファレンス: Promotion.getAppInvitationSenderInfo

import com.hive.Promotion    
    import com.hive.ResultAPI    
    Promotion.getAppInvitationSenderInfo(object : Promotion.AppInvitationSenderInfoListener {    
         override fun onAppInvitationSenderInfo(result: ResultAPI, appInvitationSenderInfo: Promotion.AppInvitationSenderInfo?) {    
             if (!result.isSuccess) {    
                 return    
             }    
             if (appInvitationSenderInfo != null && appInvitationSenderInfo.senderVid.isNotEmpty()) {    
                 // 成功した呼び出しと招待者情報の確認    
             }    
         }    
})

APIリファレンス: Promotion .INSTANCE.getAppInvitationSenderInfo

import com.hive.Promotion;    
    import com.hive.ResultAPI;    
    Promotion.INSTANCE.getAppInvitationSenderInfo((result, appInvitationSenderInfo) -> {    
         if (!result.isSuccess()) {    
             return;    
         }    
         if (appInvitationSenderInfo != null && !(appInvitationSenderInfo.getSenderVid().isEmpty())) {    
             // Successful call and check inviter information    
         }    
});

APIリファレンス: PromotionInterface .getAppInvitationSenderInfo

import HIVEService    
    PromotionInterface.getAppInvitationSenderInfo() { result, senderInfo in    
        if !result.isSuccess() {    
            return    
        }    
        if     
            let senderInfo = senderInfo,            
            let vid = senderInfo.vid, !vid.isEmpty     
        {    
            // Successful call and check inviter information    
        }    
}

APIリファレンス: HIVEPromotion getAppInvitationSenderInfo

#import <HIVEService/HIVEService-Swift.h>    
    [HIVEPromotion getAppInvitationSenderInfo: ^(HIVEResultAPI *result, HiveAppInvitationSenderInfo *senderInfo) {    
         if (![result isSuccess]) {    
             return;    
         }    
        if (senderInfo != nil && [senderInfo.vid length] > 0) {    
        // 成功した呼び出しと招待者情報の確認    
        }    
}];

AppInvitationSenderInfoオブジェクトの構成

番号 フィールド名 説明 タイプ
1 vid 送信者のvid 文字列

CPA達成の通知

招待された友達がゲームをインストールするか、キャンペーンの目標に達したとき、ゲームは報酬を受け取るためにHiveサーバーにCPAの達成を通知する必要があります。報酬を与える前に、以下の作業を必ず完了してください。

両方の作業が完了したら、CPAが達成されたときにCPA達成通知APIを呼び出してください。