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

การติดตามเหตุการณ์ด้วยตนเอง

นอกจากการติดตั้ง, เปิด, อัปเดต, และการซื้อ (การซื้อในแอป) ซึ่งถูกติดตามโดยอัตโนมัติด้วย Hive SDK คุณสามารถติดตามเหตุการณ์ที่จำเป็นที่คุณต้องการได้ด้วยตนเอง เพื่อทำเช่นนี้ คุณต้องลงทะเบียนเหตุการณ์ในแดชบอร์ดของการระบุแต่ละรายการ ตัวอย่างเช่น คุณสามารถติดตามเหตุการณ์เฉพาะ เช่น การเสร็จสิ้นการสอนเกมของคุณ (TutorialComplete) หรือการเสร็จสิ้นวัตถุประสงค์ของภารกิจ (MissionClear) คุณควรดำเนินการติดตามเหตุการณ์ด้วยตนเองหลังจากเสร็จสิ้นการตั้งค่าการติดตามเหตุการณ์อัตโนมัติ

การติดตามเหตุการณ์ด้วยตนเองด้วย Adjust

  1. เพื่อติดตามเหตุการณ์ที่กำหนดเองด้วยตนเอง ให้ลงทะเบียนเหตุการณ์บนแดชบอร์ด Adjust และรับแอพโทเค็นและโทเค็นเหตุการณ์ แอพโทเค็นสามารถขอรับได้จากหน้าแรกของแดชบอร์ด และโทเค็นเหตุการณ์จาก แดชบอร์ด > การตั้งค่าทั้งหมด > เหตุการณ์ ดู คู่มือแดชบอร์ด Adjust เพื่อเรียนรู้วิธีการขอรับโทเค็น
  2. เพิ่มแอพโทเค็นและโทเค็นเหตุการณ์ของแต่ละเหตุการณ์ใน hive_config.xml สำหรับรายละเอียดเพิ่มเติม โปรดดูตัวอย่างโค้ดด้านล่าง
  3. แดชบอร์ด Adjust มี SDK Signature V3 เพื่อป้องกันการปลอมแปลงแอพ เพื่อใช้ SDK Signature คุณต้องตรวจสอบเงื่อนไขสัญญากับ Adjust.

    <providers>
    <!-- (skipped) -->
    <!-- อย่าตั้งค่าฟิลด์ id ของโหนด Adjust. -->
    <!-- ฟิลด์ name ของโหนด Adjust ถูกกำหนดให้เป็น "Adjust." -->
    <!-- ฟิลด์ name ของโหนด event ถูกกำหนดโดยสตูดิโอเกม แต่เมื่อมันถูกตั้งค่าแล้ว มันควรจะเหมือนกันสำหรับฟิลด์ name ของการอ้างอิงการตลาดอื่น ๆ สำหรับคำขอ sendEvent() -->
    <!-- ตั้งแต่ Hive SDK v4 25.0.0, id, secretId, info1~4 จะไม่ถูกใช้เมื่อใช้ Adjust v5 -->
    <Adjust name="Adjust" key="APP_TOKEN">
            <events>
                    <event name="TutorialComplete" value="TutorialComplete_EVENT_TOKEN"/>
                    <event name="MissionClear" value="MissionClear_EVENT_TOKEN"/>
            </events>
    <!-- (skipped) -->
    </Adjust>
    </providers>
    
  4. ส่งเหตุการณ์โดยการเรียกใช้ Analytics API sendEvent() เมื่อส่งเหตุการณ์ ให้ใช้แท็ก <event> ที่เพิ่มใน hive_config.xml ในค่าของแท็ก <event> name จะถูกใช้เป็นพารามิเตอร์เมื่อเรียกใช้ API และ value สามารถตรวจสอบได้ในแดชบอร์ดของการกำหนดค่าที่เกี่ยวข้อง

    • Analytics.sendEvent("TutorialComplete");
    • Analytics.sendEvent("MissionClear");

