Connect with us

FACEBOOK

Introducing Facebook Graph API v15.0 and Marketing API v15.0

Published

on

introducing-facebook-graph-api-v150-and-marketing-api-v15.0

Today, we are releasing Facebook Graph API v15.0 and Marketing API v15.0. As part of this release, we are highlighting changes below that we believe are relevant to parts of our developer community. These changes include announcements, product updates, and notifications on deprecations that we believe are relevant to your application(s)’ integration with our platform.

For a complete list of all changes and their details, please visit our changelog.

General Announcements and Updates

Simplifying Custom Conversion Creation Criteria

To simplify the campaign creation process for advertisers, newly created custom conversions will require at least one associated rule with the release of Graph API v15.0. Custom conversions that don’t require rules should utilize custom event optimization, which allows ad campaigns to be optimized directly on the custom event. We’re actively working to transition our existing custom conversions from a single, all-in-one offering into multiple, value-specific products to better meet the needs and use cases of our advertisers. This change will drive advertisers from custom event based custom conversions to custom event optimization.

Platform Term Updates

We are updating the Platform Terms regarding when we may remove an app’s access to any Platform APIs, permissions, or features that your app has not used or accessed within a certain period of time. As of December 15, 2022, the Platform Terms will require activity within a 28-day period to be deemed active.

If you receive notice that your app has been inactive and you wish to reinstate your app, you can do so by going into your app admin role and reinstating it.

Advertisement
free widgets for website

You can view the Platform Terms to see a full preview of these changes here.

Deprecations & Breaking Changes

Introducing Advantage Custom Audience

Beginning September 19, 2022, we will begin rolling out Advantage custom audience. Advantage custom audience uses an advertiser’s custom audience to guide delivery and help find more people who are likely to achieve their expressed optimization goal. This means we will deliver ads beyond their Custom Audience if it’s likely to improve performance. Advantage custom audience is part of our Advantage Targeting product suite, including Advantage detailed targeting and advantage Lookalikes. Our Advantage Targeting products leverage advanced automation and machine learning technology that helps improve advertiser campaign performance with less manual effort.

See also  Facebook Adds New 'Optimize Text Per Person' Option for Automated Ad Customization

For advertisers who leverage Custom Audiences, they will be able to select Advantage custom audiences. With Advantage custom audiences, advertisers will continue to create Custom Audience (website, app activity, customer list or engagement) and apply relevant inclusions/exclusions, while benefiting from our advanced automation and machine learning technology which uses your custom audience as a source to guide delivery to reach more users who are likely to achieve your expressed optimization goal.

Advantage custom audiences will be automatically turned on when you create a new campaign that includes a website, mobile or engagement custom audience. You can choose to opt-out of this product by unchecking the “Advantage custom audiences” checkbox within the Custom Audience section of our ad creation tool.

Special Ad Audiences Deprecation

As part of our agreement with the US Department of Housing and Urban Development (HUD), we will be sunsetting Special Ad Audiences, a tool that lets advertisers expand their audiences for ad sets related to housing, employment, and credit. We’re removing the ability to create Special Ad Audiences via Marketing API beginning on September 15, 2022.

Advertisement
free widgets for website

For advertisers and partners, the blocking of new Special Ad Audience creation on September 15, 2022 will present a breaking change as with this non-versioning change the prior values are deprecated. In 2019, in addition to eliminating certain targeting options for housing, employment and credit ads, we introduced Special Ad Audiences as an alternative to Lookalike Audiences. But the field of fairness in machine learning is a dynamic and evolving one, and Special Ad Audiences was an early way to address concerns. Now, our focus will move to new approaches to improve fairness, including the method previously announced.

Refer below to the list of impacted endpoints related to this deprecation:

For reading audience:

  • endpoint gr:get:AdAccount/customaudiences
  • field operation_status

For adset creation:

  • endpoint gr:post:AdAccount/adsets
  • field subtype

For adset editing:

  • endpoint gr:post:AdCampaign
  • field subtype

For custom audience creation:

  • endpoint gr:post:AdAccount/customaudiences
  • field subtype

For custom audience editing:

  • endpoint gr:post:CustomAudience

Please refer to the earlier blog post and developer documentation for further details to support code implementation.

Advantage detailed targeting /Advantage lookalike Parity

