ข้ามไปที่เนื้อหา

การได้มาซึ่งผู้ใช้?

คุณสามารถดึงดูดผู้ใช้ใหม่ได้โดยให้ผู้ใช้แชร์ URL เชิญหรือ QR Code ของพวกเขาบน SNS ของพวกเขาด้วยฟีเจอร์เชิญที่เสนอโดย Hive SDK รางวัลจะมอบให้ทั้งผู้ที่เชิญเพื่อนของเขาหรือเธอและผู้ที่ถูกเชิญเมื่อผู้ใช้ที่ถูกเชิญติดตั้งเกมและตรงตามเงื่อนไขบางประการ (เงื่อนไขและรางวัลสามารถตั้งค่าได้ที่ Hive Console) เช่น การไปถึงระดับที่กำหนด

เป้าหมายของการเชิญไม่จำกัดเฉพาะผู้ใช้ Hive เท่านั้น จะมีการออก URL เชิญเฉพาะและ QR Code สำหรับแต่ละผู้ใช้เพื่อระบุผู้ใช้ที่เชิญผู้อื่น

หากผู้ใช้ iOS เข้าร่วมผ่าน URL เชิญ หน้าข้อความแจ้งต่อไปนี้จะถูกเปิดเผยเพื่อป้องกันการสูญเสียการจับคู่

UA ควรให้ผู้ใช้มีเป้าหมายที่สามารถทำได้ง่ายและให้การชดเชยที่เหมาะสมเพื่อเพิ่มความสนใจและการมีส่วนร่วมของพวกเขา。

คุณสมบัติ UA

  • ออกและแชร์ URL/QR code ของเกม
  • ค่าใช้จ่ายต่อการติดตั้ง (CPI) ซึ่งให้รางวัลทั้งผู้ใช้และเพื่อนที่ได้รับเชิญหากเพื่อนติดตั้งเกม
  • ค่าใช้จ่ายต่อการดำเนินการ (CPA) ซึ่งให้รางวัลทั้งผู้ใช้และเพื่อนที่ได้รับเชิญหากเพื่อนทำภารกิจสำเร็จในขณะเล่นเกม

กระบวนการเชิญ UA

เพื่อให้รางวัล คุณต้องดำเนินการ ITEM.

การลงทะเบียนแคมเปญการได้มาซึ่งผู้ใช้

คุณสามารถลงทะเบียนแคมเปญ UA บน Hive Console ซึ่งมีแคมเปญสองประเภท

  • แคมเปญความสำเร็จตามจำนวน - หากเพื่อนที่ถูกเชิญบรรลุเป้าหมายของแคมเปญ ผู้ใช้และเพื่อนใหม่จะได้รับรางวัล
  • แคมเปญความสำเร็จตามภารกิจ - หากจำนวนเพื่อนที่ทำภารกิจสำเร็จตรงตามจำนวนที่ตั้งไว้ ผู้ใช้และเพื่อนใหม่จะได้รับรางวัล

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการกำหนดค่าการรณรงค์ โปรดดูที่ Hive Console Promotion.

การดำเนินการเพื่อการได้มาซึ่งผู้ใช้

ดำเนินการเชิญชวนและ UI แคมเปญสำหรับ UA ในเกม และกระตุ้นให้ผู้ใช้ติดตั้งแอป

การรับข้อมูลแคมเปญและ URL/QR Code สำหรับการเชิญ

ในการรับ URL/QR code การเชิญและข้อมูลแคมเปญ ให้เรียกใช้วิธีการ getAppInvitationData() ในคลาส Promotion คุณสามารถสร้างหน้าเชิญหรือหน้าจอแคมเปญตามข้อมูลจาก Hive SDK.

ต่อไปนี้คือตัวอย่างโค้ดเพื่อขอข้อมูล URL/QR code และข้อมูลแคมเปญจาก Hive SDK.

API Reference: 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 Reference: 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 Reference: 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 Reference: com.hive.Promotion.getAppInvitationData

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