การติดตามเหตุการณ์ด้วยตนเองด้วย Airbridge

  1. รับโทเค็นที่จำเป็น สำหรับข้อมูลเกี่ยวกับวิธีการรับโทเค็น โปรดดูที่ คู่มือแดชบอร์ด Airbridge.
    • รับโทเค็น SDK ของแอปและชื่อแอปจากแดชบอร์ด > การตั้งค่า > การจัดการโทเค็น.
  2. เพิ่มโทเค็น ชื่อแอป และการตั้งค่าเหตุการณ์ลงใน hive_config.xml โปรดดูที่ โค้ดตัวอย่าง hive_config.xml ด้านล่าง ใน Windows การตั้งค่าโทเค็นและชื่อแอปไม่จำเป็น แต่การตั้งค่าคอนโซล Hive เป็นสิ่งที่จำเป็น.
  3. Airbridge มี ลายเซ็น SDK เพื่อป้องกันการปลอมแปลงแอป เพื่อใช้ฟังก์ชันที่เกี่ยวข้อง คุณต้องตรวจสอบเงื่อนไขสัญญากับ Airbridge ก่อน รับคีย์และเพิ่มเป็น secretId และ secret ใน hive_config.xml. สำหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อมูลความปลอดภัยของลายเซ็น SDK โปรดดูที่ คู่มือ Airbridge. รองรับเฉพาะบน Android และ iOS ไม่รองรับบน Windows.
  4. หากคุณใช้ Windows, Android และ iOS ร่วมกัน โปรดติดต่อ Airbridge เพื่อขอการตั้งค่าเริ่มต้น.
  5. ส่งเหตุการณ์โดยการเรียกใช้ API Analytics sendEvent(). เมื่อส่งเหตุการณ์ ให้ใช้ <event> แท็กที่เพิ่มลงใน hive_config.xml ในค่าของแท็ก <event> name จะถูกใช้เป็นพารามิเตอร์เมื่อเรียก API และ value สามารถตรวจสอบได้ในแดชบอร์ดของการกำหนดค่าอ้างอิงที่เกี่ยวข้อง.
    • Analytics.sendEvent("TutorialComplete");
    • Analytics.sendEvent("MissionClear");

hive_config.xml ตัวอย่างโค้ด

<providers>
    <Airbridge name="Airbridge" key="APP_SDK_TOKEN" appName="APP_NAME" secretId="SECRET_ID" secret="SECRET">
                <events>
                        <event name="TutorialComplete" value="Tutorial Complete" />
                        <event name="MissionClear" value="Mission Clear" />
                </events>
        </Airbridge>
</providers>

ติดตามเหตุการณ์ด้วยตนเองด้วย Singular, Appsflyer และ Firebase Analytics

