Anzeigenregeln für die Neugewichtung des Budgets

Um ROI-basierte Regeln zur Neugewichtung des Budgets zu erstellen, ist es wichtig, jede einzelne Komponente zu verstehen. ROI steht für Return On Investment.

Auf dieser Seite erfährst du mehr über jede Komponente in der Neugewichtungsregel und wie sich jeder Parameter auf die Art und Weise auswirkt, wie die Regel ausgeführt wird.

Zeitplanspezifikation

Für Neugewichtungsregeln wird empfohlen, entweder einen DAILY- oder CUSTOM-Zeitplan zu verwenden, da die Handlung nicht häufig auftreten sollte.

Spezifikation der Prüfung

Die Prüfungskriterien arbeiten mit rebalance_spec zusammen, um die Listen der Objekte zu bestimmen, die von der Neugewichtung betroffen sind.

Bei allen Neugewichtungstypen ist die Liste der Objekte, die die Prüfung bestehen, die Quelle der Budgets. Die Liste der Empfänger variiert je nach angegebenem Neugewichtungstyp, aber bei den meisten von ihnen (z. B. EVEN) handelt es sich bei den Empfängern um Objekte, die die Prüfung nicht bestanden haben.

Wenn das Regelkriterium für den Typ EVEN beispielsweise cost_per_mobile_app_install > 2.50 lautet, bedeutet dies, dass alle Anzeigengruppen, deren Kosten pro Installation einer mobilen App über 2,50 liegen, pausiert werden und ihre Budgets auf alle Anzeigengruppen verschoben werden, deren Kosten pro Installation einer mobilen App höchstens 2,50 betragen.

Ausführungsspezifikation

rebalance_spec legt genau fest, wie die Empfänger ihr Budget erhalten. Es gibt fünf Parameter:

Feld Beschreibung

type

Erforderlich.

Legt fest, wie die Budgets zugewiesen werden. Wenn der Wert nicht EVEN ist, ist ein target_field erforderlich, um die Rangfolge durchzuführen.


Unterstützte Werte:EVEN, PROPORTIONAL, NO_PAUSE_PROPORTIONAL, MATCHED_ONLY_PROPORTIONAL

target_field

Optional.

Gibt die Insights-Metrik an, die zur Einordnung der Empfänger in der Rangfolge verwendet wird. Dies ist erforderlich, wenn type nicht EVEN ist oder wenn target_count auch in der Spezifikation vorhanden ist.


Unterstütze Werte: Ein Insights-Feld wie etwa cpa oder impressions

target_count

Optional.

Gibt die Anzahl (K) der Empfänger an. Die Kombination von type und target_field bestimmt die Top-K-Empfänger, die das Budget erhalten. Dies ist nützlich, wenn du das Budget nicht an alle möglichen Empfänger verschieben möchtest. Wenn K größer als die Anzahl der Empfänger ist, wird die Regel auf alle verteilt. Wenn dies angegeben ist, ist target_field erforderlich.


Unterstützte Werte: Eine positive Ganzzahl, wie 5

is_cross_campaign

Optional.

Gibt an, ob du die Zuweisung von Budgets auf mehrere Werbekampagnen zulässt. Wenn dies nicht angegeben ist oder false ist, verschieben wir Budgets nur innerhalb von Werbekampagnen. Wenn dies true ist, bewerten und führen wir alle Anzeigengruppen gemeinsam aus, was dazu führen kann, dass sich die Budgets zwischen den Anzeigenkampagnen verschieben.


Unterstützte Werte: Ein boolescher Wert wie true oder false

is_inverse

Optional.

Gibt an, ob Empfänger umgekehrt ihrer target_field-Werte von oben nach unten eingestuft werden sollen. Dies ist nützlich, wenn du die niedrigsten tatsächlichen Werte am höchsten einstufen möchtest.


Unterstützte Werte: Ein boolescher Wert wie true oder false

Spezifische Nuancen

Es gibt einige spezifische Nuancen bezüglich dieser Handlung:

Tages- und Laufzeitbudgets

Wenn die neu zu gewichtenden Anzeigengruppen sowohl Tages- als auch Laufzeitbudgets enthalten, teilen wir die Anzeigengruppen in die beiden Buckets auf. Das bedeutet, dass Anzeigengruppen ihre Tagesbudgets nur auf andere Anzeigengruppen verschieben, die über Tagesbudgets verfügen. Das Gleiche gilt für Laufzeitbudgets.

Bei Anzeigengruppen mit Laufzeitbudgets berücksichtigen wir das verbleibende Budget – die Differenz zwischen ihrem Laufzeitbudget und ihren Laufzeitausgaben – um die Höhe des Budgets zu bestimmen, das sie zuweisen können. Dadurch wird sichergestellt, dass das Gesamtbudget auf Werbekampagnenebene unverändert bleibt.

rebalance_spec-Typen