API Reference: PromotionInterface .getAppInvitationData

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

API Reference: HIVEPromotion:getAppInvitationData

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

หลังจากเรียกใช้เมธอด getAppInvitationData() ข้อมูลจะถูกส่งผ่านวัตถุ AppInivitationData

การประกอบของวัตถุ AppInvitationData

ชื่อฟิลด์ คำอธิบาย ประเภท
qrcode รูปภาพ QR Code สำหรับเชิญชวนเข้าร่วมเกม (บันทึกรูปภาพ bitmap เป็นประเภท HEXA string) String
inviteMessage ข้อความเชิญชวนเข้าร่วมเกม String
inviteCommonLink ลิงก์เชิญชวนเข้าร่วมเกม String
inviteHivemsgLink ลิงก์เชิญชวนเข้าร่วมเกมโดย Hive ข้อความ String
eachCampaignList รายการแคมเปญเพื่อให้รางวัลเมื่อแคมเปญเสร็จสิ้น AppInvitationCampaign list
stageCampaignList รายการแคมเปญเพื่อให้รางวัลเมื่อผู้ใช้บรรลุเป้าหมายการเชิญชวน AppInvitationCampaignStage list

แบ่งปันไฟล์มีเดียผ่านโซเชียลมีเดีย

Hive SDK มีฟังก์ชันการแชร์ผ่านโซเชียลมีเดีย ซึ่งไม่สามารถใช้ได้กับ ข้อมูลแคมเปญที่ได้รับและ URL/QR Code การเชิญ. ใช้เมธอด showUAShare() ในคลาส Promotion ที่จัดเตรียมโดย Hive SDK v4.11.7 กับ SNS ต่อไปนี้.

  • คา카오 ทอล์ค
  • ไลน์
  • เฟซบุ๊ก
  • เฟซบุ๊ก เมสเซนเจอร์
  • วอตส์แอพ
  • วีแชท

ด้วย Hive SDK v4.11.2 และเวอร์ชันที่ใหม่กว่าแต่ก่อนหน้า v4.11.7 ฟังก์ชันนี้สามารถใช้งานได้โดยใช้วิธีการ shareText() และ shareMedia() ในคลาส PlatformHelper

Warning
  • สามารถใช้งาน Promotion API กับโซเชียลมีเดียอื่น ๆ นอกเหนือจากที่กล่าวถึงข้างต้นได้ อย่างไรก็ตาม Hive SDK ไม่สามารถรับประกันการใช้งานได้ ต้องมั่นใจว่าทดสอบก่อนการใช้งานโซเชียลมีเดียประเภทอื่น ๆ
  • Facebook ไม่รองรับการแชร์ข้อความสั้น แต่รองรับเฉพาะประเภท URL ของเว็บเท่านั้น
  • ผู้ใช้ไม่สามารถแชร์สื่อได้ทันทีเมื่อใช้ Facebook หรือ LINE ต้องดำเนินการเพิ่มเติม โดยการกดปุ่มลงทะเบียน/ส่ง
  • แอนดรอยด์
  • iOS

การแชร์ไฟล์สื่อจะสามารถทำได้เฉพาะเมื่อไฟล์ถูกบันทึกไว้ในอุปกรณ์ของผู้ใช้เท่านั้น หากต้องการแชร์ URL ให้ใช้ฟังก์ชันการแชร์ข้อความหรือดาวน์โหลดไฟล์จาก URL ด้านล่างนี้คือตัวอย่างโค้ดในการทำการแชร์ไฟล์ผ่านโซเชียลมีเดีย

API Reference: 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 InviteMessage = TEXT("InviteMessage"); // AppInvitationData.InviteMessage;
FString InviteLink = TEXT("InviteLink"); // AppInvitationData.InviteCommonLink;

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

API Reference: 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 Reference: 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 Reference: 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 Reference: PromotionInterface.showUAShare