ส่วนนี้อธิบายวิธีการติดตามเหตุการณ์ด้วยตนเองโดยใช้การอ้างอิงจาก Singular, Appsflyer, และ Firebase Analytics

  1. คุณจะได้รับคีย์ที่จำเป็นจากแดชบอร์ดของแต่ละการกำหนดค่าตามที่แสดงด้านล่าง โปรดดูคู่มือแดชบอร์ดที่แต่ละการกำหนดค่าจัดเตรียมไว้สำหรับวิธีการออกคีย์
    • Singular: รับ SDK Key และ SDK SecretKey จากแดชบอร์ด
    • Appsflyer: รับ Dev Key จากแดชบอร์ด > การตั้งค่าแอป
    • Firebase Analytics: ไม่จำเป็นต้องออกคีย์
  2. แก้ไขไฟล์ hive_config.xml ตามตัวอย่างด้านล่างนี้ โดยเฉพาะอย่างยิ่ง เมื่อใช้ Appsflyer Attribution ใน Hive SDK Native iOS หรือ Unity Android & iOS และ Unreal Engine Android & iOS จะต้องตั้งค่า itunseConnectAppId สำหรับการตั้งค่า Apple AppID
      <providers>
      <!-- ตั้งค่า Singular -->
      <!-- ฟิลด์ name ของโหนด Singular ต้องเป็นค่า "Singular" เท่านั้น -->
      <!-- ฟิลด์ name ของโหนด event สามารถตั้งค่าได้โดยผู้พัฒนาเกม แต่ต้องใช้ค่าเดียวกันในแอตทริบิวชันอื่นเพื่อเรียกใช้ sendEvent() -->
      <!-- ฟิลด์ value ของโหนด event สามารถตั้งค่าได้โดยผู้พัฒนาเกม -->
      <Singular name="Singular" id="SDK_KEY" key="SDK_SECRET_KEY">
          <events>
              <event name="TutorialComplete" value="Tutorial Complete" />
              <event name="MissionClear" value="Mission Clear" />
          </events>
      </Singular>
    
      <!-- การตั้งค่า AppsFlyer -->
      <!-- ฟิลด์ชื่อของโหนด AppsFlyer จะมีค่า "AppsFlyer" คงที่ -->
      <!-- ฟิลด์ id ของโหนด AppsFlyer จะไม่ถูกตั้งค่า -->
      <!-- ฟิลด์ชื่อของโหนด event จะถูกตั้งค่าโดยผู้พัฒนาเกมตามต้องการ อย่างไรก็ตาม ต้องใช้ค่าเดียวกันในแอตทริบิวชันอื่นเพื่อเรียกใช้ sendEvent() -->
      <!-- ฟิลด์ค่าของโหนด event จะถูกตั้งค่าโดยผู้พัฒนาเกมตามต้องการ -->
      <AppsFlyer name="AppsFlyer" id="unused" key="DEV_KEY" itunseConnectAppId="909923112">
          <events>
              <event name="TutorialComplete" value="Tutorial Complete" />
              <event name="MissionClear" value="Mission Clear" />
          </events>
      </AppsFlyer>
    
      <!-- การตั้งค่า Firebase Analytics -->
      <!-- ฟิลด์ name ของโหนด event ถูกตั้งค่าตามที่ผู้พัฒนาเกมกำหนด อย่างไรก็ตาม สำหรับการเรียกใช้ sendEvent() ค่าที่ใช้ต้องเหมือนกันในแอตทริบิวชันอื่น ๆ -->
      <!-- ฟิลด์ value ของโหนด event ถูกตั้งค่าตามที่ผู้พัฒนาเกมกำหนด -->
      <firebase>
          <events>
            <event name="TutorialComplete" value="TutorialComplete" />
            <event name="MissionClear" value="MissionClear" />
          </events>
      </firebase>
      </providers>
    
  3. เรียกใช้ Analytics API sendEvent() เพื่อส่งเหตุการณ์ เมื่อส่งเหตุการณ์ ให้ใช้ค่าของแท็ก hive_config.xml ที่เพิ่มเข้าไปเป็นพารามิเตอร์ในการส่งเหตุการณ์ ค่าของแท็ก <event> ที่ใช้ name จะถูกใช้เป็นพารามิเตอร์เมื่อเรียก API และ value จะสามารถตรวจสอบได้จากแดชบอร์ดของแอตทริบิวชันนั้น
    • Analytics.sendEvent("TutorialComplete");
    • Analytics.sendEvent("MissionClear");

sendEvent()ส่งอีเวนต์

อธิบายวิธีการส่งอีเวนต์เพื่อติดตามพฤติกรรมของผู้ใช้ในแอททริบิวชัน

เมื่อส่งเหตุการณ์ติดตามในการให้เครดิต แนะนำให้ส่งเมื่อการกระทำของผู้ใช้ตรงตามเงื่อนไขเฉพาะ เช่น 'เสร็จสิ้นการสอน' แทนที่จะติดตามการกระทำทั้งหมดของผู้ใช้

เพื่อส่งเหตุการณ์ติดตามพฤติกรรมผู้ใช้ ให้เรียกใช้ฟังก์ชัน Analytics API sendEvent() ค่าอาร์กิวเมนต์แรกของฟังก์ชัน sendEvent() จะต้องป้อนเป็นค่าของแอตทริบิวต์ name ขององค์ประกอบ <event> ที่กำหนดในไฟล์การตั้งค่า hive_config.xml

เมื่อผู้ใช้ทำการเสร็จสิ้นการสอน ตัวอย่างโค้ดที่จะส่งเหตุการณ์ TutorialComplete ไปยังการติดตามการตลาดมีดังนี้

API Reference: hive.Analytics.sendEvent

using hive;    
    String eventName = "TutorialComplete";    
Analytics.sendEvent(eventName);
#include "HiveAnalytics.h"

FString EventName = TEXT("TutorialComplete");
FHiveAnalytics::SendEvent(EventName);