Für EVEN- und PROPORTIONAL-Typen pausieren wir die übereinstimmenden Objekte (die Spender des Budgets an die Empfänger). Wenn wir diese Objekte pausieren, passen wir ihre Budgets auf folgenden Gründen in keiner Weise an:

  • Wir müssen uns keine Sorgen um die Auslieferung machen, da sie pausiert sind.
  • Es macht keinen Sinn, kein Budget für eine Anzeigengruppe zu haben.

Das heißt, wenn Sie die Anzeigengruppe später wieder aktivieren, behält sie das gleiche Budget wie zuvor. Dies kann man sehen, wenn man mit dem pausierten Objekt interagiert und dessen Budgetdaten abruft.

Beim NO_PAUSE_PROPORTIONAL-Typ pausieren wir die übereinstimmenden Objekte nicht. Wir bestimmen, wie viel Budget angepasst werden muss, indem wir alle Objekte (Spender und Empfänger) zusammen betrachten und ihre Performance bewerten. Dadurch wird gewährleistet, dass das Budget nur von Spendern zu Empfängern verschoben wird. Durch diese Einrichtung wird vermieden, dass eine Neugewichtung dazu führt, dass eine Anzeigengruppe mit guter Leistung an eine Anzeigengruppe mit schlechter Leistung gespendet wird, aufgrund des Budgets, über das sie verfügt. Weitere Informationen findest du im Beispiel unten.

Beim MATCHED_ONLY_PROPORTIONAL-Typ betrachten wir nur die übereinstimmenden Objekte. Auch hier pausieren wir sie nicht. Wir ordnen sie untereinander ein und verteilen ihre Budgets basierend auf ihrer Performance im Vergleich zueinander neu. Das bedeutet, dass wir das Gesamtbudget aller Spender nehmen und es anteilig mit derselben Spenderliste teilen. Weitere Informationen findest du im Beispiel unten.

Für Typen, die auf PROPORTIONAL enden, verteilen wir mehr Budgets auf Anzeigengruppen, die basierend auf der target_field-Definition eine bessere Performance erbringen. Wenn die Metrik beispielsweise reach lautet und du über zwei Empfängeranzeigengruppen mit 10 und 20 reach verfügst, weisen wir diesen Anzeigengruppen 33,3 % bzw. 66,6 % des Budgetpools zu. Wenn der Typ EVEN lautet, würden sie jeweils 50 % erhalten.

is_inverse-Flag

Das is_inverse-Flag ist nützlich für Metriken wie cost_per_mobile_app_install, bei denen eine niedrigere Metrik eine Anzeigengruppe mit höherer Performance bedeutet. Dies wird im folgenden Beispiel noch einmal betont und bedeutet, dass Anzeigengruppen mit einem niedrigeren Wert einen höheren Anteil der Budgetzuweisung erhalten.

Beispiel

Hier ist ein Beispiel für eine Neugewichtungsregel, die:

  • alle leistungsschwachen Anzeigengruppen im Werbekonto pausiert.
  • ihre Budgets auf den Rest verlagert.

Eine hohe cost_per_mobile_app_install bedeutet eine schwache Performance. Wir verteilen das Budget aller leistungsschwachen Anzeigengruppen proportional auf die zehn besten Anzeigengruppen im Werbekonto. Diese Regel wird jeden Tag um 8 Uhr morgens ausgeführt und berücksichtigt dabei die Laufzeitdaten.

curl \
-F 'name=Test Rebalance Rule' \
-F 'schedule_spec={
     "schedule_type": "CUSTOM",
     "schedule": [
       {
          "start_minute": 480
       }
     ]
   }' \
-F 'evaluation_spec={
     "evaluation_type": "SCHEDULE",
     "filters": [
       {
         "field": "entity_type",
         "value": "ADSET",
         "operator": "EQUAL"
       },
       {
         "field": "time_preset",
         "value": "LIFETIME",
         "operator": "EQUAL"
       },
       {
         "field": "mobile_app_install",
         "value": 100,
         "operator": "GREATER_THAN"
       },
       {
         "field": "cost_per_mobile_app_install",
         "value": 3.0,
         "operator": "GREATER_THAN"
       }
     ]
   }' \
-F 'execution_spec={
     "execution_type": "REBALANCE_BUDGET",
     "execution_options": [
       {
         "field": "rebalance_spec",
         "value": {
           "type": "INVERSE_PROPORTIONAL",
           "target_field": "cost_per_mobile_app_install",
           "target_count": 10,
           "is_cross_campaign": true
         },
         "operator": "EQUAL"
       },
     ]
   }' \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library

Die Regel lautet wie folgt:

  • Alle Anzeigengruppen, die einen hohen Prozentsatz ihrer Zielgruppengröße erreicht haben, werden jeden Tag pausiert und das Budget wird neu gewichtet.
  • Lasse jedoch nicht zu, dass Budgets zwischen Werbekampagnen verschoben werden.