This project brings parity for Detailed Targeting as a Signal (Advantage detailed targeting) for API users using adsets with Messages/App Installs as objectives (post Ads Manager release). We previously launched Advantage detailed targeting for API to adsets with Conversions as objective and Conversions/Value as optimization goals (VO/OC adsets).

See also  Touring Facebook's Gallatin data center: reaching the summit of Mount Crushmore

Currently, when advertisers create adsets via API with messages or app installs as an objective, they pass two things as a part of the targeting criteria (L2). They pass a list of detailed targeting inputs (eg: cricket, football, dogs etc) and a flag indicating whether they want to expand beyond these inputs (called as Advantage detailed targeting). If the flag is enabled, then our systems deliver beyond their detailed targeting selections if it is likely to improve performance. If it is disabled, our systems limit delivery to the list of selections advertisers have provided.

Advertisement
free widgets for website

Going forward (post-Ads Manager release), when advertisers create new campaigns with messages or mobile app installs as objectives, their detailed targeting inclusions will be used as an input (not a constraint) to guide ad delivery. As such, we are deprecating the DTE flag for these objectives and making targeting expansion a default behavior of the detailed targeting selections. When doing so, we may go beyond their detailed targeting inclusions if it is likely to improve performance. All other targeting selections and exclusions will remain unaffected. This change will not apply to special categories.

How it works:

In the past, advertisers would pass the targeting_optimization flag with a value of expansion_all or none to enable or disable Detailed Targeting Expansion. Given the change in the semantics of how detailed targeting will operate for these adsets, advertisers do not need to pass this flag when creating adsets with messages or app installs as an objective, since it will have no impact on their newly created adsets. All of these newly created adsets will always use detailed targeting inclusions as a signal to our backend systems, which may decide to deliver ads beyond these selections if it means better performance for the advertisers.

Given that the targeting_optimization flag will not have any effect on the newly created adsets, we are planning to deprecate this field for new campaigns with messages and/or app installs as an objective going forward.

  • To this effect, if advertisers pass the targeting_optimization flag when creating new MAI/messages adsets or when inquiring the delivery estimates of these newly created adsets, we will throw an error message asking them to not send this parameter any more.
  • A new field called targeting_as_signal will be set in the backend during new app installs/messages adset creations. This field is available on GET commands only to help advertisers verify if their adsets go beyond the detailed targeting inclusions.
See also  Facebook Shares New Insights into its Efforts to Help Maximize COVID-19 Vaccine Take-Up

NOTE: These changes to Detailed Targeting as a signal will only apply to newly created adsets with messages and/or app installs as an objective.

API Endpoints in Scope:

Advertisement
free widgets for website
  • gr:post:/act_XXXX/ adsets
  • gr:get://delivery_estimate

Pages Tabs Deprecation

We are announcing that the Pages Custom Tab API features will no longer be available via GraphAPI. As we roll out the new Pages experience, there are some Pages API features that will be deprecated as we move forward. Pages Custom Tab features will not be available on the new Pages experience so we will be deprecating API support for these features. We are sharing these updates now to give developers and their clients enough time to communicate the deprecation of these features from their page(s) and make the necessary changes to their pages. This feature will be fully deprecated by 12/14/2022.

API Version Deprecations:

As part of Facebook’s versioning schedule for Graph API and Marketing API, please note the upcoming deprecations:

Graph API

  • November 1, 2022: Graph API v8.0 will be deprecated and removed from the platform
  • February 23, 2023: Graph API v9.0 will be deprecated and removed from the platform
  • June 8, 2023: Graph API v10.0 will be deprecated and removed from the platform

To avoid disruption to your business, we recommend migrating all calls to the latest API version that launched today.

Facebook Platform SDK

As part of our 2-year deprecation schedule for Platform SDKs, please note the upcoming deprecations and sunsets:

  • January 2023: Facebook Platform SDK v8.0 or below will be sunset
  • June 2023: Facebook Platform SDK v9.0 or below will be sunset
  • October 2023: Facebook Platform SDK v11.0 or below will be sunset

First seen at developers.facebook.com

FACEBOOK

Meet the Developers – Linux Kernel Team (David Vernet)

Published

on

By

meet-the-developers-–-linux-kernel-team-(david-vernet)

Credit: Larry Ewing (lewing@isc.tamu.edu) and The GIMP for the original design of Tux the penguin.

Intro