API Reference: Analytics::sendEvent

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    string eventName = "TutorialComplete";    
Analytics::sendEvent(eventName);

API Reference: Analytics.sendEvent

import com.hive.Analytics    
    val eventName = "TutorialComplete"    
Analytics.sendEvent(eventName)

API Reference: AnalyticsInterface .sendEvent

import HIVEService    
    let eventName = "TutorialComplete"    
AnalyticsInterface.sendEvent(eventName)

API Reference: HIVEAnalytics:sendEvent

#import <HIVEService/HIVEService-Swift.h>    
    NSString eventName = @"TutorialComplete";    
[HIVEAnalytics sendEvent: eventName];

API Reference: AnalyticsInterface.sendEvent

#import HIVEService   
    let eventName = "TutorialComplete"
AnalyticsInterface.sendEvent(eventName)

ส่งอีเวนต์ด้วยแอตทริบิวต์เพิ่มเติมด้วย sendEventWithAttributes()

เมื่อเรียกใช้ฟังก์ชัน sendEventWithAttributes() แทนที่จะเป็น sendEvent() คุณสามารถส่งแอตทริบิวต์ที่ผู้ใช้กำหนดเองได้

sendEventWithAttributes() ฟังก์ชันพารามิเตอร์แรกจะต้องใส่ค่าเป็นค่าของคุณสมบัติ name ขององค์ประกอบ <event> ที่กำหนดในไฟล์การตั้งค่า hive_config.xml

การเพิ่มแอตทริบิวต์แบบกำหนดเอง

คุณสามารถเรียกใช้ addCustomAttribute() เพื่อเพิ่มแอตทริบิวต์แบบกำหนดเองไปยังการติดตามการตลาดทั้งหมดที่ Hive SDK รองรับ (Airbridge, Adjust, Appsflyer, Singular, Firebase Analytics) และส่งข้อมูลได้

Note

Custom Attribute คือคุณสมบัติที่ผู้ใช้กำหนดซึ่งรองรับรูปแบบข้อมูล String, Int, Float, Double, Boolean อย่างไรก็ตาม เมื่อส่งผ่าน Adjust จะมีการแปลงรูปแบบข้อมูลทั้งหมดเป็น String โดยไม่คำนึงถึงประเภทข้อมูล

ตัวอย่างโค้ดในการส่งข้อมูลโดยเพิ่มคุณสมบัติที่กำหนดเองมีดังนี้

API Reference: hive.Analytics.sendEventWithAttributes

using hive;    

// สร้าง AnalyticsAttributes
var analyticsAttributes = new AnalyticsAttributes();

// เพิ่มคุณสมบัติที่กำหนดเอง
analyticsAttributes.AddCustomAttribute("key1", "value1");
analyticsAttributes.AddCustomAttribute("key2", "value2");

Analytics.sendEventWithAttributes("Quest Complete", analyticsAttributes);
#include "HiveAnalytics.h"

// สร้าง AnalyticsAttributes
FHiveAnalyticsAttributes AnalyticsAttributes;

// เพิ่มคุณสมบัติที่กำหนดเอง
TSharedPtr<FJsonValue> CustomJsonValue1 = MakeShareable(new FJsonValueString("value1"));
AnalyticsAttributes.AddCustomAttribute(TEXT("key1"), CustomJsonValue1);
TSharedPtr<FJsonValue> CustomJsonValue2 = MakeShareable(new FJsonValueString("value2"));
AnalyticsAttributes.AddCustomAttribute(TEXT("key2"), CustomJsonValue2);

FHiveAnalytics::SendEventWithAttributes(strEventName, AnalyticsAttributes);

API Reference: Analytics::sendEventWithAttributes

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
using namespace std;   
using namespace hive;

// สร้าง AnalyticsAttributes
AnalyticsAttributes analyticsAttributes;

// เพิ่มคุณสมบัติที่กำหนดเอง
analyticsAttributes.addCustomAttribute("key1", picojson::value("value1"));
analyticsAttributes.addCustomAttribute("key2", picojson::value("value2"));

std::string eventName = "Quest Complete";

Analytics::sendEventWithAttributes(eventName, analyticsAttributes);

API Reference: Analytics.sendEventWithAttributes

