0

Nun, da ich auf "facebook/php-ads-sdk": "2.8.*" aktualisiert haben (https://github.com/facebook/facebook-php-ads-sdk), wird diese Funktion von mir nicht mehr funktioniert:Wie in createFaceBook Ads verwenden (deprecated ADDUSERS zu ersetzen)

public function addToCustomAudience($entriesArray, $audienceId, $inputType = CustomAudienceTypes::EMAIL) { 
    $audience = new CustomAudience($audienceId); 
    $result = $audience->addUsers($entriesArray, $inputType); 
    return $result; 
} 

Offenbar addUsers ist nicht mehr verfügbar.

Ich sehe eine createUser Funktion, aber es sieht ganz anders aus, und es gibt keine Online-Dokumentation über die Migration von addUsers zu createUser.

Was ich tun möchte, ist einfach.

Gibt es ein Array von E-Mail-Adressen und eine ID einer Zielgruppe, wie kann ich all diese E-Mail-Adressen zu dieser benutzerdefinierten Facebook-Zielgruppe hinzufügen?

Antwort

0

Von dem, was ich im Code sehen kann, ist addUsers immer noch da, und es ist auf der Developer-Website dokumentiert.

Ich habe gerade die neueste SDK zusammen mit dem folgenden Code ein Publikum zu aktualisieren:

use FacebookAds\Object\CustomAudience; 
use FacebookAds\Object\Values\CustomAudienceTypes; 

$emails = array(
    '[email protected]', 
    '[email protected]', 
    '[email protected]', 
); 

$audience = new CustomAudience(<CUSTOM_AUDIENCE_ID>); 

$audience->addUsers($emails, CustomAudienceTypes::EMAIL); 
+0

Sie können ADDUSERS siehe 5. Oktober 2016 gab es zurück, wurde aber als „veraltet“ markiert (https://github.com/facebook/facebook-php-ads-sdk/blob/ad5da8006abc9c3498b60b059b4e11285ca5eff1/src/ FacebookAds/Object/CustomAudience.php # L352) und in neueren Commits (https://github.com/facebook/facebook-php-ads-sdk/blob/d51193b19d730ae9274d45540986e1ac311b074d/src/FacebookAds/Object/CustomAudience.php#L363) es ist weg. – Ryan

+0

ah das ist seltsam, lassen Sie mich herausfinden, die neue Art und Weise, dies zu tun. –

+0

Sieht so aus, als hätten wir hier einen Fehler eingeführt und wir beheben dies, hoffentlich können wir den Fehler heute beheben. –

0

Dies scheint für meine Zwecke zu arbeiten.

ich einige Code aus dem Facebook-php-Anzeigen-sdk als Behelfslösung kopiert.

$audience = new CustomAudience($audienceId); 
$params = $this->formatParams($entriesArray, $inputType, [], false); 
$audience->createUser([], $params, false); 


/** 
* Copied this from Facebook's https://github.com/facebook/facebook-php-ads-sdk/blob/d51193b19d730ae9274d45540986e1ac311b074d/src/FacebookAds/Object/CustomAudience.php#L363 
* Take users and format them correctly for the request 
* 
* @param array $users 
* @param string $type 
* @param array $app_ids 
* @param bool $is_hashed 
* @return array 
*/ 
protected function formatParams(array $users, $type, array $app_ids = array(), $is_hashed = false) { 
    if ($type == CustomAudienceTypes::EMAIL || $type == CustomAudienceTypes::PHONE) { 
     $normalizer = new EmailNormalizer(); 
     $hash_normalizer = new HashNormalizer(); 
     foreach ($users as &$user) { 
      if ($type == CustomAudienceTypes::EMAIL) { 
       $user = $normalizer->normalize(CustomAudienceTypes::EMAIL, $user); 
      } 
      if (!$is_hashed) { 
       $user = $hash_normalizer->normalize(
         CustomAudienceTypes::EMAIL, $user); 
      } 
     } 
    } 
    $payload = array(
     'schema' => $type, 
     'data' => $users, 
    ); 
    if ($type === CustomAudienceTypes::ID) { 
     if (empty($app_ids)) { 
      throw new \InvalidArgumentException(
      "Custom audiences with type " . CustomAudienceTypes::ID . " require" 
      . "at least one app_id"); 
     } 
     $payload['app_ids'] = $app_ids; 
    } 
    return array('payload' => $payload); 
}