For today’s interview, we have David Vernet, a core systems engineer on the Kernel team at Meta. He works on the BPF (Berkeley Packet Filter) and the Linux kernel scheduler. This series highlights Meta Software Engineers who contribute to the Linux kernel. The Meta Linux Kernel team works with the broader Linux community to add new features to the kernel and makes sure that the kernel works well in Meta production data centers. Engineers on the team work with peers in the industry to make the kernel better for Meta’s workloads and to make Linux better for everyone.

Tell us about yourself.

I’m a systems engineer who’s spent a good chunk of his career in the kernel space, and some time in the user-space as well working on a microkernel. Right now, I’m focusing most of my time on BPF and the Linux kernel scheduler.

I started my career as a web developer after getting a degree in math. After going to grad school, I realized that I was happiest when hacking on low-level systems and figuring out how computers work.

As a kernel developer at Meta, what does your typical day look like?

I’m not a maintainer of any subsystems in the kernel, so my typical day is filled with almost exclusively coding and engineering. That being said, participating in the upstream Linux kernel community is one of the coolest parts of being on the kernel team, so I still spend some time reading over upstream discussions. A typical day goes something like this:

Advertisement
free widgets for website
  1. Read over some of the discussions taking place on various upstream lists, such as BPF and mm. I usually spend about 30-60 minutes or so per day on this, though it depends on the day.

  2. Hack on the project that I’m working on. Lately, that’s adding a user-space ringbuffer map type to BPF.

  3. Work on drafting an article for lwn.net.

What have you been excited about or incredibly proud of lately?

I recently submitted a patch-set to enable a new map type in BPF. This allows user-space to publish messages to BPF programs in the kernel over the ringbuffer. This map type is exciting because it sets the stage to enable frameworks for user-space to drive logic in BPF programs in a performant way.

Is there something especially exciting about being a kernel developer at a company like Meta?

The Meta kernel team has a strong upstream-first culture. Bug fixes that we find in our Meta kernel, and features that we’d like to add, are almost always first submitted to the upstream kernel, and then they are backported to our internal kernel.

Do you have a favorite part of the kernel dev life cycle?

I enjoy architecting and designing APIs. Kernel code can never crash and needs to be able to run forever. I find it gratifying to architect systems in the kernel that make it easy to reason about correctness and robustness and provide intuitive APIs that make it easy for other parts of the kernel to use your code.

I also enjoy iterating with the upstream community. It’s great that your patches have a whole community of people looking at them to help you find bugs in your code and suggest improvements that you may never have considered on your own. A lot of people find this process to be cumbersome, but I find that it’s a small price to pay for what you get out of it.

Tell us a bit about the topic you presented at the Linux Plumbers Conference this year.

We presented the live patch feature in the Linux kernel, describing how we have utilized it at Meta and how our hyper-scale has shown some unique challenges with the feature.

Advertisement
free widgets for website

What are some of the misconceptions about kernel or open source software development that you have encountered in your career?

The biggest misconception is that it’s an exclusive, invite-only club to contribute to the Linux kernel. You certainly must understand operating systems to be an effective contributor and be ready to receive constructive criticism when there is scope for improvement in your code. Still, the community always welcomes people who come in with an open mind and want to contribute.

What resources are helpful in getting started in kernel development?

There is a lot of information out there that people have written on how to get integrated into the Linux kernel community. I wrote a blog post on how to get plugged into Linux kernel upstream mailing list discussions, and another on how to submit your first patch. There is also a video on writing and submitting your first Linux kernel patch from Greg Kroah-Hartman.

In terms of resources to learn about the kernel itself, there are many resources and books, such as:

Where can people find you and follow your work?

I have a blog where I talk about my experiences as a systems engineer: https://www.bytelab.codes/. I publish articles that range from topics that are totally newcomer friendly to more advanced topics that discuss kernel code in more detail. Feel free to check it out and let me know if there’s anything you’d like me to discuss.

To learn more about Meta Open Source, visit our open source site, subscribe to our YouTube channel, or follow us on Twitter, Facebook and LinkedIn.

First seen at developers.facebook.com

Advertisement
free widgets for website
See also  Facebook Is Taking On Amazon…And Other Small Business Tech News
Continue Reading

FACEBOOK

Get started with WhatsApp Business Platform in Minutes with Postman

Published

on

By

get-started-with-whatsapp-business-platform-in-minutes-with-postman

Our collaboration brings tools you already use to WhatsApp Business Platforms APIs

Postman is a best-in-class API platform used by 20M developers worldwide. Using Postman simplifies each step of the API lifecycle and streamlines collaboration.