import com.hive.Analytics    
import com.hive.analytics.provider.attributes.AirbridgeSpecific
import com.hive.analytics.provider.attributes.AnalyticsAttributes

// สร้าง AnalyticsAttributes
val analyticsAttributes = AnalyticsAttributes()

// เพิ่มคุณลักษณะกำหนดเอง
analyticsAttributes.addCustomAttribute("key1", "value1")
analyticsAttributes.addCustomAttribute("key2", "value2")

Analytics.sendEventWithAttributes("Quest Complete", analyticsAttributes)

API Reference: Analytics.sendEventWithAttributes

import com.hive.Analytics;
import com.hive.analytics.provider.attributes.AirbridgeSpecific;
import com.hive.analytics.provider.attributes.AnalyticsAttributes;

// สร้าง AnalyticsAttributes
AnalyticsAttributes analyticsAttributes = new AnalyticsAttributes();

// เพิ่มคุณสมบัติที่กำหนดเอง
analyticsAttributes.addCustomAttribute("key1", "value1");
analyticsAttributes.addCustomAttribute("key2", "value2");

Analytics.sendEventWithAttributes("Quest Complete", analyticsAttributes);

API Reference: HIVEAnalytics:sendEventWithAttributes

#import <HIVEService/HIVEService-Swift.h>

HiveAnalyticsAttributes* analyticsAttributes = [[HiveAnalyticsAttributes alloc] init];

[analyticsAttributes addModuleSpecificAttribute: airbridgeSpecific];
[analyticsAttributes addCustomAttribute: @"key1" value: @"value1"];
[analyticsAttributes addCustomAttribute: @"key2" value: @"value2"];

[HIVEAnalytics sendEventWithAttributes: @"Quest Complete" attributes: analyticsAttributes];

API Reference: HIVEAnalytics:sendEventWithAttributes

#import HIVEService

// สร้าง AnalyticsAttributes
let analyticsAttributes = AnalyticsAttributes()

// เพิ่มคุณสมบัติที่กำหนดเอง
analyticsAttributes.addCustomAttribute("key1", value: "value1")
analyticsAttributes.addCustomAttribute("key2", value: "value2")

AnalyticsInterface.sendEventWithAttributes("Quest Complete", attributes: analyticsAttributes)

ส่งข้อมูลแอตทริบิวต์เชิงความหมายไปยัง Airbridge

เมื่อส่งแอตทริบิวต์เพิ่มเติมไปยัง Airbridge นอกจากแอตทริบิวต์ที่กำหนดเองแล้ว คุณยังสามารถเพิ่มแอตทริบิวต์เชิงความหมายดังต่อไปนี้เพื่อส่งได้

  • แอ็คชัน (Action), เลเบล (Label): รวบรวมข้อมูลที่สามารถใช้ในการจัดกลุ่มในรายงาน Airbridge
  • ค่า (Value): รวบรวมข้อมูลที่ใช้สำหรับการวิเคราะห์รายได้
  • อัตลักษณ์เชิงความหมาย (Semantic Attribute): อัตลักษณ์ที่กำหนดไว้ล่วงหน้าใน Airbridge
    • หากคุณป้อนสตริงอัตลักษณ์ที่ไม่ใช่อัตลักษณ์ที่กำหนดไว้ล่วงหน้า ข้อมูลอาจไม่ถูกเก็บรวบรวม
    • เหตุการณ์ที่มีข้อมูลที่ไม่ตรงกับรูปแบบข้อมูลของอัตลักษณ์เชิงความหมายจะไม่ถูกเก็บรวบรวม เนื่องจากรูปแบบข้อมูลจะแตกต่างกันไปตามอัตลักษณ์เชิงความหมายแต่ละตัว จึงต้องระมัดระวัง
    • อัตลักษณ์เชิงความหมายที่มีรูปแบบข้อมูลเป็นสตริงอนุญาตให้มีความยาวสูงสุด 1024 ตัวอักษร อัตลักษณ์เชิงความหมายที่มีรูปแบบข้อมูลเป็น int หรือ float อนุญาตให้มีความยาวสูงสุด 64 บิต

API Reference: hive.Analytics.sendEventWithAttributes

using hive;    