import HIVEService    
    // ข้อความเชิญ    
    let inviteMessage = appInvitationData.inviteMessage    
    // ลิงก์เชิญ    
    let inviteCommonLink = appInvitationData.inviteCommonLink    
    PromotionInterface.showUAShare(inviteMessage, inviteCommonLink) { result in    
        if result.isSucces() {    
        // การโทรสำเร็จ    
        }    
}

API Reference: 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    
            }    
}];

การออกแบบหน้าจอเชิญ

หน้าจอเชิญชวนจะแสดงให้ผู้ใช้เชิญเพื่อนเข้าร่วมเกม ใช้ qrcode หรือ inviteCommonLink จากวัตถุ AppInvitationData เพื่อออกแบบหน้าจอเชิญชวน คุณสามารถนำเสนอหน้าจอเชิญชวนเกมในเกมโดยใช้ qrcode หรือ inviteCommonLink ของวัตถุ AppInvitationData ที่ถูกส่งเป็นผลลัพธ์จากการเรียกใช้วิธีการ getAppInvitationData() หน้าชื่อเชิญไม่มีขีดจำกัด แต่ข้อมูลด้านล่างควรระบุให้ชัดเจน

  • แคมเปญที่มีคำอธิบายดังต่อไปนี้; เป้าหมายที่การเชิญต้องบรรลุ, คำอธิบายของเป้าหมาย, รางวัลจากการบรรลุเป้าหมายนั้น, จำนวนครั้งที่การเชิญได้ถูกทำเสร็จแล้ว, และจำนวนการเชิญที่จำเป็นต้องทำเพื่อบรรลุเป้าหมาย.
  • การเชิญที่มีคำอธิบายดังต่อไปนี้; รายชื่อเพื่อนที่สามารถเชิญได้และระบุวิธีหรือขั้นตอนในการส่งการเชิญจริง.

แคมเปญและคำเชิญอาจประกอบด้วยหน้าจอที่แตกต่างกันขึ้นอยู่กับแผนเกม หรืออาจถูกรวมเข้าด้วยกันในหน้าจอเดียวกัน

  • ตัวอย่างของหน้าจอเริ่มต้นที่มี inviteCommonLink

แนะนำให้แสดง URL การเชิญตามที่แสดงในหน้าจอตัวอย่างด้านบนและออกแบบ UI ในเกมเพื่อให้ผู้ใช้สามารถคัดลอก URL ไปยังคลิปบอร์ดได้

การออกแบบหน้าจอแคมเปญ

AppInvitationData คลาสกำหนดตัวแปร eachCampaignList และ stageCampaignList ชนิดข้อมูลของตัวแปร eachCampaignList คือคลาส AppInvitationCampaign และชนิดข้อมูลของ stageCampaignList คือ AppInvitationCampaignState แต่ละตัวมีข้อมูลแคมเปญและข้อมูลความสำเร็จของแคมเปญ หน้าจอแคมเปญประกอบด้วยข้อมูลดังต่อไปนี้

การประกอบของวัตถุ AppInvitationCampaign

หมายเลข ชื่อฟิลด์ คำอธิบาย ประเภท
1 title ชื่อแคมเปญ สตริง
2 description คำอธิบายแคมเปญ สตริง
3 imgUrl URL รูปภาพของไอคอนแคมเปญ สตริง
item ข้อมูลรางวัล (‘key’ และ ‘value’ ประเภทข้อมูลด้วย JSON หรือ HashMap รูปแบบ. ’key’ มีความหลากหลายขึ้นอยู่กับการตั้งค่าแคมเปญ) Map
4 count จำนวนการบรรลุแคมเปญ จำนวนเต็ม
5 limit จำนวนสูงสุดของเป้าหมายแคมเปญ จำนวนเต็ม
6 goalCount ข้อมูลการบรรลุผล (จำนวนการบรรลุผลทั้งหมดในทุกระดับ) จำนวนเต็ม
- order ลำดับที่แคมเปญกำลังเปิดเผย จำนวนเต็ม
- campaignId รหัสแคมเปญ (รหัสแคมเปญที่ไม่ซ้ำกันที่ออกโดย Hive เซิร์ฟเวอร์) จำนวนเต็ม