curl \
-F 'name=Test Rebalance Rule' \
-F 'schedule_spec={
     "schedule_type": "DAILY"
   }' \
-F 'evaluation_spec={
     "evaluation_type": "SCHEDULE",
     "filters": [
       {
         "field": "entity_type",
         "value": "ADSET",
         "operator": "EQUAL"
       },
       {
         "field": "time_preset",
         "value": "LIFETIME",
         "operator": "EQUAL"
       },
       {
         "field": "impressions",
         "value": 8000,
         "operator": "GREATER_THAN"
       },
       {
         "field": "audience_reached_percentage",
         "value": 70,
         "operator": "GREATER_THAN"
       }
     ]
   }' \
-F 'execution_spec={
     "execution_type": "REBALANCE_BUDGET",
     "execution_options": [
       {
         "field": "rebalance_spec",
         "value": {
           "type": "EVEN"
         },
         "operator": "EQUAL"
       },
     ]
   }' \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library

Hier ist ein Beispiel für die Verwendung des Typs NO_PAUSE_PROPORTIONAL. In diesem Fall wird das Budget aus Anzeigengruppen innerhalb von Werbekampagnen mit einer geringen Anzahl an Videoaufrufen neu zugewiesen. In diesem Fall werden die Anzeigengruppen jedoch nicht pausiert und es bleibt ihnen ein proportionaler Budgetbetrag übrig.

Hier ist ein numerisches Beispiel dafür, was passiert:

  • In diesem Beispiel verfügst du über die Anzeigengruppen 1-5 mit jeweils einem video_view von 1-5, einem Tagesbudget von 3000 und mit der folgenden Regel.
  • Zuerst nehmen wir das Budget 6000 aus den Anzeigengruppen 1 und 2 und bestimmen proportional, wie wir es verteilen. In diesem Fall weist jede Anzeigengruppe Verhältnisse von 1/15 bis zu 5/15 auf.
  • Infolgedessen haben Anzeigengruppen am Ende jeweils die Werte 400, 800, 4200, 4600 und 5000. Dadurch ist gewährleistet, dass die Empfänger (Anzeigengruppen 1, 2 und 3) ihr Budget stets erhöhen.
curl \
-F 'name=Test Rebalance Rule' \
-F 'schedule_spec={
     "schedule_type": "DAILY"
   }' \
-F 'evaluation_spec={
     "evaluation_type": "SCHEDULE",
     "filters": [
       {
         "field": "entity_type",
         "value": "ADSET",
         "operator": "EQUAL"
       },
       {
         "field": "time_preset",
         "value": "LIFETIME",
         "operator": "EQUAL"
       },
       {
         "field": "video_view",
         "value": 3,
         "operator": "LESS_THAN"
       },
     ]
   }' \
-F 'execution_spec={
     "execution_type": "REBALANCE_BUDGET",
     "execution_options": [
       {
         "field": "rebalance_spec",
         "value": {
           "type": "NO_PAUSE_PROPORTIONAL",
           "target_field": "video_view"
         },
         "operator": "EQUAL"
       },
     ]
   }' \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library

Abschließend findest du hier ein Beispiel, das MATCHED_ONLY_PROPORTIONAL nutzt. In diesem Fall musst du dir keine Sorgen über nicht übereinstimmende Objekte machen. Der Fokus liegt auf Anzeigengruppen, die die Filter der Regel erfüllen. Du kannst das gleiche Beispiel wie oben verwenden, außer dass es jetzt nicht mehr erforderlich ist, die beiden Listen anhand der leistungsschwachen Anzeigengruppen zu ermitteln.

Mit dem gleichen numerischen Beispiel oben würden wir am Ende alle Budgets im Pool (15000) verwenden und sie proportional verteilen. Infolgedessen würden Anzeigengruppen 1-5 am Ende über ein Budget von 1000-5000 verfügen.

Der Hauptnachteil bei diesem type ist, dass es keine Garantie dafür gibt, dass leistungsstärkere Anzeigengruppen nicht letztendlich zu Budgetverlusten führen, insbesondere bei unausgeglichenen Budgetwerten. Unter sonst gleichen Bedingungen würde die Anzeigengruppe 5, wenn sie mit einem Budget von 18000 begonnen hätte, am Ende 8000 ihres Budgets verlieren.

curl \
-F 'name=Test Rebalance Rule' \
-F 'schedule_spec={
     "schedule_type": "DAILY"
   }' \
-F 'evaluation_spec={
     "evaluation_type": "SCHEDULE",
     "filters": [
       {
         "field": "entity_type",
         "value": "ADSET",
         "operator": "EQUAL"
       },
       {
         "field": "time_preset",
         "value": "LIFETIME",
         "operator": "EQUAL"
       },
     ]
   }' \
-F 'execution_spec={
     "execution_type": "REBALANCE_BUDGET",
     "execution_options": [
       {
         "field": "rebalance_spec",
         "value": {
           "type": "MATCHED_ONLY_PROPORTIONAL",
           "target_field": "video_view"
         },
         "operator": "EQUAL"
       },
     ]
   }' \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<VERSION>/<AD_ACCOUNT_ID>/adrules_library