// สร้าง AnalyticsAttributes
var analyticsAttributes = new AnalyticsAttributes();

// คุณสมบัติเฉพาะสำหรับ Airbridge
var airbridgeSpecific = new AirbridgeSpecific();
// การกระทำ
airbridgeSpecific.SetSemanticAction("Tool");
// ป้ายกำกับ
airbridgeSpecific.SetSemanticLabel("Hammer");
// ค่า
airbridgeSpecific.SetSemanticValue(10);

// คุณสมบัติทางอรรถศาสตร์
airbridgeSpecific.AddSemanticAttribute("type", "Warrior");
airbridgeSpecific.AddSemanticAttribute("score", 20);

// เพิ่มคุณสมบัติเฉพาะของ Airbridge
analyticsAttributes.AddModuleSpecificAttributes(airbridgeSpecific);

// เพิ่มคุณสมบัติที่กำหนดเอง
analyticsAttributes.AddCustomAttribute("key1", "value1");
analyticsAttributes.AddCustomAttribute("key2", "value2");

Analytics.sendEventWithAttributes("Quest Complete", analyticsAttributes);
#include "HiveAnalytics.h"

// สร้าง AnalyticsAttributes
FHiveAnalyticsAttributes AnalyticsAttributes;

// คุณสมบัติเฉพาะสำหรับ Airbridge
FHiveAirbridgeSpecific AirbridgeSpecific;
// การกระทำ
AirbridgeSpecific.SetSemanticAction(TEXT("เครื่องมือ"));
// ป้ายชื่อ
AirbridgeSpecific.SetSemanticLabel(TEXT("ค้อน"));
// ค่า
AirbridgeSpecific.SetSemanticValue(10.0);

// คุณสมบัติทางอารมณ์
TSharedPtr<FJsonValue> SemanticJsonValue1 = MakeShared<FJsonValueString>(TEXT("Warrior"));
AirbridgeSpecific.AddSemanticAttribute(TEXT("type"), SemanticJsonValue1);
TSharedPtr<FJsonValue> SemanticJsonValue2 = MakeShared<FJsonValueNumber>(20);
AirbridgeSpecific.AddSemanticAttribute(TEXT("score"), SemanticJsonValue2);

// เพิ่มคุณลักษณะเฉพาะของ Airbridge
AnalyticsAttributes.AddModuleSpecificAttribute(AirbridgeSpecific);

// เพิ่มคุณสมบัติที่กำหนดเอง
TSharedPtr<FJsonValue> CustomJsonValue1 = MakeShareable(new FJsonValueString("value1"));
AnalyticsAttributes.AddCustomAttribute(TEXT("key1"), CustomJsonValue1);
TSharedPtr<FJsonValue> CustomJsonValue2 = MakeShareable(new FJsonValueString("value2"));
AnalyticsAttributes.AddCustomAttribute(TEXT("key2"), CustomJsonValue2);

FHiveAnalytics::SendEventWithAttributes(strEventName, AnalyticsAttributes);

API Reference: Analytics::sendEventWithAttributes

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
using namespace std;   
using namespace hive;

// สร้าง AnalyticsAttributes
AnalyticsAttributes analyticsAttributes;

// คุณสมบัติพิเศษสำหรับ Airbridge
AirbridgeSpecific airbridgeSpecific;

std::string semanticAction = "Tool";
std::string semanticLabel = "Hammer";
double semanticValue = 10.0;

// การกระทำ
airbridgeSpecific.setSemanticAction(semanticAction);
// ป้ายชื่อ
airbridgeSpecific.setSemanticLabel(semanticLabel);
// ค่า
airbridgeSpecific.setSemanticValue(semanticValue);

// Semantic Attribute
airbridgeSpecific.addSemanticAttribute("type", picojson::value("Warrior"));
airbridgeSpecific.addSemanticAttribute("score", picojson::value(20.0f));

// เพิ่มคุณลักษณะเฉพาะของ Airbridge
analyticsAttributes.addModuleSpecificAttribute(airbridgeSpecific);

// เพิ่มคุณสมบัติที่กำหนดเอง
analyticsAttributes.addCustomAttribute("key1", picojson::value("value1"));
analyticsAttributes.addCustomAttribute("key2", picojson::value("value2"));