การประกอบของวัตถุ AppInvitationCampaignStage

หมายเลข ชื่อฟิลด์ คำอธิบาย ประเภท
1 title ชื่อแคมเปญ String
2 description คำอธิบายแคมเปญ String
3 imgUrl URL รูปภาพของไอคอนแคมเปญ String
item ข้อมูลรางวัล (‘key’ และ ‘value’ ประเภทข้อมูลในรูปแบบ JSON หรือ HashMap. ’key’ จะแตกต่างกันขึ้นอยู่กับการตั้งค่าแคมเปญ) Map
4 count จำนวนที่บรรลุแคมเปญ Integer
5 limit จำนวนสูงสุดของเป้าหมายแคมเปญ Integer
6 goalCount ข้อมูลการบรรลุ (จำนวนที่บรรลุทุกระดับ) Integer
goalTotal ข้อมูลการบรรลุ (จำนวนที่ต้องการในการบรรลุทุกระดับเพื่อรับรางวัล) Integer
- order ลำดับที่แคมเปญกำลังเปิดเผย Integer
- campaignId รหัสแคมเปญ (รหัสแคมเปญที่ไม่ซ้ำกันที่ออกโดย Hive Server) Integer

ตรวจสอบข้อมูลผู้ส่ง UA

ข้อมูลของผู้ส่งการเข้าถึงผู้ใช้ ตอนนี้สามารถใช้ได้ใน API ของลูกค้าเช่นกัน ติดตั้งและเรียกใช้แอปโดยคลิกที่ลิงก์ UA ที่ผู้ใช้ใหม่ได้รับก่อน จากนั้นดำเนินการเริ่มต้น SDK และการเข้าสู่ระบบ ถัดไป ให้เรียกใช้วิธี setEngagementReady(true) ในคลาส Promotion หลังจากนั้น คุณสามารถยืนยันข้อมูลของผู้ส่ง UA ผ่านวัตถุ AppInvitationSenderInfo โดยเรียกใช้วิธี getAppInvitationSenderInfo

ต่อไปนี้คือตัวอย่างโค้ดเพื่อตรวจสอบข้อมูลผู้ส่ง UA

API Reference: 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()) { //Successful call and check inviter information
} }));

API Reference: 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 Reference: 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()) {    
                 // Successful call and check inviter information    
             }    
         }    
})

API Reference: 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 Reference: 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 Reference: HIVEPromotion getAppInvitationSenderInfo

#import <HIVEService/HIVEService-Swift.h>    
    [HIVEPromotion getAppInvitationSenderInfo: ^(HIVEResultAPI *result, HiveAppInvitationSenderInfo *senderInfo) {    
         if (![result isSuccess]) {    
             return;    
         }    
        if (senderInfo != nil && [senderInfo.vid length] > 0) {    
        // Successful call and check inviter information    
        }    
}];

การประกอบของวัตถุ AppInvitationSenderInfo

หมายเลข ชื่อฟิลด์ คำอธิบาย ประเภท
1 vid vid ของผู้ส่ง สตริง

การแจ้งเตือนความสำเร็จ CPA

เมื่อเพื่อนที่ได้รับเชิญติดตั้งเกมหรือคุณบรรลุเป้าหมายของแคมเปญ เกมจะต้องแจ้งให้ Hive เซิร์ฟเวอร์ทราบเกี่ยวกับการบรรลุ CPA เพื่อที่จะได้รับรางวัล อย่าลืมทำงานต่อไปนี้ให้เสร็จก่อนที่จะมอบรางวัล

หากทั้งสองงานเสร็จสมบูรณ์ ให้เรียก CPA Achievement Notice API เมื่อ CPA ถูกบรรลุ