Postman’s strong platform and broad adoption in the developer community made deciding to work with Postman to deliver a robust developer experience an easy decision for our WhatsApp Business Platform product team.

What Postman means for your WhatsApp projects

The benefits of this collaboration for developers are clear – you can easily leverage Postman’s platform with your Meta projects to onboard, collaborate, and contribute towards documentation and best practices as you build out your integrations.

Fast Onboarding

The WhatsApp team is able to offer, via Postman, an API collection that pre-fills environment variables and walks you through your initial test requests – helping developers dive right in to using the Cloud API. Our product managers show you how easy it is to get started with Postman in this session from Conversations:

Foster Collaboration

The public Postman workspace fosters collaboration – allowing environments, collections, and documentation augmentation to happen in one place.

Advertisement
free widgets for website

Enhance Documentation

Postman’s API documentation tools augment our own documentation and allows developers to contribute directly to the community’s shared knowledge, building a strong reference library for all developers and encouraging new, innovative use cases.

The Results

Working with Postman from the beginning helps create a developer-friendly experience for the WhatsApp Business Platform – allowing you to get started quickly, build community, and share knowledge.

Want to know more about our partnership with Postman? Check out their case study, follow along with the video above, or dive right into the Postman Workspace for the WhatsApp Business Platform.

See also  Facebook Is Taking On Amazon…And Other Small Business Tech News

1. https://www.postman.com/state-of-api/

First seen at developers.facebook.com

Advertisement
free widgets for website
Continue Reading

FACEBOOK

Summer of open source: building more efficient AI with PyTorch

Published

on

By

summer-of-open-source:-building-more-efficient-ai-with-pytorch

Note: Special thanks to Less Wright, Partner Engineer, Meta AI, for review of and additional insights into the post.

This post on creating efficient artificial intelligence (AI) is the second in the “Summer of open source” series. This series aims to provide a handful of useful resources and learning content in areas where open source projects are creating impact across Meta and beyond. Follow along as we explore other areas where Meta Open Source is moving the industry forward by sharing innovative, scalable tools.

PyTorch: from foundational technology to foundation

Since its initial release in 2016, PyTorch has been widely used in the deep learning community, and its roots in research are now consistently expanding for use in production scenarios. In an exciting time for machine learning (ML) and artificial intelligence (AI), where novel methods and use cases for AI models continue to expand, PyTorch has reached the next chapter in its history as it moves to the newly established, independent PyTorch Foundation under the Linux Foundation umbrella. The foundation is made up of a diverse governing board including representatives from AMD, Amazon Web Services, Google Cloud, Microsoft Azure and Nvidia, and the board is intended to expand over time. The mission includes driving adoption of AI tooling through vendor-neutral projects and making open source tools, libraries and other components accessible to everyone. The move to the foundation will also enable PyTorch and its open source community to continue to accelerate the path from prototyping to production for AI and ML.

Streamlining AI processes with Meta open source

PyTorch is a great example of the power of open source. As one of the early open source deep learning frameworks, PyTorch has allowed people from across disciplines to experiment with deep learning and apply their work in wide-ranging fields. PyTorch supports everything from experiments in search applications to autonomous vehicle development to ground-penetrating radar, and these are only a few of its more recent applications. Pairing a versatile library of AI tools with the open source community unlocks the ability to quickly iterate on and adapt technology at scale for many different uses.

See also  You should be worried about how much info WhatsApp shares with Facebook

As AI is being implemented more broadly, models are trending up in size to tackle more complex problems, but this also means that the resources needed to train these models have increased substantially. Fortunately, many folks in the developer community have recognized the need for models to use fewer resources—both from a practical and environmental standpoint. This post will explore why quantization and other types of model compression can be a catalyst for efficient AI.

Advertisement
free widgets for website

Establishing a baseline for using PyTorch

Most of this post explores some intermediate and advanced features of PyTorch. If you are a beginner that is looking to get started, or an expert that is currently using another library, it’s easiest to get started with some basics. Check out the beginner’s guide to PyTorch, which includes an introduction to a complete ML workflow using the Fashion MNIST dataset.

Here are some other resources that you might check out if you’re new to PyTorch:

  • PyTorch Community Stories: Learn how PyTorch is making an impact across different industries like agriculture, education, travel and others
  • PyTorch Beginner Series: Explore a video playlist of fundamental techniques including getting started with tensors, building models, training and inference in PyTorch.

