# การผสานการทำงานกับ Meta Ads

<Aside type="caution" icon="setting" title="ต้องการความช่วยเหลือจากนักพัฒนา">
 คุณจะต้องได้รับความช่วยเหลือจากทีมนักพัฒนาของคุณเพื่อตั้งค่าการผสานการทำงาน โปรดแชร์คู่มือนี้กับพวกเขา
</Aside>

การผสานการทำงานกับ [Meta Ads](https://www.facebook.com/business/ads) ช่วยให้คุณสามารถซิงค์กลุ่มเป้าหมายของ Pushwoosh ไปยังบัญชีโฆษณา Meta ของคุณได้ ใช้เพื่อกำหนดเป้าหมายหรือยกเว้นผู้ใช้ในแคมเปญโฆษณา และเพิ่มโฆษณาแบบชำระเงินเป็นอีกช่องทางหนึ่งใน customer journey ของคุณ

## กรณีการใช้งาน

ใช้การผสานการทำงานนี้เพื่อ:

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


## ข้อกำหนดเบื้องต้น
ก่อนที่คุณจะเชื่อมต่อ Meta Ads ตรวจสอบให้แน่ใจว่า:

* คุณมีบทบาท **Admin** ในบัญชี Pushwoosh ของคุณ ดู [จัดการการเข้าถึงและสิทธิ์ของผู้ใช้](/th/product/account-management-and-security/multi-login-accounts/#creating-and-managing-roles-also-known-as-groups) สำหรับวิธีการทำงานของบทบาทและสิทธิ์
* คุณได้ตั้งค่า [**Facebook Business Manager**](https://www.facebook.com/business/tools/business-manager) เพื่อจัดการทรัพย์สิน Facebook ของแบรนด์คุณ รวมถึงบัญชีโฆษณา เพจ และแอป
* คุณมี [**Facebook Ad Account**](https://www.facebook.com/business/tools/ads-manager) ที่ใช้งานอยู่ซึ่งผูกกับ Business Manager ของคุณ
* ผู้ดูแลระบบ Facebook Business Manager ของคุณได้ให้สิทธิ์ **Manage Campaigns** หรือ **Manage ad accounts** แก่คุณสำหรับบัญชีโฆษณาที่คุณวางแผนจะใช้กับ Pushwoosh
* คุณได้ยอมรับข้อกำหนดและเงื่อนไขของบัญชีโฆษณาสำหรับบัญชีเหล่านั้นแล้ว
* คุณได้ยอมรับ [**ข้อกำหนด Custom Audiences ของ Facebook**](https://business.facebook.com/legal/terms/customaudience) สำหรับบัญชีโฆษณา Facebook ที่คุณวางแผนจะใช้กับ Pushwoosh แล้ว

## ตั้งค่า Meta Ads ใน Pushwoosh

1. ใน Pushwoosh ไปที่ **Settings** > **3rd party integrations**

2. ในบัตร Meta Ads คลิก **Login page**

<img src="/integrations-meta-ads-integration-1.webp" alt="หน้าการผสานการทำงานกับบุคคลที่สามพร้อมบัตร Meta Ads ที่แสดงลิงก์ Configuration, Setup guide และ Login page"/>

3. ลงชื่อเข้าใช้บัญชี Meta ของคุณ จากนั้นคลิก **Continue**

4. เลือกบัญชีโฆษณาที่คุณต้องการเชื่อมต่อ
<img src="/integrations-meta-ads-integration-6.webp" alt="หน้าจอ Meta สำหรับการเลือกตัวเลือกการเข้าถึงธุรกิจสำหรับการผสานการทำงานที่เชื่อมต่อ" width="480" />

5. ตรวจสอบสิทธิ์ที่ร้องขอสำหรับการเข้าถึงบัญชีโฆษณาและธุรกิจ

6. คลิก **Save** จากนั้น Meta จะแสดงการยืนยันว่าบัญชีของคุณเชื่อมต่อแล้ว

### ตรวจสอบสถานะการเชื่อมต่อ


หลังจากการตั้งค่า คุณจะถูกเปลี่ยนเส้นทางไปยังหน้า **Meta Ads** ใน Pushwoosh

<img src="/integrations-meta-ads-integration-8.webp" alt="หน้า Meta Ads ของ Pushwoosh พร้อมป้าย Connected, ตารางบัญชีโฆษณาพร้อมคอลัมน์บัญชีธุรกิจ, การดำเนินการส่วนหัว และวิธีการซิงค์กลุ่มเป้าหมายกับ Meta" />

ตารางบัญชีโฆษณาจะแสดงรายการบัญชีที่เชื่อมต่อแต่ละบัญชีพร้อมกับ:

* **Ad account name**
* **Business account**
* **ID**

เปิดจุดสามจุดที่ท้ายแถวและเลือก **Remove ad account** เพื่อลบบัญชีโฆษณานั้นออกจากรายการใน Pushwoosh

### จัดการบัญชีโฆษณาที่เชื่อมต่อ

ในหน้า **Meta Ads** คลิก **Manage accounts** เพื่อเปิดกล่องโต้ตอบ ใช้สวิตช์ในแต่ละแถวเพื่อรวมหรือยกเว้นบัญชีโฆษณานั้นจากการผสานการทำงาน
คลิก **Apply** เพื่อบันทึกการเปลี่ยนแปลง หรือ **Cancel** เพื่อปิดโดยไม่บันทึก

เพื่อปรับมุมมองรายการ:

* เปิดหรือปิด **Show only connected** เพื่อจำกัดแถวที่ปรากฏ
* พิมพ์ใน **Search by name or id...** เพื่อค้นหาบัญชีในรายการ

<img src="/integrations-meta-ads-integration-4.webp" alt="กล่องโต้ตอบ Manage ad accounts พร้อมสวิตช์ Show only connected, ค้นหาตามชื่อหรือ ID, สวิตช์แถวพร้อมป้าย Connected หรือ Disconnected, Cancel และ Apply" />



### จับคู่แท็กโปรเจกต์กับฟิลด์ของ Meta

การจับคู่คุณสมบัติผู้ใช้ช่วยให้คุณสามารถบอก Pushwoosh ได้ว่าคุณสมบัติผู้ใช้ Meta ใดควรอัปเดตฟิลด์ **Tag name** ใดในโปรเจกต์ของคุณ ด้วยวิธีนี้ เมื่อข้อมูลมาจาก Meta ข้อมูลจะถูกบันทึกในที่ที่คุณคาดหวัง

<Aside type="note">
สำหรับการซิงค์กลุ่มเป้าหมาย Pushwoosh จะส่งตัวระบุหนึ่งตัวต่อผู้ใช้จาก **Email**, **Phone number** หรือ **MADID** เสมอ ขึ้นอยู่กับว่ามีอะไรอยู่ในโปรไฟล์ กำหนดค่าการจับคู่เมื่อคุณต้องการให้ Meta ได้รับคุณสมบัติผู้ใช้ **เพิ่มเติม** นอกเหนือจากตัวระบุข้างต้น
</Aside>

1. ในหน้า **Meta Ads** คลิก **Map user data**

2. สำหรับแต่ละ **Facebook field** ในคอลัมน์ด้านซ้าย ให้เลือก **Tag name** ในโปรเจกต์ของคุณจากตัวควบคุมทางด้านขวา จับคู่เฉพาะแถวที่คุณต้องการ

<img src="/integrations-meta-ads-integration-3.webp" alt="โมดอล Map project tags to Meta fields พร้อมคอลัมน์ Facebook field และ Tag name, ช่องทำเครื่องหมาย overwrite, Cancel และ Save" width="480" />

<Aside type="note" title="ฟิลด์ที่จับคู่โดยอัตโนมัติ">
Pushwoosh จะจับคู่ฟิลด์เหล่านี้โดยอัตโนมัติ คุณไม่จำเป็นต้องตั้งค่าใน **Map project tags to Meta fields**:

* **Email**
* **Phone number**
* **MADID**
</Aside>
3. คลิก **Save** เพื่อใช้การจับคู่ หรือ **Cancel** เพื่อปิดโดยไม่บันทึก

## เปิดใช้งานการรวบรวม MADID ใน SDK

Meta Ads จับคู่ผู้ใช้โดยใช้ตัวระบุอุปกรณ์ (MADID) ที่รวบรวมผ่าน SDK มือถือ
Pushwoosh SDK ไม่ได้รวบรวมตัวระบุโฆษณา (GAID บน Android, IDFA บน iOS) โดยอัตโนมัติ ทั้งสองแพลตฟอร์มต้องการความยินยอมจากผู้ใช้อย่างชัดเจนก่อนที่จะสามารถอ่านตัวระบุได้
ในแอปพลิเคชันของคุณ ให้ขอความยินยอมจากผู้ใช้ อ่านตัวระบุเมื่อได้รับอนุญาต และส่งค่าไปยัง SDK

<Tabs syncKey="maid-sdk">
<TabItem label="Android">

**1. เพิ่ม dependency**

```groovy
implementation 'com.google.android.gms:play-services-ads-identifier:...'
```

**2. ประกาศสิทธิ์ AD_ID (จำเป็นสำหรับ targetSdk ≥ 33)**

เพิ่มสิ่งนี้ใน `AndroidManifest.xml` ของคุณ:

```xml
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
```

<Aside type="caution">
หากไม่มีสิทธิ์นี้บน Android 13+, `AdvertisingIdClient.getAdvertisingIdInfo()` จะส่งคืน UUID ที่เป็นศูนย์ (`00000000-0000-0000-0000-000000000000`) อย่างเงียบๆ Pushwoosh SDK จะทำให้เป็น `null` ดังนั้นจะไม่มีการส่ง MADID ไปยังเซิร์ฟเวอร์และการจับคู่กลุ่มเป้าหมายของ Meta จะไม่ทำงาน
</Aside>

**3. ดึง GAID และส่งไปยัง SDK**

ต้องเรียก `getAdvertisingIdInfo` บน background thread:

```java

String gaid = AdvertisingIdClient.getAdvertisingIdInfo(context).getId();

Pushwoosh.getInstance().setAdvertisingId(gaid);

```

เพื่อล้างค่าที่เก็บไว้บนแบ็กเอนด์ ให้ส่ง `null` หรือสตริงว่าง:

```java
Pushwoosh.getInstance().setAdvertisingId(null);
```

**หมายเหตุเกี่ยวกับพฤติกรรม:**

- หากค่าไม่เปลี่ยนแปลงจากการเรียกสำเร็จครั้งล่าสุด จะไม่มีการร้องขอเครือข่าย
- หากการร้องขอเครือข่ายล้มเหลว ให้ลองอีกครั้งในการเปิดแอปครั้งถัดไป
- การเรียกจะถูกละเว้นเมื่อ `Pushwoosh.stopCommunication()` ทำงานอยู่
- UUID ที่เป็นศูนย์ (`00000000-0000-0000-0000-000000000000`) จะถูกจัดการเหมือนกับ `null` — MADID ที่เก็บไว้จะถูกล้างบนแบ็กเอนด์

</TabItem>
<TabItem label="iOS">

**1. เพิ่มคำอธิบายการใช้งานใน `Info.plist`**

Apple ต้องการคีย์นี้ก่อนที่จะแสดงกล่องโต้ตอบการอนุญาต ATT:

```xml
<key>NSUserTrackingUsageDescription</key>
<string>เราใช้ตัวระบุโฆษณาของคุณเพื่อแสดงโฆษณาที่เกี่ยวข้องกับคุณ</string>
```

**2. ประกาศโดเมนการติดตามใน privacy manifest ของคุณ**

หากแอปของคุณใช้ IDFA สำหรับการติดตาม Apple กำหนดให้คุณต้องระบุโดเมนที่รับข้อมูลการติดตามใน [privacy manifest](https://developer.apple.com/documentation/bundleresources/privacy-manifest-files) (`PrivacyInfo.xcprivacy`) ของคุณ ดู [TN3182](https://developer.apple.com/documentation/technotes/tn3182-adding-privacy-tracking-keys-to-your-privacy-manifest) สำหรับข้อกำหนดทั้งหมด

ตั้งค่า `NSPrivacyTracking` เป็น `true` และเพิ่มโดเมนการติดตามของ Pushwoosh ไปยัง `NSPrivacyTrackingDomains`:

```xml
<key>NSPrivacyTracking</key>
<true/>
<key>NSPrivacyTrackingDomains</key>
<array>
    <string>tracking.svc-nue.pushwoosh.com</string>
</array>
```

<Aside type="note">
หากผู้ใช้ยังไม่ได้ให้สิทธิ์ ATT, iOS จะบล็อกการร้องขอเครือข่ายไปยังโดเมนทั้งหมดที่ระบุไว้ใน `NSPrivacyTrackingDomains` MADID จะไม่ถูกส่งไปไม่ว่าโค้ดของคุณจะทำอะไรก็ตาม
</Aside>

**3. ขออนุญาตการติดตามและส่ง IDFA ไปยัง SDK**

`ATTrackingManager` ต้องการ iOS 14 หรือใหม่กว่า หากเป้าหมายการปรับใช้ของคุณต่ำกว่า iOS 14 ให้ครอบการเรียกด้วยการตรวจสอบความพร้อมใช้งาน

Pushwoosh SDK ไม่ได้เรียก `ATTrackingManager` ขออนุญาตการติดตามในแอปพลิเคชันของคุณ จากนั้นส่งผลลัพธ์ไปยัง SDK:

```swift
import AppTrackingTransparency
import AdSupport

if #available(iOS 14, *) {
    ATTrackingManager.requestTrackingAuthorization { status in
        let idfa = status == .authorized
            ? ASIdentifierManager.shared().advertisingIdentifier.uuidString
            : nil
        Pushwoosh.configure.setAdvertisingId(idfa)
    }
}
```


เพื่อล้างค่าที่เก็บไว้บนแบ็กเอนด์ ให้ส่ง `nil` หรือสตริงว่าง:

```swift
Pushwoosh.configure.setAdvertisingId(nil)
```

**หมายเหตุเกี่ยวกับพฤติกรรม:**

- หากค่าไม่เปลี่ยนแปลงจากการเรียกสำเร็จครั้งล่าสุด จะไม่มีการร้องขอเครือข่าย
- หากการร้องขอเครือข่ายล้มเหลว ให้เรียก `setAdvertisingId` อีกครั้งในการเปิดแอปครั้งถัดไป
- การเรียกจะถูกละเว้นเมื่อ `Pushwoosh_ALLOW_SERVER_COMMUNICATION` ถูกปิดใช้งาน
- UUID ที่เป็นศูนย์ (`00000000-0000-0000-0000-000000000000`) จะถูกจัดการเหมือนกับ `nil` หรือสตริงว่าง — MADID ที่เก็บไว้จะถูกล้างบนแบ็กเอนด์

> เรียก `requestTrackingAuthorization` จากโฟลว์ UI หลักของแอปของคุณ Apple แนะนำให้ทำเช่นนี้หลังจากแสดงหน้าจออธิบายของคุณเอง ไม่ใช่ทันทีที่เปิดตัว

</TabItem>
</Tabs>

### วิธีการทำงาน

เมื่อคุณเรียก `setAdvertisingId` SDK จะส่งค่าไปยังปลายทางการติดตามของ Pushwoosh เป็นฟิลด์ `madid` พร้อมกับรหัสแอปและ ID ฮาร์ดแวร์ของอุปกรณ์ Pushwoosh ใช้ตัวระบนี้เพื่อจับคู่บันทึกอุปกรณ์ของคุณกับกลุ่มเป้าหมายของ Meta Ads สำหรับการซิงโครไนซ์


## ซิงค์กลุ่มเป้าหมายใน journeys

จุด **Audience sync** ใน **Journey Builder** จะเชื่อมโยง journey ของคุณกับ Meta Custom Audience ทุกครั้งที่ผู้ใช้ไปถึงจุดนั้น Pushwoosh จะขอให้ Meta เพิ่มผู้ใช้เข้าสู่กลุ่มเป้าหมายหรือลบออกจากกลุ่มเป้าหมาย

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

เพื่อกำหนดค่าการซิงค์กลุ่มเป้าหมาย:

1. เปิด [**Journey Builder**](/th/product/customer-journey/pushwoosh-journey-overview/)

2. เพิ่ม [**Audience-based entry**](/th/product/customer-journey/journey-elements/entry-elements/audience-based-entry/) ใน **Audience source** ให้เลือกเซกเมนต์หรือรายการของ Pushwoosh ที่กำหนดว่าใครจะเข้าสู่ journey นี้ ตัวอย่างเช่น เซกเมนต์ **ผู้ใช้ที่มีแท็ก `webinar_registered` ตั้งค่าเป็น `true`** เฉพาะผู้ใช้เหล่านั้นเท่านั้นที่จะเคลื่อนที่ผ่าน journey และไปถึง **Audience sync**

3. เพิ่มจุด **Audience sync**

4. ใต้ **How to sync users info to Meta audience** ให้เลือกหนึ่งตัวเลือก:
   * **Add users to audience** เพิ่มผู้ใช้แต่ละคนที่มาถึงขั้นตอนนี้ไปยังกลุ่มเป้าหมาย Meta ที่คุณเลือก ตัวอย่างเช่น ใช้สิ่งนี้เพื่อเริ่มแสดงโฆษณาแก่ผู้ใช้ที่ลงทะเบียนแล้วแต่ยังไม่ได้เข้าร่วม
   * **Remove users from audience** ลบผู้ใช้แต่ละคนที่มาถึงขั้นตอนนี้ออกจากกลุ่มเป้าหมาย Meta นั้น ในตัวอย่างนี้ ให้เลือกตัวเลือกนี้เพื่อหยุดแสดงโฆษณาการสัมมนาทางเว็บแก่ผู้ใช้ที่ลงทะเบียนแล้ว

5. ใน **Meta Ads account** ให้เลือกบัญชีโฆษณาที่เชื่อมต่อ

6. ใน **Audience** ให้เลือกกลุ่มเป้าหมาย Meta ตัวอย่างเช่น **Webinar**

<img src="/integrations-meta-ads-integration-10.webp" alt="แผง Audience sync พร้อมดรอปดาวน์ Audience และ Meta Custom Audience ที่เลือก" />

7. คลิก **Apply** เพื่อบันทึกจุด หรือ **Cancel** เพื่อปิดโดยไม่บันทึก

8. กำหนดค่า journey ให้เสร็จสิ้น จากนั้นเปิดใช้งาน

<img src="/integrations-meta-ads-integration-9.webp" alt="แผง Audience sync พร้อมชื่อขั้นตอน, เพิ่มหรือลบผู้ใช้, บัญชี Meta Ads, Audience, Apply และ Cancel" />

เมื่อผู้ใช้เหล่านั้นไปถึง **Audience sync** พวกเขาจะถูกลบออกจากกลุ่มเป้าหมาย **Webinar** ใน Meta ดังนั้นพวกเขาจะไม่เห็นโฆษณาการสัมมนาทางเว็บที่นั่นอีกต่อไป

## พฤติกรรมและการจัดการข้อผิดพลาด

การประมวลผล Journey ขึ้นอยู่กับความพร้อมใช้งานของบัญชีและกลุ่มเป้าหมายของ Meta:

* Meta จะอัปเดตกลุ่มเป้าหมายก็ต่อเมื่อสามารถจับคู่ผู้ใช้จากข้อมูลที่ Pushwoosh ให้มาได้ หาก Meta ไม่สามารถจับคู่ผู้ใช้ได้ กลุ่มเป้าหมายจะไม่เปลี่ยนแปลงสำหรับผู้ใช้นั้น และพวกเขาจะเดินทางต่อไปใน journey
* หากโปรไฟล์ไปถึงจุด **Audience sync** ในขณะที่บัญชีโฆษณาที่เชื่อมต่อถูกตัดการเชื่อมต่อ journey จะหยุดสำหรับโปรไฟล์นั้น และ Pushwoosh จะส่งการแจ้งเตือนทางระบบและอีเมล
* หากไม่พบกลุ่มเป้าหมายที่เลือกใน Meta และ API ส่งคืนข้อผิดพลาด journey จะหยุดสำหรับโปรไฟล์นั้น และ Pushwoosh จะส่งการแจ้งเตือนทางระบบและอีเมล

## สถิติการซิงค์กลุ่มเป้าหมาย
หลังจากเปิดใช้งาน ให้เปิดสถิติสำหรับขั้นตอน **Audience sync** เพื่อดูปริมาณการเข้า, การเพิ่มและการลบ และโปรไฟล์ที่ข้ามไป สำหรับรายละเอียดเมตริก ดู [**Audience sync**](/th/product/statistics-and-analytics/journey-statistics/journey-element-statistics/#audience-sync) ใน **Customer Journey statistics**

<img src="/integrations-meta-ads-integration-11.webp" alt="สถิติ Audience sync พร้อม Total entries, Added to Meta audience, Removed from Meta audience, Skipped not synced moves to next step, Export users และ Meta Ads account for sync" />