std::string eventName = "Quest Complete";

Analytics::sendEventWithAttributes(eventName, analyticsAttributes);

API Reference: Analytics.sendEventWithAttributes

import com.hive.Analytics    
import com.hive.analytics.provider.attributes.AirbridgeSpecific
import com.hive.analytics.provider.attributes.AnalyticsAttributes

// สร้าง AnalyticsAttributes
val analyticsAttributes = AnalyticsAttributes()

// คุณสมบัติพิเศษสำหรับ Airbridge
val airbridgeSpecific = AirbridgeSpecific().apply {
    setSemanticAction("Tool")                // การกระทำ
    setSemanticLabel("Hammer")               // ป้าย
    setSemanticValue(10.0)                  // ค่า
    addSemanticAttribute("type", "Warrior")  // คุณสมบัติทางความหมาย
    addSemanticAttribute("score", 20.0f)     // คุณสมบัติทางความหมาย
}

// เพิ่มคุณลักษณะเฉพาะของ Airbridge
analyticsAttributes.addModuleSpecificAttribute(airbridgeSpecific)

// เพิ่มคุณสมบัติที่กำหนดเอง
analyticsAttributes.addCustomAttribute("key1", "value1")
analyticsAttributes.addCustomAttribute("key2", "value2")

Analytics.sendEventWithAttributes("Quest Complete", analyticsAttributes)

API Reference: Analytics.sendEventWithAttributes

import com.hive.Analytics;
import com.hive.analytics.provider.attributes.AirbridgeSpecific;
import com.hive.analytics.provider.attributes.AnalyticsAttributes;

// สร้าง AnalyticsAttributes
AnalyticsAttributes analyticsAttributes = new AnalyticsAttributes();

// คุณสมบัติพิเศษสำหรับ Airbridge
AirbridgeSpecific airbridgeSpecific = new AirbridgeSpecific();
airbridgeSpecific.setSemanticAction("Tool");                // การกระทำ
airbridgeSpecific.setSemanticLabel("Hammer");               // ป้ายชื่อ
airbridgeSpecific.setSemanticValue(10.0);                  // ค่า
airbridgeSpecific.addSemanticAttribute("type", "Warrior");  // คุณสมบัติทางความหมาย
airbridgeSpecific.addSemanticAttribute("score", 20.0f);     // คุณสมบัติทางความหมาย

// เพิ่มคุณสมบัติเฉพาะของ Airbridge
analyticsAttributes.addModuleSpecificAttribute(airbridgeSpecific);

// เพิ่มคุณสมบัติที่กำหนดเอง
analyticsAttributes.addCustomAttribute("key1", "value1");
analyticsAttributes.addCustomAttribute("key2", "value2");

Analytics.sendEventWithAttributes("Quest Complete", analyticsAttributes);

API Reference: HIVEAnalytics:sendEventWithAttributes

#import <HIVEService/HIVEService-Swift.h>

HiveAnalyticsAttributes* analyticsAttributes = [[HiveAnalyticsAttributes alloc] init];

HiveAirbridgeSpecific* airbridgeSpecific = [[HiveAirbridgeSpecific alloc] init];
[airbridgeSpecific setSemanticAction: @"Tool"];
[airbridgeSpecific setSemanticAction: @"Hammer"];
[airbridgeSpecific setSemanticValue: 10.0];
[airbridgeSpecific addSemanticAttribute: @"type" value: @"Warrior"];
[airbridgeSpecific addSemanticAttribute: @"score" value: @20.0f];

[analyticsAttributes addModuleSpecificAttribute: airbridgeSpecific];
[analyticsAttributes addCustomAttribute: @"key1" value: @"value1"];
[analyticsAttributes addCustomAttribute: @"key2" value: @"value2"];

[HIVEAnalytics sendEventWithAttributes: @"Quest Complete" attributes: analyticsAttributes];

API Reference: HIVEAnalytics:sendEventWithAttributes

#import HIVEService

// สร้าง AnalyticsAttributes
let analyticsAttributes = AnalyticsAttributes()