Quantization: Applying time-tested techniques to AI

There are many pathways to making AI more efficient. Codesigning hardware and software to optimize for AI can be highly effective, but bespoke hardware-software solutions take considerable time and resources to develop. Creating faster and smaller architectures is another path to efficiency, but many of these architectures suffer from accuracy loss when compared to larger models, at least for the time being. A simpler approach is to find ways of reducing the resources that are needed to train and serve existing models. In PyTorch, one way to do that is through model compression using quantization.

Quantization is a mathematical technique that has been used to create lossy digital music files and convert analog signals to digital ones. By executing mathematical calculations with reduced precision, quantization allows for significantly higher performance on many hardware platforms. So why use quantization to make AI more efficient? Results show that in certain cases, using this relatively simple technique can result in dramatic speedups (2-4 times) for model inference.

See also  Facebook faces threat of huge fine in Russia over banned content -report | Reuters

The parameters that make up a deep learning model are typically decimal numbers in floating point (FP) precision; each parameter requires either 16 bits or 32 bits of memory. When using quantization, numbers are often converted to INT4 or INT8, which occupy only 4 or 8 bits. This reduces how much memory models require. Additionally, chip manufacturers include special arithmetic that makes operations using integers faster than using decimals.

There are 3 methods of quantization that can be used for training models: dynamic, static and quantize-aware training (QAT). A brief overview of the benefits and weaknesses is described in the table below. To learn how to implement each of these in your AI workflows, read the Practical Quantization in PyTorch blog post.

Advertisement
free widgets for website

Quantization Method

Benefits

Weaknesses

Dynamic

  • Easy to use with only one API call
  • More robust to distribution drift resulting in slightly higher accuracy
  • Works well for long short-term memory (LSTM) and Transformer models

Additional overhead in every forward pass

Static (also known as PTQ)

Advertisement
free widgets for website
  • Faster inference than dynamic quantization by eliminating overhead

May need regular recalibration for distribution drift

Quantize-Aware Training (QAT)

  • Higher accuracy than static quantization
  • Faster inference than dynamic

High computational cost

Additional features for speeding up your AI workflow

Quantization isn’t the only way to make PyTorch-powered AI more efficient. Features are updated regularly, and below are a few other ways that PyTorch can improve AI workflows:

  • Inference mode: This mode can be used for writing PyTorch code if you’re only using the code for running inference. Inference mode changes some of the assumptions when working with tensors to speed up inference. By telling PyTorch that you won’t use tensors for certain applications later (in this case, autograd), it adjusts to make code run faster in these specific scenarios.

  • Low precision: Quantization works only at inference time, that is, after you have trained your model. For the training process itself, PyTorch uses AMP, or automatic mixed precision training, to find the best format based on which tensors are used (FP16, FP32 or BF16). Low-precision deep learning in PyTorch has several advantages. It can help lower the size of a model, reduce the memory that is required to train models and decrease the power that is needed to run models. To learn more, check out this tutorial for using AMP with CUDA-capable GPUs.

  • Channels last: When it comes to vision models, NHWC, otherwise known as channels-last, is a faster tensor memory format in PyTorch. Having data stored in the channels-last format accelerates operations in PyTorch. Formatting input tensors as channels-last reduces the overhead that is needed for conversion between different format types, resulting in faster inference.

  • Optimize for inference: This TorchScript prototype implements some generic optimizations that should speed up models in all environments, and it can also prepare models for inference with build-specific settings. Primary use cases include vision models on CPUs (and GPUs) at this point. Since this is a prototype, it’s possible that you may run into issues. Raise an issue that occurs on the PyTorch GitHub repository.

Unlocking new potential in PyTorch

Novel methods for accelerating AI workflows are regularly explored on the PyTorch blog. It’s a great place to keep up with techniques like the recent BetterTransformer, which increases speedup and throughput in Transformer models by up to 2 times for common execution scenarios. If you’re interested in learning how to implement specific features in PyTorch, the recipes page allows you to search by categories like model optimization, distributed training and interpretability. This post is only a sampling of how tools like PyTorch are moving open source and AI forward.

To stay up to date with the latest in Meta Open Source for artificial intelligence and machine learning, visit our open source site, subscribe to our YouTube channel, or follow us on Facebook, Twitter and LinkedIn.

First seen at developers.facebook.com

Advertisement
free widgets for website
Continue Reading

Trending