// คุณลักษณะเฉพาะสำหรับ Airbridge
let airbridgeSpecific = AirbridgeSpecific()
airbridgeSpecific.setSemanticAction("Tool")
airbridgeSpecific.setSemanticLabel("Hammer")
airbridgeSpecific.setSemanticValue(10.0)
airbridgeSpecific.addSemanticAttribute("type", value: "Warrior")
airbridgeSpecific.addSemanticAttribute("score", value: 20.0)

// เพิ่มคุณสมบัติเฉพาะ Airbridge
analyticsAttributes.addModuleSpecificAttribute(airbridgeSpecific)

// เพิ่มคุณสมบัติที่กำหนดเอง
analyticsAttributes.addCustomAttribute("key1", value: "value1")
analyticsAttributes.addCustomAttribute("key2", value: "value2")

AnalyticsInterface.sendEventWithAttributes("Quest Complete", attributes: analyticsAttributes)

การใช้การวัดบนอุปกรณ์ Google Ads ในสภาพแวดล้อม Firebase

ในการวัดการแปลงบนอุปกรณ์ที่ให้โดย Google Ads ในสภาพแวดล้อม Firebase คุณต้องดำเนินการตาม Firebase Google ODM Solution โซลูชันนี้ต้องการที่อยู่อีเมลหรือหมายเลขโทรศัพท์ที่ผู้ใช้ได้ให้ความยินยอมในการให้ ในระหว่างการดำเนินการของโซลูชันนี้ หากมีการใช้ Firebase Authentication หรือสภาพแวดล้อมการพิสูจน์ตัวตนแยกต่างหากที่นักพัฒนานำเสนอ SDK Hive จะไม่เก็บที่อยู่อีเมลและจะส่งต่อที่อยู่อีเมลใด ๆ ที่ได้รับในคำตอบหลังจากการพิสูจน์ตัวตนไปยัง Firebase API โดยตรง

Note

คู่มือนี้มีไว้สำหรับแอป iOS เท่านั้น แอป Android ไม่จำเป็นต้องมีขั้นตอนแยกต่างหากในการวัดการแปลงบนอุปกรณ์ในสภาพแวดล้อม Firebase.

วิธีการดำเนินการ

ตลอดทั้งกระบวนการด้านล่างนี้ คุณต้องมั่นใจว่าข้อมูลส่วนบุคคลสำหรับการระบุตัวตนจะต้องไม่รั่วไหลจากอุปกรณ์ของผู้ใช้ไปยังภายนอก.

  1. ดาวน์โหลด Google Firebase ODM Unity Plugin และเพิ่มลงในโปรเจกต์ Unity ของคุณ
  2. นำไปใช้การตรวจสอบสิทธิ์เพื่อรับที่อยู่อีเมล IdP หรือหมายเลขโทรศัพท์หลังจากเข้าสู่ระบบ
  3. ทำให้ที่อยู่อีเมลหรือหมายเลขโทรศัพท์เป็นมาตรฐาน ตามวิธีที่กำหนดโดย Firebase.
  4. นำไปใช้การส่งที่อยู่อีเมล/หมายเลขโทรศัพท์ที่เป็นมาตรฐานไปยัง Firebase หรือใช้การส่งค่าที่ถูกแฮชของที่อยู่อีเมล/หมายเลขโทรศัพท์ที่เป็นมาตรฐานไปยัง Firebase แนะนำให้ดู ตัวอย่างโค้ด ด้านล่าง.
Note

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

ตัวอย่างโค้ด

ด้านล่างคือตัวอย่างโค้ดเมื่อใช้ปลั๊กอิน Unity.

ตัวอย่างโค้ดที่ใช้ค่าที่ถูกแฮช

using hive;
// Sending the hashed & normalized email address
GoogleODM.setHashedEmailAddress(ComputeSha256Hash("abc@abc.com"));
using hive;
// ส่งข้อมูลหมายเลขโทรศัพท์ที่ถูกแฮชและปรับรูปแบบ
GoogleODM.setHashedPhoneNumber(ComputeSha256Hash("+821012345678"));

ตัวอย่างโค้ดที่ใช้ค่าธรรมดา

using hive;
// Sending the normalized email address
GoogleODM.setEmailAddress("abc@abc.com");
using hive;
// Sending the normalized phone number information
GoogleODM.setPhoneNumber("+821012345678");